운영체제 OS
⊙ 운영체제
: 사용자와 하드웨어 간에 인터페이스 담당
:CPU, 기억장치, 입출력 장치를 관리
-목적
① 컴퓨터 시스템의 효율적은 관리와 사용
② 신뢰도, 처리량 향상
③ 응답시간 단축
2. 운영체제의 처리 방식
1) 일괄 처리 시스템
-처리할 작업을 일정 기간 또는 일정량이 될 때까지 모아두었다가 한 번에 처리하는 방식.
-효율적, 유휴(Idle) 잦음
2) 다중 처리 시스템
-두 개 이상의 프로세서로 구성되어 다중 작업을 구현.
-작업 속도와 신뢰성 향상.
3) 다중 프로그래밍 시스템
-CPU 효율 극대화
-CPU 유휴 시간 줄임
4) 시분할 처리 시스템 (Time-sharing processing system)
-여러 사용자들이 한 컴퓨터를 동시에 이용할 수 있도록 각 사용자들에게 CPU에 대한 일정 시간을 제공
(번갈아가면서 시간을 제공하기 때문에 사용자는 사용에 불편함을 느끼지 않음)
5) 실시간 처리 시스템
-요구하면 즉시처리. 변동 발생 시 즉시 수정 가능
6) 분산 처리 시스템
-네트워크를 통해 연결돼 여러 컴퓨터 시스템에 작업과 자원을 나누어 처리하게 하는 방식
3. 운영체제의 자원관리
1) 프로세스 관리 : 프로세스의 생성, 삭제, 중지, 계속, 동기화, 프로세스 간의 통신 등 관리
2) 기억장치 관리 : 주기억장치 공간의 할당, 회수 등을 담당
3) 정보 관리 : 기억장소의 할당, 빈 공강의 관리, 디스크 스케줄링 등 담당
4) 입출력장치 관리 : 입출력 할당 등 담당
5. 성능평가
-처리능력 : 단위시간등 처리 할 수 있는 양
-변환 시간 : 작업이 시작된 시간에서부터 끝날떄까지 소요된 시간
-사용가능도 : 시스템을 고장없이 계속 사용할 수 있는지를 나타내기 위한 것
-신뢰도 : 시스템이 주어진 환경아래에서 얼마나 원활하게 기능을 수행 할 수 있는가를 나타내는 것
6. 운영체제의 종류
-윈도우
-유닉스
-리눅스
-매킨토시(애플)
⊙ 프로세스 관리
1. 프로세스
:실행중이거나 곧 실행이 가능한 프로세스의 제어 블록 Process Control Block (PCB)을 가진 프로그램
※PCB : 프로세스에 대한 정보를 저장하고 있는 자료구조 테이블
※ 인터럽트 : 프로세서(CPU)가 명령문 수행중 예기치 못한 사건이 발생하여 다른 작업을 처리하기 위해 수행하던 일을 강제로 종료시키는 것.
인터럽트의 종류에는 SVC(Super Visor Call)인터럽트, 입출력 인터럽트 등이 있다.
2. 병행 프로세스
: 두개 이상의 프로세스가 동시에 실행
:비동기성
-프로세스간에 상호 협력하는 것
1) 병행 프로세스의 비동기성으로 인해 발생하는 문제들을 해결하기 위한 방법
①동기화 ②상호배제 ③ 임계영역
2)교착상태
:프로세스가 기다려도 일어나지 않을 문제를 기다리고 있는 것 (병행 처리와 자원공유로 인해 발생되는 문제)
※교착상태 발생 조건
-상호배제 조건
-점유와 대기 조건
-비선점조건
-환형대기 조건
3) 스케줄링
:자원요청 중 누구에게 먼저 자원을 줄지 정하는 것
4) 프로세스 스케줄링의 분류
① 방법별 분류
-선점형 : 하나의 프로세스가 이미 프로세스를 점유하고 실행중인 다른 프로세스로 부터 프로세서를 신청하며 실행하는 방법
-비선점형 : 하나의 프로세스가 자원을 할당 받았을떄 자신에게 할당된 시간 동안 다른 작업에 간섭 받지 않고 끝까지 프로세스를 소유하는 방법
②알고리즘별 분류
-선점형
ⓐ RR (Round-robin) : 프로세서를 지정된 시간 안에만 사용할 수 있는 방식(대기 큐를 둔다.)
ⓑ SRT : 준비된 상태의 프로세스들 중에서 남아있는 실행시간의 추정치가 가장 적은 프로세스를 먼저 실행하는 것
ⓒ MFQ 스케줄링 : 대기큐를 여러 개 두어 각 단계의 큐에서 제공하는 시간 내에 프로세스가 완료되지 못하면 계속 다음 단계의 큐에서는 작업이 완료될때까지 라운드 로빈(RR)방식으로 처리하는 것

MFQ 스케줄링
-비선점형
ⓐ 우선순위 스케줄링
ⓑ 기한부 스케줄링
ⓒ FIFO (First-in Fisrt-out) 스케줄링
ⓓ SJF 스케줄링 : 현재 준비되어있는 상태에 있는 프로세스들 중에서 실행시간 추정치가 가장 작은 프로세스 부터 처리하는 방식