운영체제 요약
1. 배치 프로그램 : 사용자와 상호작용 없이 일련의 작업을 작업 단위로 묶어 정기적으로 반복 수행하는 일괄 처리 방법
스프링 배치 : Spring Source사와 Accenture사가 2007년 공동 개발한 오픈 소스 프레임 워크. 로그 관리, 추적, 트랜잭션 관리, 작업처리 통계, 재시작 기능 제공
쿼츠 스케줄러 : 스프링 프레임워크로 개발되는 오픈 소스 라이브러리로 수행할 작업과 수행시간을 관리하는 요소들을 분리해 일괄처리 작업에 유연성을 제공
2. 운영체제 성능평가 기준[처반사신]
처리능력 : 일정 시간 내에 시스템이 처리하는 일의 양
반환시간 : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
사용가능도 : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
신뢰도 : 시스템이 주어진 문제를 정확하게 해결하는 정도
3. 스케줄링 목적
공정성 : 모든 프로세스에 공정하게 할당
처리율 증가(Throughput) : 단위 시간당 프로세스 처리 비율 증가
CPU 이용률 증가 : CPU의 낭비시간 감소, CPU의 사용 시간 비율 증가
우선순위 제도 : 우선순위가 높은 프로세스 우선 수행
오버헤드 최소화 : 오버헤드 최소화
응답시간 최소화 : 반응 시간 최소화
반환 시간 최소화(Turn Around Time) : 프로세스 제출 시간으로부터 실행이 완료되기 까지의 걸리는 시간 최소화
대기 시간 최소화 : 준비상태 큐에 대기하는 시간 최소화
균형 있는 자원의 사용 : 메모리, 입출력장치의 자원을 균형있게 사용
무한 연기 회피 : 자원을 사용하기 위한 무한정 연기 상태 회피
4. 스케줄링 과정
장기 스케쥴링 : 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가를 결정하여 준비상태 큐로 보내는 작업. 작업 스케줄링, 상위 스케줄링이라고 함. 작업 스케줄러에 의해 수행됨
중기 스케쥴링 : 어떤 프로세스들이 CPU를 할당받을 것인지 결정하는 작업. CPU를 할당받으려는 프로세스가 많을 경우 프로세스 일시 보류 후 활성화함으로 부하를 조절함.
단기 스케줄링 : 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업. 프로세서 스케줄링, 하위 스케줄링 이라고 함. 프로세스 스케줄러에 의해 문맥 교환이 수행됨
5. 스케줄링 기법
[선점 : 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법. 우선순위가 높은 프로세스 먼저 처리. 빠른 응답시간을 요구하는 대화식 시분할 시스템에 용이. 많은 오버헤드를 초래. 선점이 가능하도록 인터럽트용 타이머 클럭이 필요.]
SRT(Shortest Remaining Time First) : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 점유되는 스케줄링 알고리즘
라운드 로빈 : CPU 할당 시간 설정 후 프로세스가 할당된 시간 내에 처리하지 못할 경우 큐리스트의 가장 맨 뒤로 이동하고 다음 프로세스를 CPU에 할당하는 기법
[비선점 : 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법(순서대로). 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU 사용. 모든 프로세스에 대한 요구를 공정하게 처리. 프로세스 응답 시간의 예측이 용이. 일괄처리 방식에 적합]
FCFS(First Come First Service, 선입 선출) : 준비 상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법
SJF(Shortest Job First, 단기 작업 우선) : 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
HRN(Hightest Responsse-ratio Next) : SJF 기법 보완하기 위한 것으로, 대기시간과 서비스 실행 시간을 이용하는 기법. 우선순위 계산식 : (대기 시간 + 서비스 시간) / 서비스 시간
기한부(Deadline) : 프로세스에게 일정한 시간을 주어 그 시간 안에 프로세스를 완료하도록 하는 기법
우선순위 : 준비상태 큐에서 기다리는 각 프로세스마다 우선순위를 부여해 그중 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법
[그외]
에이징 기법 : 시스템에서 특정 프로세스의 우선순위가 낮아 무한정 기다리게 되는 경우, 한 번 양보하거나 기다린 시간에 비례해 일정 시간이 지나면 우선순위를 한단계씩 높여 가까운 시간 안에 자원을 할당받도록 하는 기법.
mutex : 임계영역을 가진 스레드들의 실행 시간이 서로 겹치지 않게 각각 단독으로 실행되게 하는 기술
문맥교환 : 하나의 프로세스에 다른 프로세스로 CPU가 할당되는 과정에서 발생되는 것
새 프로세스에 CPU를 할당하기 위해 현재 CPU가 할당된 프로세스의 상태 정보를 저장하고, 새 프로세스에 상태 정보를 설정한 후 CPU를 할당해 실행되도록 하는 작업
6. 교착상태(Dead Lock) : 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
7. 교착상태 필요 충분 조건
상호 배제 : 한번에 한개의 프로세스만이 공유 자원을 사용할 수 있어야 함
점유와 대기 : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함
비선점 : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 뺴앗을 수 없어야 함
환형 대기 : 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함
8. 교착상태 해결 방법
예방 기법 : 상호 배제, 점유 및 대기, 비선점, 환형 대기 조건 중에서 어느 하나를 제거하여 해결
회피 기법 : 은행원 알고리즘(교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생시 적절히 피해나가는 방법)
발견 기법 : 자원 할당 그래프 활용
회복 기법 : 교착 상태의 프로세스에 할당된 자원을 선점해 회복
9. Locality(지역성)
데닝(Denning) 교수에 의해 개념 증명. 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질. 스래싱을 방지하기 위한 워킹셋의 기반이 됨. 프로세스가 집중적으로 사용하는 페이지를 알아내는 방법.
- 시간 구역성 : 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스하는 현상. 한번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높다
- 시간 구역성이 이뤄지는 기억 장소 : Loop(반복,순환), 스택(Stack), 부 프로그램(Sub Routine), Counting(1씩 증감), 집계에 사용되는 변수
- 공간 구역성 : 프로세스 실행시 일정 위치의 페이지를 집중적으로 액세스 하는 현상. 어느 페이지를 참조하면 그 근처의 페이지를 계속 참조할 가능성이 높음.
- 공간 구역성이 이뤄지는 기억 장소 : 배열 순회(Array Traversal), 순차적 코드의 실행, 프로그래머들이 관련된 변수(데이터를 저장할 기억 장소)들을 서로 근처에 할당되는 기억장소, 같은 영역에 있는 변수
10. 워킹 셋(Working Set)
프로세스가 일정시간 동안 자주 참조하는 페이지들의 집합. 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로서 페이지 부재 및 페이지 교체 현상을 줄이고 프로세스의 기억 장치 사용이 안정됨. 시간이 지남에 따라 자주 참조하는 페이지들이 집합이 변화하기 때문에 워킹셋은 시간에 따라 변함.
11. 페이지 부재
페이지 부재 : CPU가 액세스한 가상 페이지가 주기억장치에 없는 경우. 페이지 부재가 발생하면 해당 페이지를 보조기억장치(디스크)에서 주기억장치로 가져와야함.
페이지 부재 빈도(PFF) : 페이지 부재 횟수를 의미.
페이지 부재 빈도 방식 : 페이지 부재율에 따라 주기억장치에 있는 페이지 프레임 수를 늘리거나 줄여 페이지 부재율을 적정 수준으로 유지하는 방식.
12. 프리페이징(Prepaging)
처음의 과도한 페이지 부재를 방지하기 위해 필요할 것 같은 모든 페이지를 한꺼번에 페이지 프레임에 적재하는 기법
13. 스래싱(Thrashing)
프로세스의 처리 시간 보다 페이지 교체에 소요되는 시간이 더 많아지는 현상. 다중 프로그래밍 시스템이나 가상 기억장치를 사용하는 시스템에서 하나의 프로세스 수행 과정 중 자주 페이지 부재가 발생함으로 나타나는 현상으로, 전체 시스템의 성능이 저하됨. 다중 프로그래밍 정도가 상승하면 CPU의 이용률은 어느 특정 시점까지 높아지며, 정도가 더욱 커지면 스래싱이 발생해 CPU의 이용률이 급격히 감소하게 된다.
스래싱 현상 방지 방법 : 다중 프로그래밍 정도를 적정 수준으로 유지, 페이지 부재 빈도를 조절하여 사용, 워킹 셋 유지, 부족한 자원을 증설, 일부 프로세스 중단.
14. 가상기억장치 기법
페이징(Paging) 기법 : 가상 기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후, 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재시켜 실행. 외부 단편화 발생x, 내부 단편화 발생o. 주소 변환을 위해 페이지 맵 테이블이 필요함. 페이지 맵 테이블 사용으로 비용이 증가, 처리속도가 감소.
세그먼테이션(Segmentation) 기법 : 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법. 배열이나 함수 등과 같은 논리적 크기로 나눈 단위를 세그먼트라고 부르며, 각 세그먼트는 고유한 이름과 크기를 가짐. 기억장치의 사용 관점을 보존하는 기억장치 관리 기법이다. 주소 변환을 위해 세그먼트 맵 테이블이 필요함. 세그먼트가 주 기억장치에 적재될 때 다른 세그먼트에게 할당된 영역을 침범할 수 없도록 기억장치 보호키가 필요함. 내부 단편화x, 외부 단편화o
15. 페이지 교체 알고리즘
OPT(OPTimal replacement) : 가장 오랫동안 사용하지 않을 페이지
FIFO(First In First Out) : 가장 먼저 들어와서 가장 오래 있었던 페이지 교체
LRU(Least Recently Used) : 최근에 가장 오랫동안 사용하지 않은 페이지
LFU(Least Frequently Used) : 사용 빈도가 가장 적은 페이지
NUR(Not Used Recently) : 최근에 가장 오랫동안 사용하지 않은 페이지 + 참조비트, 변형비트
SCR(Second Chance Replacement) : 가장 먼저 들어와서 가장 오래 있었던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 알고리즘(FIFO 단점 보완)
16. 프로세스 상태 전이
제출(Submit, 생성) : 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
접수(Hold, 생성) : 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태. 생성 과정 안에 (제출->접수)이 포함.
준비(Ready) : 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태. 프로세스는 준비상태 큐에서 실행을 준비.
접수(Hold) : 상태에서 준비상태로의 전이는 Job 스케줄러에 의해 수행된다.
실행(Run) : 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태. 프로세스 수행이 완료되기 전에 프로세스에게 주어진 프로세서 할당 시간(Timer Runout)이 종료 되면 프로세스는 준비 상태로 전이됨. 실행중인 프로세스에 입출력 처리가 필요하면 실행중인 프로세스는 대기 상태로 전이됨.
대기(Wait), 보류, 블록(BlocK) : 프로세스에 입출력처리가 필요하면 현재 실행 중인 프로세스가 중단되고, 입출력처리가 완료될 때까지 대기하고 있는 상태
종료 : 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태
*요약 : 사용자가 작업을 요청하면 프로세스가 스풀 공간에서 생성되고, 프로세서를 할당받기 위해 준비하며 프로세서가 할당되면 실행됩니다. 이때 할당시간이 종료되면 다시 준비로 가거나 입출력 처리가 필요하면 대기로 가서 입출력이 완료되면 Wake Up에 의해 다시 준비로 갑니다.
Hold -> Job 스케쥴러 -> 준비
준비 -> Dispatch -> 실행
준비 <- Timer Runout <- 실행
준비 <- Wake up <- 대기
17. 프로세스 상태 전이 관련 용어
Dispatch : 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행상태로 전이되는 과정
Wake Up : 입출력작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정
Spooling : 입출력 장치의 공유 및 상대적으로 느린 입출력장치의 처리속도를 보완하고 다중프로그래밍 시스템의 성능을 향상시키기 위해 입출력할 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정.
타이머 런 아웃 : CPU를 할당받아 실행되고 있는 프로세스는 지정된 할당 시간이 초가되면 스케줄러에 의해 CPU 반납 후 다시 준비 상태가 되는 프로세스 상태 전이
MMU(Memory Management Unit) : CPU가 메모리에 접근하는 것을 관리하는 하드웨어 부품으로 가상 메모리를 실제 메모리 주소로 변환하는 장치
18. 클라우드 컴퓨팅 유형
Iaas(인프라형) : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스로, 컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어 탑재 및 실행을 하는 서비스
Paas(플랫폼형) : 인프라 생성, 관리 등 복잡한 절차 없이 애플리케이션 개발, 실행, 관리 할 수 있도록 플랫폼을 제공하는 서비스로 OS, 애플리케이션과 애플리케이션 호스팅 환경 구성의 제어권을 가진다.
Saas(소프트웨어형) : 소프트웨어 및 관련 데이터는 중앙에 호스팅 되고 사용자는 웹 브라이주 등의 클라이언트를 통해 접속해 소프트웨어를 서비스 형태로 이용하는 서비스로 주문형 소프트웨어라고도 불린다.
'2020 정보처리기사 실기 > 실기요약' 카테고리의 다른 글
2020 정보처리기사 실기 요약 - 애플리케이션 테스트 (0) | 2020.11.27 |
---|---|
2020 정보처리기사 실기 요약 - 암호화 및 소프트웨어 보안 요약 (0) | 2020.11.27 |
2020 정보처리기사 실기 요약 - 사용자 인터페이스 설계 요약 (0) | 2020.11.27 |
2020 정보처리기사 실기 요약 - 프로토콜 네트워크 요약 (0) | 2020.11.27 |
2020 정보처리기사 실기 요약 - 데이터베이스 (0) | 2020.11.26 |