1. 운용체제 기초 활용
(1). 운영 체제 종류
- 운영체제의 기능
① 제어 프로그램(Control Program)
- 감시 프로그램(Supervisor Program) : 각종 프로그램의 실행과 시스템 전체의 작동 상태 감시 및 감독
- 작업 제어 프로그램(Job Control Program) : 작업의 연속 처리를 위한 스케줄 및 시스템 자원 할당
- 데이터 관리 프로그램(Data Management Program) : 주기억장치와 보조기억장치 사이의 데이터 전송과 보조기억장치의 자료 갱신 및 유지보수 기능을 수행
- 메모리 관리 기법
③ 메모리 할당 기법
- 페이징 기법(Paging) : 가상기억장치 내의 프로세스를 일정하게 분할하여 주기억장치의 분산된 공간에 적재시킨 후 프로세스를 수행시키는 기법
: 내부 단편화 현상 발생
페이지 크기가 작을 경우 발생 현상 | 페이지 크기가 클 경우 발생 현상 |
- 더 많은 페이지 사상 테이블 공간이 필요 - 내부 단편화는 줄고, 특정한 참조 구역성만을 포함하기 때문에 기억 장치 효율이 좋음 - 페이지 정보를 갖는 페이지 맵 테이블의 크기가 커지고, 매핑 속도가 커짐 - 디스크 접근 횟수가 많아져서 전체적인 입,출력 시간 증가 |
- 테이블 크기가 작아지므로 주기억 장치의 공간이 절약 - 페이지 정보를 갖는 갖는 페이지 맵 테이블의 크기가 작아져서 관리가 용이하고, 매핑 속도가 빨라짐 - 디스크 접근 횟수가 줄고, 전체적인 입,출력 시간 감소 - 페이지 단편화가 증가하고, 이에 따라 기억 공간의 낭비 초래 |
- 세그먼테이션 기법(Segmentation) : 가상기억장치 내의 프로세스를 가변적인 크기의 블록으로 나누고 메모리를 할당하는 기법
: 외부 단편화 발생 가능
④ 교체 기법
: 교체 기법은 주기억 장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지 결정하는 기법
- FIFO(First in First Out) : 각 페이지가 주기억장치에 적재될 때마다 그떄의 시간을 기억시켜 가장 먼저 들어와 있던 가장 오래 있던 페이지를 교체하는 기법
- LRU(Least Recently Used) : 가장 오랫동안 사용되지 않은 페이지를 선택하여 교체
- LFU(Least Requently Used) : 사용된 횟수를 확인하여 참조 횟수가 가장 적은 페이지를 선택하여 교체
- 페이징 기법의 문제 및 해결방안
① 페이징 기법의 문제점 - 스레싱(Thrasing)
: 어떤 프로세스가 계속적으로 페이지 부재가 발생하여 프로세스의 실제 처리 시간보다 페이지 교체 시간이 더 많아지는 현상
② 페이징 기법의 문제점 해결방안
- 워킹 세트(Working Set)
: 각 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치 공간에 계속 상주하게 하여 빈번한 페이지 교체 현상을 줄이고자 하는 것
- 페이지 부재 빈도(PFF;Page-Fault Frequency)
: 페이지 부재율의 상한과 하한을 정해서 직접적으로 페이지 부재율을 예측하고 조절하는 기법
- 구역성 관리(Locality)
: 프로그램이 어느 한 특정 부분만 집중적으로 참조하기 때문에, 페이징 성능이 좋아지는 현상(시간 구역성, 공간 구역성, 순차 구역성)
- 프리페이징(Prepaging)
: 과도한 페이지 부재를 줄이기 위해 모든 페이지를 한 번에 페이지 프레임에 적재하는 방법
- 페이지 프레임 조정(Page Fault Frequency)
(3). 프로세스 스케줄링
- 프로세스
③ 프로세스 상태 전이
- 디스패치(Dispatch) : 준비 상태에 있는 여러 프로세스(Ready List) 중 실행될 프로세스를 선정(Scheduling)하여 CPU를 할당(dISPATCHING) -> 문맥교환 발생
- 할당 시간 초과(Timeout) : CPU를 할당받은 프로세스는 지정된 시간이 초과되면 스케줄러에 의해 PCB 저장, CPU 반납 후 다시 준비 상태로 전이됨
- 입출력 발생(Block) : 실행 상태에 있는 프로세스가 지정된 할당 시간을 초과하기 전에 입출력이나 기타 사건이 발생하면 CPU를 스스로 반납하고 입출력이 완료될 때까지 대기 상태로 전이됨
- 깨움(Wake-up) :어느 순간 입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료 사실을 wait & signal 등에 의해 알려주고, 준비 상태로 전이됨
④ 프로세스 구성요소
- 사용자 작성 코드
- 사용자 사용 데이터
- 스택 : 함수 호출 및 인자값 전송에 사용
- 프로세스 제어블록(PCB) : 운영체제가 프로세스 관리를 위해 필요한 자료를 담고 있는 자료 구조로 식별자, 프로세스 상태, 프로그램 카운트, 레지스터 저장 영역 등으로 구성
⑤ 스레드(Thread)
: 프로세스보다 가벼운, 독립적으로 수행되는 순차적인 제어의 흐름이며, 실행 단위
: 생성 주체에 따라 커널 수준 스레드, 사용자 수준 스레드로 구분
구분 | 커널 수준 스레드 | 사용자 수준 스레드 |
개념 | 스레드를 생성하고 스케줄링하는 주체가 커널인 스레드 | 사용자 영역에서 라이브러리를 통해 구현되는 스레드 |
장점 | - 커널이 각 스레드를 개별적으로 관리할 수 있음 - 다른 스레드가 입출력 작업이 다 끝날 때까지 다른 스레드를 사용해 다른 작업 진행 가능 - 커널이 직접 스레드를 제공해주기 때문에 안정성과 다양한 기능 |
- 스케줄링 결정이나 동기화를 위한 커널모드로 전환하지 않기 때문에 인터럽트가 발생할 때 오버헤드가 적음 - 사용자 영역 스레드에서 행동하기 때문에 os 스케줄러의 문맥 교환이 없음 |
단점 | - 사용자 모드에서 커널 모드로의 전환이 빈번하게 이뤄져 오버헤드가 많음 - 사용자 스레드에 비해 생성 및 관리하는 것이 느림 |
- 스케줄링 우선순위를 지원하지 않으므로 어떤 스레드가 먼저 동작할지 알 수 없음 |
- 프로세스 스케줄링
① 프로세스 스케줄링 유형
선점형 스케줄링 (Preemptive Scheduling) |
비선점형 스케줄링 (Non Preemptive Scheduling) |
하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식 | 한 프로세스가 CPU를 할당 받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케줄링 방식 |
② 프로세스 스케줄링 알고리즘
- 선점형 스케줄링 알고리즘
- 비선점형 스케줄링 알고리즘
1) SJF(Shortest Job First)
: 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유
: CPU 요구시간이 긴 프로세스는 기아 현상 발행(시스템 부하가 많아 낮은 등급에 있는 준비 큐에 있는 프로세스가 무한정 기다리는 현상) -> HRN 으로 해결
2) HRN(Highest Response Ratio Next)
: 대기 중인 프로세스 중 대기시간이 긴 프로세스일 경우 우선순위가 높아지게 하여 우숸순위를 결정하는 스케줄링 기법
(대기시간 + 서비스시간) / 서비스 시간
- 프로세스 관리 - 교착상태
: 교착상태는 다중 프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태
① 교착상태 발생 조건
- 상호배제(Mutual Exclusive) : 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 업는 상태
- 점유와 대기(Hold & Wait) : 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
- 비선점(Non preemption) : 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고, 오직 점유한 프로세스만이 해제 가능한 상태
- 환형 대기(Circular Wait) : 두 개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 상태
② 교착상태 해결방법
- 회피(Avoidance) : 안전한 상태를 유지할 수 있는 요구만 수락, 은행가 알고리즘
2. 네트워크 기초 활용
(2). 네트워크 7계층
- OSI(Open System Interconnection) 7계층
: 국제 표준화 기준인 ISO에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 개방형 시스템 상호 연결 모델
: 각 계층은 서로 독립적으로 구성되어 있고, 각 계층은 하위 계층의 기능을 이용하여 상위 계층에 기능을 제공
아파서 티내다, 피났다
계층 | PDU | |
7 | 응용 계층(Application Layer) | 메시지 데이터 |
6 | 표현 계층(Presentation Layer) | |
5 | 세션 계층(Session Layer) | |
4 | 전송 계층(Transport Layer) | 세그먼트 |
3 | 네트워크 계층(Network Layer) | 패킷 |
2 | 데이터 링크 계층(Data Link Layer) | 프레임 |
1 | 물리 계층(Physical Layer) | 비트 |
- 네트워크 7계층 상세설명
① 계층1 - 물리 계층
: 물리 계층은 실제 장치들을 연결하기 위해 필요한 전기적, 물리적 세부사항들을 정의하는 계층
* 물리 계층 장비
- 허브(Hub) : 여러 대의 컴퓨터를 연결하여 네트워크로 보내거나, 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비
- 리피터(Repeater) : 디지털 신호를 증폭시켜 주는 역할을 하여 신호가 약해지지 않고 컴퓨터로 수신되도록 하는 장비
② 계층2 - 데이터 링크 계층
링크의 설정과 유지 및 종료를 담당하며 물리적 연결을 이용해 신뢰성 있는 정보를 전송하려고 동기화, 오류 제어, 흐름 제어, 회선 제어 기능을 수행하는 계층
* 데이터 링크 계층 장비
- 스위치(Switch) : 느린 전송속도의 브리지, 허브의 단점을 개선하기 위해 출발지에서 들어온 프레임을 목적지 MAC 주소 기반으로 빠르게 전송시키는 데이터 링크 계층의 통신 장치
- 브리지(Bridge) : 두 개의 근거리 통신망을 서로 연결해주는 통신망 연결 장치
* 오류제어 - 자동반복 요청 방식(ARQ)의 종류
- Stop-and-wait 방식 : 한 개의 프레임을 전송하고, 수신 측으로부터 ACK 및 NAK 신호를 수신할 때까지 정보 전송을 중지하고 기다리는 방식
- Go-back-N ARQ 방식 : 데이터 프레임을 연속적으로 전송하는 과정에서 NAK을 수신하게 되면, 오류가 발생한 프레임 이후에 전송된 모든 데이터 프레임을 재전송하는 방ㅎ식
- Selective-Repeat ARQ : 연속적으로 데이터 프레임을 전송하고 에러가 발생한 데이터 프레임만 재전송하는 방
③ 계층3 - 네트워크 계층 프로토콜
: 다양한 길이의 패킷을 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 위한 수단을 제공하는 계층
* 네트워크 계층 프로토콜
- IP(Internet Protocol) : 송신, 수신 간의 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고받는 데 사용하는 통신 규약
- ARP(Address Resolution Protocol) : IP 네트워크상에서 IP 주소를 MAC 주소(물리적 주소)로 변환하는 프로토콜
- RARP(Reverse Address Resolution Protocol) : IP 호스트가 자신의 물리 네트워크 주소(MAC)은 알지만 IP 주소를 모르는 경우, 서버로부터 IP 주소를 요청하기 위해 사용하는 프로토콜
- ICMP(Internet Control Message Protocol) : IP의 동작 과정에서 전송 오류가 발생하는 경우에 대비해 오류 정보를 전송하는 목적으로 사용하는 프로토콜
- IGMP(Internet Group Management Protocol) : 인터넷 그룹 관리 프로토콜은 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는데 사용하는 통신 프로토콜
- 라우팅 프로토콜
* 네트워크 계층 장비
- 라우터(Router) : 서로 다른 네트워크 대역에 있는 호스트들 상호 간에 통신할 수 있도록 해주는 네트워크 장비
④ 계층4 - 전송 계층
: 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해주면서 종단 간의 사용자들에게 신뢰성 있는 데이터를 전달하는 계층
* 전송 계층 프로토콜
- TCP(Transmission Control Protocol) : 전송 계층에 위치하면서 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 해주는 프로토콜
- UDP(User Datagram Protocol) : 비연결성, 신뢰성이 없으며, 순서화되지 않은 데이터 그램 서비스를 제공하는 전송 계층의 통신 프로토콜
⑦ 계층7 - 응용 계층
: 응용 프로세스와 직접 관계하여 일반적인 응용서비스를 수행하는 역할을 담당하는 계층
* 응용 계층 프로토콜
- HTTP(Hyper Text Transfer Protocol) : 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고 받을 수 있는 프로토콜
- FTP(File Transfer Protocol)
- SMTP(Simple Mail Transfer Protocol)
(3). IP
- IP(Internet Protocool) 개념
: 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는데 사용하는 정보 위주의 규약
- IP(Internet Protocool) 특징
- 비신뢰성, 비연결성 : 흐름에 관여하지 않기 때문에 보낸 정보가 제대로 갔는지 보장하지 않음
- 에러 제어와 흐름 제어 없음 : 정보의 전송이 가장 주요, 보낸 정보의 내용을 보장해주지 않음. 패킷은 에러 검출만 하고 만일 발견되면 폐기
- 대표적인 IP 주소 체계 : IPv4, IPv6는 확장 중
- 패킷 분할, 병합 기능
- Best effort 원칙(현재 가능한 만큼만)에 따른 전송 기능 제공
IP(Internet Protocool) 개념
- IPv4
① IPv4(Internet Protocol version 4) 개념
: 인터넷에서 사용되는 패킷 교환 네트워크상에서 데이터를 교환하기 위한 32비트 주소 체계를 갖는 네트워크 계층의 프로토콜
② IPv4 헤더(Header): IP 패킷의 앞부분에서 주소 등 각종 제어정보를 담고 있는 부분
* IPv4 헤더 구조
- Header Length : IP 프로토콜의 헤더 길이를 4바이트 단위로 나타내는 필드, 즉 32비트
- Time to Live(TTL) : 송신 호스트가 패킷을 전송하기 전 네트워크에서 생존할 수 있는 시간을 표시하는 필드
- Total Length : IP를 제외한 패킷 전체의 길이. 최대 2의 16승-1
- Version Number : IP 프로토콜의 버전 번호
- IPv4와 IPv6의 특징
IPv4 | IPv6 | |
주소 길이 | 32bit | 128bit |
표시 방법 | 8비트씩 4부분으로 나뉜 10진수 | 16비트씩 8부분으로 나뉜 16진수 |
주소 개수 | 약 43억개 | 2의 128승개 |
주소할당 | A,B,C,D 등 클래스 단위 비순차적 할당(비효율적) | 네트워크 규모 및 단말기 수에 따른 순차적 할당(효율적) |
헤더 크기 | 20바이트의 기본 헤더 부분과 가변적인 길이를 가지고 있는 옵션 부분으로 구성 | 40바이트의 고정된 길이 |
QoS | Best Effort 방식(보장 곤란) | 등급별, 서비스별 패킷 구분 보장 |
보안 기능 | IPSec 프로토콜 별도 설치 | 보안과 인증 확장 헤더를 사용함으로써 인터넷 계층의 보안 기능을 강화 |
Plug & Play | 지원 안함 | 지원 |
모바일 IP | 곤란 | 용이 |
웹 캐스팅 | 곤란 | 용이 |
전송 방식 | 멀티 캐스트, 유니캐스트, 브로드 캐스트 | 멀티 캐스트, 유니캐스트, 애니캐스트 |
- IPv4에서 IPv6으로 전환하는 방법
① 듀얼 스택 : IP 계층에 두 가지(IPv4와 IPv6)의 프로토콜이 모두 탑재되어 있고 통신 상대방에 따라 해당 IP 스택을 선택하는 방법
② 터널링 : IPv6망에서 인접한 IPv4 망을 거쳐 다른 IPv6망으로 통신할 때, IPv4 망에 터널을 만들고 IPv4에서 사용하는 프로토콜로 캡슐화하여 전송하는 방법③ 주소변환 : IPv4와 IPv6망 사이에 주소변환기를 사용하여 서로 다른 네트워크상의 패킷을 변환 시키는 방법
- 라우팅 프로토콜(3계층)
: 데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로를 설정해주는 라우터 간의 상호 통신 규약
① RIP(Routing Information Protocol) 개념
: AS(Autonomous System, 자치 시스템) 내에서 사용하는 거리 벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜
특징
- 벨만-포드 알고리즘 사용
- 최대 홉수 15홉으로 제한
- UDP 포트번호 520 사용
- 30초마다 정보 공유
(4). TCP/UDP
- UDP
① UDP 개념
: 비연결성, 비신뢰성, 순서화되지 않은 데이터그램 서비스 제공하는 전송 계층(4계층)의 통신 프로토콜
: 실시간 응용 및 멀티태스킹 가능, 단순 헤더
'정보처리기사 필기 > 프로그래밍 언어 활용' 카테고리의 다른 글
[정보처리기사 필기요약] 4-1. 서버프로그램 구현 (0) | 2023.02.08 |
---|---|
[정보처리기사 필기요약] 4과목 C언어 (0) | 2023.02.05 |
[정보처리기사 필기요약] 4-2. 프로그래밍 언어 활용 (0) | 2023.02.04 |