본문 바로가기

OS

[운영체제] 디스크 스케줄링 1. 디스크 스케줄링의 개요- 디스크 스케줄링(Disk Scheduling)은 사용할 데이터가 디스크 상의 여러 곳에 저장되어 있을 경우 데이터를 액세스하기 위해 디스크 헤드가 움직이는 경로를 결정하는 기법이다.- 디스크 스케줄링은 일반적으로 탐색 시간을 최적화하기 위해 수행되며, 다음과 같은 목적을 갖고 있다.- 처리량 최대화 : 일정 시간에 디스크 입출력 요구를 서비스 해주는 수를 최대화한다.- 응답 시간의 최소화 : 어떤 요청이 있은 후 결과가 나올 때까지 걸리는 시간을 최소화한다.- 응답 시간 편차의 최소화 : 각 요청의 응답 시간과 평균 응답 시간의 편차를 최소화한다.- 디스크 스케줄링의 종류에는 FCFS, SSTF, SCAN, C-SCAN, N-step SCAN, 에센바흐, SLTF 스케줄링 .. 더보기
[운영체제] 가상기억장치 기타 관리 사항 1. 가상기억장치 기타 관리 사항- 가상기억장치를 구현할 때 시스템의 성능에 영향을 미치는 것으로 페이지 크기, Locality, 워킹 셋, 페이지 부재 빈도, 프리페이징 등이 있다. 2. 페이지 크기- 페이징 기법을 사용하면 프로그램을 페이지 단위로 나누게 되는데, 페이지의 크기에 따라 시스템에 미치는 영향이 다르다. 페이지 크기에 따른 특징은 다음과 같다. 1) 페이지 크기가 작을 경우- 페이지 단편화가 감소되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어든다.- 불필요한 내용이 주기억장치에 적재될 확률이 적으므로 효율적인 워킹 셋을 유지할 수 있다.- Locality(국부성)에 더 일치할 수 있기 때문에 기억장치 효율이 높아진다.- 페이지 정보를 갖는 페이지 맵 테이블의 크기가 커지고, 매.. 더보기
[운영체제] 페이지 교체 알고리즘 1. 페이지 교체 알고리즘의 개요- 페이지 교체 알고리즘은 페이지 부재(Page Fault)가 발생했을 때 가상기억장치의 필요한 페이지를 주기억장치에 적재해야 하는데, 이때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법이다.- 페이지 교체 알고리즘에는 OTP, FIFO, LRU, LFU, NUR, SCR 등이 있다. 2. OTP(OPTimal replacement, 최적 교체)- OTP는 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법이다.- 벨레이디(Belady)가 제안한 것으로, 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘이다.- 각 페이지 호출 순서와 참조 상황을 미리 예측해야 하므로 실현 가능성이 희박하다. 3.. 더보기
[운영체제] 가상기억장치 구현 기법 1. 가상기억장치의 개요- 가상기억장치는 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법이다.- 프로그램을 여러 개의 작은 블록 단위로 나누어서 가상기억장치에 보관해 놓고, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리한다.- 주기억장치의 용량보다 큰 프로그램을 실행하기 위해 사용한다.- 주기억장치의 이용률과 다중 프로그래밍의 효율을 높일 수 있다.- 가상기억장치에 저장된 프로그램을 실행하려면 가상기억장치의 주소를 주기억장치의 주소로 바꾸는 주소 변환 작업이 필요하다.- 블록 단위로 나누어 사용하므로 연속 할당 방식에서 발생할 수 있는 단편화를 해결할 수 있다.- 가상기억장치의 일반적인 구현 .. 더보기
[운영체제] 기억장치 관리의 개요 1. 기억장치 계층 구조의 특징- 기억장치는 레지스터, 캐시 기억장치, 주기억장치, 보조기억장치가 있다.- 레지스터가 가장 상위 기억장치이며, 순서대로 보조기억장치가 가장 하위 기억장치이다.- 계층 구조에서 상위의 기억장치일수록 접근 속도와 접근 시간이 빠르지만, 기억 용량이 적고 고가이다.- 주기억장치는 각기 자신의 주소를 갖는 워드 또는 바이트들로 구성되어 있으며, 주소를 이용하여 액세스할 수 있다.- 레지스터, 캐시 기억장치, 주기억장치의 프로그램과 데이터는 CPU가 직접 액세스할 수 있으나 보조기억장치에 있는 프로그램이나 데이터는 직접 액세스할 수 없다.- 보조기억장치에 있는 데이터는 주기억장치에 적재된 후 CPU에 의해 액세스될 수 있다. 2. 기억장치의 관리 전략의 개요- 기억장치의 관리 전략.. 더보기
[운영체제] 교착상태 1. 교착상태의 개요- 교착상태(Dead Lock)는 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미한다.- 예를 들어, 자동차(프로세스)들이 현재 위치한 길(자원)을 점유함과 동시에 다른시에 다른 차가 사용하는 길을 사용하려고 대기하고 있지만 다른 길을 사용할 수 없으며 현재 길에서도 벗어나지 못하는 상태이다. 2. 교착상태 발생의 필요 충분 조건- 교착상태가 발생하기 위해서는 다음의 네 가지 조건이 충족되어야 하는데, 이 네 가지 조건 중 하나라도 충족되지 않으면 교착상태가 발생하지 않는다. 전부 충족되어야 교착상태가 발생한다.- 상호 배제(Mutual Exclusion) : 한 번에.. 더보기
[운영체제] 병행 프로세스와 상호 배제 1. 병행 프로세스- 병행 프로세스(Concurrent Process)는 두 개 이상의 프로세스들이 동시에 존재하여 실행 상태에 있는 것을 의미한다.- 여러 프로세스들이 독립적으로 실행되는 것을 독립적 병행 프로세스, 서로 협업하며 동시에 실행되는 것을 협동적 병행 프로세스라고 한다.- 병행 프로세스는 다중 처리 시스템이나 분산 처리 시스템에서 중요한 개념으로 사용된다. 2. 임계 구역- 임계 구역(Critical Section)은 다중 프로그래밍 운영체제에서 여러 개의 프로세스가 공유하는 데이터 및 자원에 대하여 어느 한 시점에서는 하나의 프로세스만 자원 또는 데이터를 사용하도록 지정된 공유 자원(영역)을 의미한다.- 임계 구역에는 하나의 프로세스만 접근할 수 있으며, 해당 프로세스가 자원을 반납한 후.. 더보기
[운영체제] 선점 스케줄링 1. 선점 스케줄링의 개요- 선점 스케줄링에는 선점 우선순위, SRT, RR, 다단계 큐, 다단계 피드백이 있다. 2. 선점 우선순위- 준비상태 큐의 프로세스들 중에서 우선순위가 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법이다.- 비선점 우선순위 기법을 선점 형태로 변형한 것으로, 준비상태 큐에 새로 들어온 프로세스의 순위가 높을 경우 현재의 프로세스를 보류하고 새로운 프로세스를 실행한다. 3. SRT(Shortest Remaining Time)- 비선점 스케줄링인 SJF 기법을 선점 형태로 변경한 기법으로, 선점 SJF 기법이라고도 한다.- 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하.. 더보기
[운영체제] 비선점 스케줄링 1. 비선점 스케줄링의 개요- 비선점 스케줄링에는 FCFS, SJF, HRN, 우선순위, 기한부 알고리즘이 있다. 2. FCFS(First Come First Service, 선입선출) = FIFO(First In First Out)- FCFS는 준비상태 큐(대기 큐, 준비 완료 리스트, 작업 준비 큐, 스케줄링 큐)에 도착한 순서에 따라 차례로 CPU를 할당하는 기법으로, 가장 간단한 알고리즘이다.- 먼저 도착한 것이 먼저 처리되어 공평성은 유지되지만 짧은 작업이 긴 작업을, 중요한 작업이 중요하지 않은 작업을 기다리게 된다.- 대기 시간 : 프로세스가 대기한 시간으로, 바로 앞 프로세스까지의 진행 시간으로 계산- 반환 시간 : 프로세스의 대기 시간과 실행 시간의 합 3. SJF(Shorted Job .. 더보기
[운영체제] 스케줄링 1. 스케줄링의 개요- 스케줄링(Scheduling)은 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 의미한다.- 프로세스가 생성되어 완료될 때까지 프로세스는 여러 종류의 스케줄링 과정을 거치게 된다.- 스케줄링의 종류에는 장기 스케줄링, 중기 스케줄링, 단기 스케줄링이 있다.- 장기 스케줄링 : 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가를 결정하여 준비상태 큐로 보내는 작업을 의미한다.- 중기 스케줄링 : 어떤 프로세스들이 CPU를 할당받을 것인지 결정하는 작업을 의미한다.- 단기 스케줄링 : 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업을 의미한다. 2. 스케줄링의 목적- 스케줄링은 CPU나 자원을 효율.. 더보기