운영체제
- 컴퓨터 시스템 자원들을 효율적으로 관리하며 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
운영체제의 목적
- 처리 능력
- 반환 시간
- 사용 가능도
- 신뢰도
운영체제의 기능
- 프로세서, 기억장치, 입·출력장치, 파일 및 정보 등의 자원을 관리
- 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공
- 사용자와 시스템 간의 편리한 인터페이스를 제공
- 시스템의 각종 하드웨어와 네트워크를 관리·제어
- 데이터를 관리하고 데이터 및 자원의 공유 기능을 제공
- 시스템의 오류를 검사하고 복구
운영체제의 주요 자원 관리
- 프로세스 관리
- 기억장치 관리
- 주변장치 관리
- 파일 관리
Windows
- 1990년대 MS사가 개발한 운영체제
Windows의 특징
- 그래픽 사용자 인터페이스(GUI)
- 선점형 멀티태스킹
- PnP : 하드웨어를 설치했을 때 해당 하드웨어를 사용하는데 필요한 시스템 환경을 운영체제가 자동으로 구성
- OLE : 여러 응용 프로그램에서 작성한 문자나 그림 등의 객체를 현재 작성 중인 문서에 자유롭게 연결 및 삽입 가능
- 255자 파일명
- Single-User 시스템
Unix
- 소스가 공개된 개방형 시스템
- 이식성이 높으며 장치, 프로세스 간의 호환성이 높음
- 크기가 작고 이해하기 쉬움
- 다중 사용자, 다중 작업을 지원
- 많은 네트워킹 기능을 제공하므로 통신망 관리용 운영체제로 적합
- 트리 구조의 파일 시스템을 갖음
- 전문적인 프로그램 개발에 용이
Unix 시스템의 구성
- 커널(Kernel)
- UNIX의 가장 핵심적인 부분
- 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행
- 하드웨어를 보호하고 프로그램과 하드웨어 간의 인터페이스 역할을 담당
- 프로세스 관리, 기억장치 관리, 파일 관리, 입·출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러 기능 수행
- 쉘(Shell)
- 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
- 시스템과 사용자 간의 인터페이스를 담당
- 주기억장치에 상주하지 않고 명령어가 포함된 파일 형태로 존재하며 보조기억장치에서 교체 처리 가능
- 파이프라인 기능을 지원하고 입·출력 재지정을 통해 출력과 입력의 방향을 변경할 수 있음
- 공용 Shell(Bourne Shell, C Shell, Korn Shell)이나 사용자 자신이 만든 Shell을 사용할 수 있음
Unix 부팅 순서
1. Power ON
2. Boot PROM
3. Boot Program
4. 커널 초기화
5. init 프로세스 동작
6. svc.startd
Linux
- Unix를 기반으로 개발한 운영체제
- Unix와 완벽하게 호환
- 대부분의 특징이 Unix와 동일
Linux 부팅 순서
1. Power ON
2. ROM BIOS
3. GRUB
4. 커널 이미지 적재
5. Swapper 생성
6. init 생성 및 커널부팅, 초기화
기억장치 관리 전략
- 기억장치의 관리 전략은 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것으로 반입(Fetch) 전략, 배치(Placement) 전략, 교체(Replacement) 전략이 있음
반입(Fetch) 전략
- 요구 반입(Demand Fetch) : 실행중인 프로그램이 특정 프로그램, 데이터 등의 참조를 요구할 때 적재하는 방법
- 예상 반입(Anticipatory Fetch) : 실행중인 프로그램에 의해 참조될 프로그램, 데이터를 미리 예상하여 적재하는 방법
배치(Placement) 전략
- 최초 적합(First Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치시키는 방법
- 최적 적합(Best Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법
- 최악 적합(Worst Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 크게 남기는 분할 영역에 배치시키는 방법
교체(replacement) 전략
- 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략
주기억장치 할당
- 프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게 할당할 것인지에 대한 내용이며 연속 할당 기법과 분산 할당 기법으로 분류할 수 있음
단일 분할 할당 기법
- 주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한 순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법
- 운영체제를 보호하고 프로그램이 사용자 영역만을 사용하기 위해 운영체제 영역과 사용자 영역을 구분하는 경계 레지스터가 사용
- 오버레이 기법 : 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법
- 스와핑 기법 : 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체하는 기법
다중 분할 할당 기법
- 고정 분할 할당 기법(정적 할당 기법) : 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비중인 프로그램을 각 영역에 할당하여 수행하는 기법
- 가변 분할 할당 기법(동적 할당 기법) : 단편화를 줄이기 위한 것으로 미리 주기억장치를 분할해 놓는 것이 아니라 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법
가상기억장치
- 보조기억장치의 일부를 주기억장치처럼 사용하는 것으로 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법
페이징 기법
- 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법
- 외부 단편화는 발생하지 않으나 내부 단편화는 발생할 수 있음
- 페이지 맵 테이블 사용으로 비용이 증가되고 처리 속도가 감소
세그멘테이션 기법
- 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법
- 세그멘테이션 기법을 이용하는 궁극적인 이유는 기억공간을 절약하기 위해
- 내부 단편화는 발생하지 않으나 외부 단편화는 발생할 수 있음
페이지 교체 알고리즘
- 페이지 부재가 발생했을 때 가상기억장치의 필요한 페이지를 주기억장치에 적재해야 하는데 이때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법
- OPT(OPTimal relacement, 최적교체)
- 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
- FIFO(First In First Out)
- 각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
참조열 | 7 | 0 | 1 | 2 | 0 | 3 | 0 | 4 | 2 | 3 | 0 | 3 | 2 | 1 | 2 | 0 | 1 | 7 | 0 |
페이지 프레임 |
7 | 7 | 7 | 2 | 2 | 2 | 2 | 4 | 4 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7 | 7 |
0 | 0 | 0 | 0 | 3 | 3 | 3 | 2 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 0 | ||
1 | 1 | 1 | 1 | 0 | 0 | 0 | 3 | 3 | 3 | 3 | 3 | 2 | 2 | 2 | 2 | 2 | |||
부재 발생 | F | F | F | F | F | F | F | F | F | F | F | F | F | F |
- LRU(Least Recently Used)
- 최근에 가장 오랫동안 사용하지 않으 페이지를 교체하는 기법
참조열 | 2 | 3 | 2 | 1 | 5 | 2 | 3 | 5 |
페이지 프레임 |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
3 | 3 | 3 | 5 | 5 | 5 | 5 | ||
1 | 1 | 1 | 3 | 3 | ||||
부재 발생 | F | F | F | F | F |
- LFU(Least Frequently Used)
- 사용 빈도가 가장 적은 페이지를 교체하는 기법
- NUR(Not Used Recently)
- 최근에 사용하지 않은 페이지를 교체하는 기법
- 최근의 사용 여부를 확인하기 위해서 각 페이지마다 두 개 비트, 즉 참조 비트와 변형 비트가 사용
가상기억장치 기타 관리 사항
- 가상기억장치를 구현할 때 시스템의 성능에 영향을 미치는 페이지 크기나 Locality, 워킹 셋, 페이지 부재 빈도, 프리페이징 등이 있음
페이지 크기
- 페이지 크기가 작을 경우
- 페이지 단편화가 감소되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어 듬
- 불필요한 내용이 주기억장치에 적재될 확률이 적으므로 효율적인 워킹 셋을 유지
- 페이지 정보를 갖는 페이지 맵 테이블의 크기가 커지고, 매핑 속도가 늦어짐
- 디스크 접근 횟수가 많아져서 전체적인 입·출력 시간은 늘어남
- 페이지 크기가 클 경우
- 페이지 맵 테이블 크기가 작아지고, 맵핑 속도가 빨라짐
- 디스크 접근 횟수가 줄어들어 전체적인 입·출력의 효율성이 증가
Locality
- 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
- 스래싱을 방지하기 위한 워킹 셋 이론의 기반
- 시간 구역성(Temporal Locality)
- 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스하는 현상
- 한 번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음을 의미
- 시간 구역성이 이루어지는 기억 장소 : Loop, Stack, 부 프로그램, Counting, 집계에 사용되는 변수
- 공간 구역성(Spatial Locality)
- 프로세스 실행 시 일정 위치의 페이지를 집중적으로 엑세스하는 현상
- 어느 하나의 페이지를 참조하면 그 근처의 페이지를 계속 참조할 가능성이 높음을 의미
- 공간 구역성이 이루어지는 기억장소 : 배열 순회, 순차적 코드의 실행, 같은 영역에 있는 변수를 참조할 때 사용
워킹 셋(Working Set)
- 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
- 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상이 줄어들어 프로세스의 기억장치 사용이 안정
- 시간이 지남에 따라 자주 참조되는 페이지들의 집합이 변화하기 때문에 워킹 셋은 시간에 따라 변경
페이지 부재 빈도 방식
- 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상이며, 페이지 부재 빈도는 페이지 부재가 일어나는 횟수를 의미
- 페이지 부재율에 따라 주기억장치에 있는 페이지 프레임의 수를 늘리거나 줄여 페이지 부재율을 적정 수준으로 유지하는 방식
프리페이징
- 처음의 과도한 페이지 부재를 방지하기 위해 필요할 것 같은 모든 페이지를 한꺼번에 페이지 프레임에 적재하는 기법
스래싱
- 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
- 다중 프로그래밍 시스템이나 가상기억장치를 사용하는 시스템에서 하나의 프로세스 수행 과정중 자주 페이지 부재가 발생함으로써 나타나는 현상으로 전체 시스템의 성능이 저하
- 스래싱 현상 방지 방법
- 다중 프로그래밍의 정보를 적정 수준으로 유지
- 페이지 부재 빈도를 조절하여 사용
- 워킹 셋을 유지
- 부족한 자원을 증설하고 일부 프로세스를 중단
프로세스
- 일반적으로 프로세서에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미하며, 작업, 태스크라고도 함
PCB(Process Control Block, 프로세스 제어 블록)
- 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
저장 정보 | 설명 |
프로세스의 현재 상태 | 준비, 대기, 실행 등의 프로세스 상태 |
포인터 | - 부모 프로세스에 대한 포인터 : 부모 프로세스의 주소 기억 - 자식 프로세스에 대한 포인터 : 자식 프로세스의 주소 기억 - 프로세스가 위치한 메모리에 대한 포인터 : 현재 프로세스가 위치한 주소 기억 - 할당된 자원에 대한 포인터 : 프로세스에 할당된 각 자원에 대한 주소 기억 |
프로세스 고유 식별자 | 프로세스를 구분할 수 있는 고유의 번호 |
스케줄링 및 프로세스의 우선순위 | 스케줄링 정보 및 프로세스가 실행될 우선순위 |
cpu 레지스터 정보 | 누산기, 인덱스 레지스터, 범용 레지스터, 프로그램 카운터 등에 대한 정보 |
주기억장치 관리 정보 | 기준 레지스터 ,페이지 테이블에 대한 정보 |
입·출력 상태 정보 | 입·출력장치, 개방된 파일 목록 |
계정 정보 | CPU 사용 시간, 실제 사용 시간, 한정된 시간 |
프로세스 상태 종류
- 보류 (pending)
- 준비 (ready)
- 실행 (running)
- 대기 (blocked)
- 완료 (terminated)
스레드(Thread)
- 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당받아 실행하는 프로그램 단위
- 하나의 프로세스에는 하나의 스레드가 존재하는 경우에는 단일 스레드, 하나 이상의 스레드가 존재하는 경우에는 다중 스레드
- 동일 프로세스 환경에서 서로 독립적인 다중 수행이 가능
- 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할을 담당
- 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상 시킬 수 있음
- 응용 프로그램의 응답 시간을 단축
- 프로세스들 간 통신 향상
- 공통적으로 접근 가능한 기억장치를 통해 효율적인 통신
- 실행 환경을 공유하여 기억장소의 낭비를 줄임
스케줄링
- 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 의미
스케줄링의 목적
- 공정성
- 처리율 증가
- CPU 이용률 증가
- 우선순위제도
- 오버헤드 최소화
- 응답 시간 최소화
- 반환 시간 최소화
- 대기 시간 최소화
- 균형 있는 자원의 사용
- 무한 연기 회피
프로세스 스케줄링의 기법
- 비선점(Non-Preemptive) 스케줄링
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
- 프로세스가 CPU를 할당 받으면 해당 프로세스가 완료될 때까지 CPU를 사용
- 모든 프로세스에 대한 요구를 공정하게 처리할 수 있음
- 일괄 처리 방식에 적합
- 중요한 작업이 중요하지 않은 작업을 기다리는 경우가 발생할 수 있음
- 비선점 스케줄링의 종류 : FCFS, SJF, 우선순위, HRN, 기한부
- 선점(Preemptive) 스케줄링
- 하나의 프로세스가 CPU를 할당받아 실행하고 있을때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
- 우선순위가 높은 프로세스를 빠르게 처리할 수 있음
- 시분할 시스템에 사용
- 많은 오버헤드를 초래
- 선점 스케줄링의 종류 : Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐
프로토콜
- 데이터통신에 있어서 신뢰성 있게 효율적이고 안전하게 정보를 주고받기 위해서 정보의 송·수신자측 또는 네트워크 내에서 사전에 약속된 규약 또는 규범
프로토콜의 구성요소
- 구문(Syntax) : 데이터의 구조나 형식을 가르키며 데이터가 표현되는 순서를 의미
- 의미(Semantics) : 비트의 영역별 의미를 나타냄 즉 특정 패턴을 어떻게 해석하고 그를 기반으로 어떤 동작을 할 것인가를 결정
- 타이밍(Timing) : 데이터를 언제 얼마나 빠른 속도로 전송할 것인가를 나타냄
OSI 7계층
- 국제표준화기구에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것
계층 | 특징 | 데이터 종류 | 예 | |
7 | 응용 (Application) |
- 각종 응용서비스 제공 - 네트워크 관리 |
메시지 (Message) |
FTP, TFTP, SNMP, SMTP, Telnet, HTTP, DNS, DHCP |
6 | 표현 (Presentation) |
- 네트워크 보안(암·복호화) - 압축/압축해제, 포맷 변환 수행 |
ASCII, Mpeg, jpg, MME | |
5 | 세션 (Session) |
- 소켓프로그램 - 동기화 - 세션 연결/관리/종료 |
전송모드 결정(반이중,전이중 등), SQL, RPC |
|
4 | 전송 (Transport) |
- 데이터 전송보장 - 흐름 제어 - Quality Of Service(QoS) |
세그먼트 (Segment) |
TCP, UDP, SCTP |
3 | 네트워크 (Network) |
- 통신경로 설정, 중계기능 담당 - 라우팅 - IPv4, IPv6 |
패킷 (Packet) |
IP, ICMP, IGMP, ARP, RARP, NAT, RIP, BGP |
2 | 데이터 링크 (Data link) |
- 오류제어, Frame화 - 매체제어(MAC) - 에러검출, 에러정정, 흐름제어 |
프레임 (Frame) |
이더넷, 토큰링, PPP, SLIP, 802.11(WLAN) |
1 | 물리 (Physical) |
- 물리적 연결설정, 해제 - 전송방식, 전송매체 |
비트 스트림 (Bit Stream) |
기계적, 전기적, 절차적 규격 |
인터넷(Internet)
- TCP/IP 프로토콜을 기반으로 하여 전 세계 수많은 컴퓨터와 네트워크들이 연결된 컴퓨터 통신망
- 미 국방성의 ARPANET에서 시작
- 유닉스 운영체제를 기반으로 함
IP 주소
- 인터넷에 연결되는 모든 컴퓨터 자원을 구분하기 위한 고유한 주소
IPv4
- 패킷 교환 네트워크 상에서 데이터를 교환하기 위한 프로토콜
- IPv4의 주소체계는 총 12자리이며 네 부분으로 나뉨 각 부분은 0~255까지 3자리의 수로 표현된다. IPv4 주소는 32비트로 구성되어 있으며, 현재 인터넷 사용자의 증가로 인해 주소공간의 고갈에 대한 우려가 높아지고 있음
- 대안으로 128비트 주소체계를 갖는 IPv6가 등장
IPv6
- 현재 사용하고 있는 IP 주소 체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발
- 16비트씩 8부분, 총 128비트로 구성
- IPv4에 비해 자료 전송 속도가 빠름
- 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결
- IPv4와 호환성이 뛰어남
- 주소의 확장성, 융통성, 연동성이 뛰어나며, 실시간 흐름 제어로 향상된 멀티미디어 기능을 지원
- Traffic Class, Flow Label을 이용하여 등급별, 서비스별로 패킷을 구분할 수 있어 품질 보장에 용이
- 유니캐스트, 멀티캐스트, 애니캐스트 세 가지 주소 체계로 나뉨
'1. 자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 5과목 정보시스템 구축 관리 - 2 (0) | 2020.08.13 |
---|---|
[정보처리기사 필기] 5과목 정보시스템 구축 관리 - 1 (0) | 2020.08.11 |
[정보처리기사 필기] 4과목 프로그래밍 언어 활용 - 1 (0) | 2020.08.08 |
[정보처리기사 필기] 3과목 데이터베이스 구축 - 3 (0) | 2020.08.07 |
[정보처리기사 필기] 3과목 데이터베이스 구축 - 2 (0) | 2020.08.06 |