[정보처리기사 실기] sec163 ~ 173
Section 163. 운영체제의 개념
개념 : 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
목적 : 처리 능력 향상, 사용 가능도 향상, 신뢰도 향상, 신뢰도 향상, 반환 시간 단축
기능 : 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원 관리, 사용자와 시스템 간의 인터페이스 제공, 자원 스케줄링, 데이터 관리, 자원 공유
Section 164. 운영체제의 종류
Windows : 마이크로소프트 OS
UNIX : 벨 연구소, MIT, General Electric 공동 개발, C 언어, 다중 작업 지원, 트리 구조
- 커널 : 하드웨어 보호, 프로그램과 하드웨어 간의 인터페이스 역할
- 쉘 : 사용자의 명령어 인식하여 프로그램 호출 및 명령 수행, 시스템과 사용자 간 인터페이스 담당
- 유틸리티 프로그램 : 일반 사용자가 작성한 응용 프로그램 처리 > 인터프리터, 디버거, 컴파일러 등
LINUX : 리누스 토발즈가 UNIX 기반 개발
MacOS : 애플이 UNIX 기반 개발
Android : 구글이 개발한 리눅스 커널 기반 개방형 모바일 운영체제, 자바/코틀린 사용, 리눅스 커널 위 작동
iOS : 애플이 개발한 UNIX 기반 모바일 운영체제
Section 165. 기억장치 관리
(1) 반입(Fetch) 전략 : 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략
- 요구 반입 : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조 요구할때 적재
- 예상 반입 : 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재
(2) 배치 전략 : 프로그램이나 데이터를 주기억장치의 어디에 위치 시킬 것인지를 결정하는 전략
- 최초 적합
- 최적 적합
- 최악 적합
(3) 교체 전략 : 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략
Section 166. 주기억장치 할당 기법
연속 할당 기법 : 프로그램을 주기억장치에 연속 할당 > 단일 분할 할당 기법, 다중 분할 할당 기법
분산 할당 기법 : 프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당 > 페이징 기법, 세그먼테이션 기법
단일 분할 할당 기법 : 한순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법
- 오버레이 기법 : 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법
- 스와핑 기법 : 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체 기법
다중 분할 할당 기법
- 고정 분할 할당 기법 = 정적 할당 기법 : 여러개의 고정된 크기로 분할, 준비상태 큐에서 각 영역에 프로그램 할당하여 수행
- 가변 분할 할당 기법 = 동적 할당 기법 : 미리 분할하지 않고 필요한 만큼 영역 분할, 단편화 줄임
Section 167. 가상기억장치 구현 기법
가상기억장치 : 보조기억장치의 일부를 주기억장치처럼 사용하는 것
페이징 기법 : 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법 - 나눈 단위 : 페이지, 페이지 단위 : 페이지 프레임, 주소변환을 위해 페이지 맵 테이블이 필요
세그멘테이션 기법 : 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법
Section 168. 페이지 교체 알고리즘
개념 : 페이지 부재가 발생하면 어떤 페이지 프레임을 선택하여 교체할 것인지 결정하는 것
- OPT(Optimal replacement, 최적 교체) : 앞으로 가장 오랫동안 사용하지 않을 페이지 교체
- FIFO : 가장 먼저 들어와서 가장 오래 있던 페이지 교체
- LRU(Least Recently Used) : 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
- LFU(Least Frequently Used) : 사용 빈도가 가장 적은 페이지를 교체
- NUR(Not Used Recently) : 최근에 사용하지 않은 페이지 교체
- SCR(Second Chance Replacement, 2차 기획 교체) : 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체 방지를 위한 기법, FIFO 단점 보완에 사용
Section 169. 가상기억장치 기타 관리 사항
페이지 크기
- 페이지 크기가 작을 경우 : 페이지 단편화 감소, 매핑 속도 느림
- 페이지 크기가 클 경우 : 페이지 단편화 증가, 매핑 속도 빠름
Locality(지역성, 국소성) : 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
- 시간 공격성 : 일정 시간 동안 하나의 페이지에 집중 액세스
- 공간 구역성 : 일정 위치 페이지에 집중 액세스
워킹셋 : 프로세스가 일정 시간 동안 자조 참조하는 페이지 집합, 기억장치 사용 안정
스레싱 : 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아 지는 현상
Section 170. 프로세스의 개요
프로세스 : 실행중인 프로그램
PCB(Process Control Block) : 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
프로세스 상태 전이
제출 > 접수 > 준비 > 실행 > 대기/블록 > 종료
Dispatch : 준비 상태에서 대기된 프로세스를 할당받아 실행 상태로 바뀌는 과정
Wake Up : 프로세스가 대기 상태에서 준비 상태로 전이 되는 과정
Spooling : 디스크에 저장하는 과정
Traffic Controller : 프로세스의 상태에 대한 조사와 통보 담당
Thread : 시스템의 여러 자원을 할당받아 실행하는 프로그램 단위
Section 171. 스케줄링
개념 : 시스템의 여러 자원을 해당 프로세스에 할당하는 작업
종류 : 장기 스케줄링 / 중기 스케줄링 / 단기 스케줄링
목적 : 공정성 / 처리율 증가 / CPU 이용률 증가 / 우선순위 제도 / 오버헤드 최소화 / 응답시간 최소화 / 반환 시간 최소화 / 대기 시간 최소화 / 균형 있는 자원의 사용 / 무한 연기 회피
비선점 스케줄링 : 이미 할당된 CPU를 다른 프로세스가 강제로 뺴앗아 사용할 수 없는 스케줄링 기법
- FCFS, SJF, 우선순위, HRN, 기한부 등
선점 스케줄링 : 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
- Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등
Section 172. 주요 스케줄링 알고리즘
FCFS = FIFO = 선입선출
준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법
SJF = Short Job First = 단기 작업 우선
준비상태 큐에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
HRN = Highest Response-ratio Next
대기시간과 서비스 시간을 이용하는 기법
대기시간 + 서비스 시간 / 서비스 시간
Section 173. 환경 변수
환경 변수 : 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임
변수명과 값으로 구성 / 시스템의 기본 정보를 저장 / 자식 프로세스에 상속 / 시스템 환경변수&사용자 환경변수