응용 SW 기초기술활용
운영체제 정의
시스템이 각종 하드웨어 자원과 소프트웨어적 자원을 효과적으로 관리 운영함으로써 사용자가 시스템을 편리하게 이용할 수 있도록 한 총제적 시스템 소프트웨어
사용자 인터페이스 제공, 데이터 입출력 관리, 파일관리, 각종 하드웨어 자원관리, 프로그램 제어수행
운영체제 목적
처리능력향상(throughput) : 시스템의 생산성을 나타내는 단위로 일정시간동안 처리하는 작업량
응답시간 단축 : 사용자가 작업요청 후 결과가 얻어질때까지의 시간
사용가능도 증대 : 시스템을 얼마나 빠르게 사용할 수 있는지의 정도
신뢰도 향상 : 주어진 문제를 얼마나 정확하게 처리하는지의 정도
운영체제 기능
시스템의 각종 하드웨어와 네트워크를 관리하고 제어
자원의 효율적인 운영 및 자원 스케줄링
사용자와 컴퓨터간의 인터페이스 제공
데이터관리 및 데이터 및 자원 공유기능을 제공
시스템의 오류를 검사하고 복구
자원 보호 기능 제공
입출력에 대한 보조기능 제공
가상 계산기 기능
스케쥴링
컴퓨터 시스템의 성능을 높이기 위해 그 사용 순서를 결정하기 위한 정책
목적
: 공정한 프로세스 처리, 처리율 증가, CPU이용률 증가, 오버헤드 최소화, 응답시간 단축, 반환시간 최소화, 무한연기 회피
스케줄링 기법(비선점기법(NonPreemptive))
프로세스에게 이미 할당된 CPU를 강제로 빼앗을 수없고 사용이 끝날때까지 기다려야 하는 방법
모든 프로세스에 대한 요구를 공정하게 처리할 수 있다.
EX) FIFO, SJF, 우선순위, HRN 등
FIFO(First In First Out) = FCFS(First Come First Service)
큐에 도착한 순서에 따라 차례대로 CPU 할당하는 기법
먼저 도착한 것이 먼저 처리되어 공평하지만 응답시간이 길어질수 있는 단점
평균 반환시간을 구하는 방법과 평균 대기시간을 구하는 방법을 알아두자
SJF(Shortest Jop First)
실행 시간이 가장 짧은 프로세스에 먼저 CPU를 할당하는 기법
가장 적은 평균 대기시간을 제공하는 최적 알고리즘
HRN(Hightest Response-ratio Next)
실행시간이 긴 프로세스에 불리한 SJF기법을 보완하기 위한 기법
우선순위 계산공식 = (대기시간 + 서비스 시간) / 서비스시간
스케줄링 기법 - 선점기법(Preemptive)
하나의 프로세스가 CPU를 점유하고 있을 때 다른 프로세스가 CU를 빼앗을 수 있는 방법
우선순위가 높은 프로세스를 빠르게 처리할 수 있다
빠른 응답시간을 요구하는 대화식 시분할 시스템에 적합
EX) RR, SRT, 다단계 피드백 큐(MFQ) 등
RR(Round Robin)
FCFS 스케줄링을 선점형 방식으로 변형한 기법 시분할 처리 시스템(TSS)에 사용
프로세스마다 약속된 할당시간(Time slice)동안만 CPU를 할당하고 해당 시간안에 실행이 완료되지 않으면 강제로 다음 프로세스에게 CPU 사용권을 넘겨주고 해당 프로세스는 대기 큐의 가장 뒤로 배치
할당시간이 길어지면 FCFS기법과 유사, 너무 짧으면 오버헤드 문맥교환 문제 발생
교착상태(DeadLock)
교착상태란 다중 프로그래밍 시스템하에서 서로 다른 프로세스가 일어날 수 없는 사건을 무한정 기다리며 더 이상 진행되지 못하는 상태
교착상태 발생의 필요 충분 조건
1. 상호 배제 조건 : 한번에 한개의 프로세스만이 공유 자원을 사용할 수 있어야 한다.
2. 점유 및 대기 조건 : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 한다.
3. 비선점 조건 : 다른 프로세승 할당된 자원은 사용이 끝날 때 까지 강제로 빼앗을 수 없다.
4. 환형 대기 조건 : 공유 자원을 사용하기 위해 대가하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에있는 프로세스의 자원을 요구해야 한다.
문제 1
정답 : 7
설명 : 대기시간은 처음 실행되는시간은 대기시간이 없으므로 0 p-2가 실행된 3초뒤 실행시간이 짧은 p-1이 실행되므로 0+3 다음 실행시간이 짧은 p-4가 p-2,p-1이 실행되는동안 대기하기 때문에 해당 실행시간은 더해 0+3+9 다음 실행시간이 짧은 p-3가 실행되기까지 앞선 실행시간을 더한 값 0+3+9+16을 총 프로세스의 갯수로 나누면 된다. 따라서 (0+3+9+16)/4 이므로 답은 7이다.
문제 2
정답 : 교착상태(DeadLock)
설명 : 작업을 진행하지 못해 무기한 대기하는 현상을 보아 교착상태임을 알 수 있다.