티스토리 뷰

IT

[IT정리] 운영체제 용어

#*! 2017. 3. 12. 23:05

오늘의 IT정보는 운영체제 용어정리입니다.2008년 학교 과제로 운영체제 관련 용어정리를 진행하였습니다.기존에 작성된 내용으로 다양한 문헌을 참고하였습니다.해당 내용의 모든 권한은 기존 작성자 분들에게 있습니다. 문제가 있으시면 삭제또는 출처를 표기해 드리겠습니다.

 

 

고정 분할기법과 가변분할 기법은 아래와 같습니다.

 

첫번째 고정 분할기법입니다.

다중 프로그래밍을 위해 주기억장치를 미리 몇개의 고정된 크기로 분할. 그리고 여러개의 사용자 프로그램을 동시에 실행하는 방법이다. 다만, 이럴 시에 단점이 있는데 단편화현상이 생겨서 기억장소의 낭비가 심하다는 것이다.

 

두번째 가변 분할기법입니다.

필요로 하는 만크만 기억장소를 할당해 실행하는 방법. 이 때에는 할당, 재배치를 위한 알고리즘(순서도)이 필요하다. 프로그램 또는 데이터를 어느 위치에 적재시킬 것인지 결정하기 위한 알고리즘에는 3가지가 있는데요, 최초/최적/최악 적합이 있다. 최초는 말 그대로 가장 먼저 발견된 기억공간에 할당하는 것이고, 최적은 기억공간중 크기가 가장 적당한 곳에 할당하는 방법이다. 최악은 사용되지 않은 기억공간 중 큰 영역에 할당해 버리는 것이다.

 

 

프로세스 상태모형은 아래와 같습니다.

 

첫번째 보류(pending) 상태 : 작업이 제출되어 스풀 공간인 디스크에 수록되어 있는 상태입니다.

두번째 준비(ready) 상태 : CPU를 사용가능한 상태 즉, CPU를 할당 받을 수 있는 상태입니다.CPU가 프로세스 자신을 처리해 주기를 기다리고 있는 상태를 말합니다.

세번째 실행(running) 상태 : 프로세스가 CPU를 차지하고 있는 상태로서, CPU에 의해 프로세스를 수행하고 있는 상태입니다.

네번째 대기(blocked) 상태 : 프로세스가 CPU를 차지하고 실행되다가 입출력 처리와 같은 사건이 발생하게 되면, CPU를 양도하고 입출력 처리가 완료될 때까지 대기큐에서 대기하고 있는 상태입니다. 대기중인 프로세스는 입출력의 완성등 외부 신호를 기다리고 있습니다.

 다섯번째 교착(deadlock) 상태 : 프로세스가 결코 일어날 수 없는 사건의 발생을 기다리고 있는 상태입니다.

여섯번째 완료(terminated) 상태 : 프로세스가 CPU를 할당받아, 주어진 시간내에 완전히 수행을 종료한 상태입니다.. 종료된 프로세스는 시스템에서 제거되고 관련된 PCB도 삭제합니다

 

 

 

폴링과 데이지 체인은 아래와 같습니다.

 

첫번째 폴링입니다.

컴퓨터 또는 단말 제어장치 따위에서 여러 개의 단말 장치에 대하여 순차적으로 송신 요구의 유무를 문의하고, 요구가 있을 경우에는 그 단말 장치에 송신을 시작하도록 지령하며, 없을 때에는 다음 단말장치에 대하여 문의하는 전송 제어방식입니다.

 

두번째 데이지 체인입니다.

데이지 체인이란 연속적으로 연결되어 있는 하드웨어 장치들의 구성을 지칭한다. 예를 들어 SCSI 인터페이스는 최대 7개의 장치까지 데이지 체인형식을 지원한다.

데이지 체인은 예를 들어 어떤 장치 AB라는 장치에 연결되어 있고, B라는 장치는 다시 C라는 장치에 연속하여 연결되어 있는 방식의 버스 결선방식을 말한다. 이때 가장 마지막에 있는 장치는 대개 저항장치 또는 단말장치에 접속된다. 모든 장치들은 동일한 신호를 수신할 수도 있지만, 단순한 버스와는 현저히 다르게 체인 내에 속한 각 장치가 하나 이상의 신호를 다른 장치에 전달하기 전에 내용을 수정하는 경우도 있다.

 

세마포어은 아래와 같습니다.

 

첫번째 세마포어 (semaphore)란 아래와 같습니다.

동기화의 일반적인 방법인 세마포어 방법은 세마포어라는 정수 변수(integer variable), 프로세스 대기열(process waiting queue), PV의 두 명령으로 구성된다. 초기 상태의 변수값은 자원의 수와 같으며 대기열은 비어 있다. P명령은 변수의 값을 하나 줄인 후, 변수의 값이 0보다 작으면 프로세스를 대기열로 집어 넣는다.

반대로 0보다 크면 그 프로세스는 계속 진행된다. V명령은 변수의 값을 하나 증가시킨다. 그 결과가 0보다 크면 프로세스는 계속되며 0보다 작으면 대기열의 프로세스 하나를 준비 상태로 만들고, 프로세스의 수행은 계속된다. 결국 변수의 값은 음수일 경우는 대기 중인 프로세스의 수를 나타내며, 양수이면 사용 가능한 자원의 수를 가리킨다.

 

두번째 세마포어 (semaphore)란 아래와 같습니다.

다익스트라(E.J.Dijkstra)가 제안한 동시에 정보를 공유하여 수행되는 두 개 이상의 프로그램이나 프로세스에서 활동(activity)의 위치(coordination)를 설정해 주는 데 사용되는 동기화를 위한 기본 조작. 이는 두개 이상의 프로세스에 의해 공유되는 고유변수로 정의되는데, 보통의 방법으로는 다룰 수 없고 항상 PV라는 연산을 통해서만 액세스할 수 있다.

세마포어 sem이란 다음과 같은 연산이 허용된 정수형 변수를 말한다. 두 연산은 모두 원자화되어야 한다. sem을 변경할수 있는 프로세스는 한 순간에 오직 하나 뿐이다.

 

 

 

프로세스 스케쥴링의 분류은 아래와 같습니다.

 

  FCFS(First -come-First-Service)

첫번째 가장간단합니다.

두번째 CPU 요구 순으로 할당합니다.

세번째 FIFO 큐로 구현합니다.

네번째 비선점 알고리즘입니다.

다섯번째 평균 반환 시간이 큰 폭으로 변화합니다.

여섯번째 호위 효과입니다.

- 여러 프로세스들이 하나의 큰 프로세스가 끝나기를 기다리는 현상을 말합니다.

 

  단기 작업 우선(SJF : Shortest - job-First)

첫번째 최적의 알고리즘입니다.

두번째 일반적인 우선순위 스케줄링 알고리즘의 특수한 형태입니다.

세번째 각 작업의 차기 CPU 버스트 시간을 중심으로 CPU가 사용 가능할 때 버스트 시간이 가장 작은 작업에 할당합니다.

네번째 비선점 알고리즘 -> 선점 알고리즘으로 수정 기능입니다.

다섯번째 차기 CPU 요구 시간을 알기 어렵습니다.

여섯번째 단기 스케줄링 단계에서 구현이 어렵습니다.

 

  우선순위(Priority)

첫번째 비선점 알고리즘 -> 선점 알고리즘으로 수정 가능합니다.

두번째 CPU는 우선 순위가 제일 높은 프로세스에 할당합니다.

세번째 우선 순위가 같은 경우 FCFS로 처리합니다.

네번째 내부적 우선 순위 - 제한 시간, 기억 장소 요구량, 사용 파일수, 평균 CPU 버스트에 대한 평균 입출력 버스트의 비율 등을 고려합니다.

다섯번째 외부적 우선 순위 사용료를 많이 낸 사용자 또는 정책적인 변수 등을 고려합니다.

여섯번째 무한 봉쇄, 기아 상태 - 우선 순위가 낮은 작업은 준비상태에서 무한정 CPU를 대기 -> 에이징 기법으로 해결합니다.

에이징(Aging) - 어떤 작업이 시스템에 머무르는 시간이 증가함이 우선 순위를 높여주는 방법입니다.

 

   선점 알고리즘

첫번째 선점 SJF알고리즘(최소 잔류시간 우선)입니다

- 준비상태 큐에 현재 진행중인 작업의 나머지 CPU 사용량보다 짧은 작업이 들어오면 새로 들어온 작업으로 대치합니다.

두번째 선점 우선순위 알고리즘입니다.

- 프로세스가 준비상태 큐에 들어오면 바로 전의 입출력 요구의 수행을 끝낸 결과로 그것의 우선순위가 현재 실행중인 프로세스의 우선순위와 비교합니다.

 

  라운드 로빈

첫번째 특히 시분할 시스템을 위해 고안합니다.

두번째 준비상태 큐의 원형 큐입니다.

세번째 단위시간 : 10~100 msec 정도의 시간 조작이 규정됩니다.

네번째 CPU 스케줄러는 큐를 거치면서 각 프로세스에게 정의된 시간량 만큼씩 CPU를 할당합니다.

다섯번째 준비상태 큐는 FIFO 큐입니다.

- 새로운 프로세스는 큐의 맨 뒤에 삽입합니다.

여섯번째 프로세스가 규정시간 내에 일을 마치지 못하는 경우 인터럽트를 발생합니다.

· 운영체제에 의해 수행이 중단됩니다.

· 레지스터의 내용들은 PCB에 저장합니다.

· 프로세스는 준비상태 큐의 맨 뒤로 이동합니다.

일곱번째 문맥 교환을 위한 오버헤드 발생합니다.

문맥교환이란 무엇일까요.

- 중단된 프로세스의 모든 레지스터들은 저장되고 새로운 프로세스의 레지스터들이 적재합니다.

 

 다단계 큐

첫번째 각 작업들이 서로 다른 묶음으로 분류될 수 있을 때 사용합니다.

두번째 여러 개의 준비 상태 큐를 사용합니다.

· 작업이 시스템에 들어가면 작업이 성격, 우선 순위 등에 따라 분류되어 해당 큐에서 대기합니다.

· 각 큐는 자신만이 독자적인 스케줄링 알고리즘을 소유합니다.

· 각 큐들은 특정량의 CPU 시간을 취하여 자신의 큐에 여러 작업들을 스케줄링합니다.

세번째 큐들 사이에는 우선 순위가 존재하며 상위의 큐가 비어있지 않으면 하위의 큐에 있는 작업들은 수행될 수 없습니다.

네번째 하위 단계의 작업을 수행하는 도중에라도 상위 단계의 큐에 작업이 들어오면 CPU를 양보합니다.

 

 

  다단계 피드백 큐

첫번째 가장 일반적이나 가장 복잡합니다.

 여러 개의 큐로 구성됩니다.

· 서로 다른 CPU 버스로 특성을 가진 작업들을 분리합니다.

· 대화식 작업과 입출력 중심의 작업을 높은 우선순위의 큐에 배정합니다.

· 각 큐에는 자신의 규정 시간량이 고정됩니다.

두번째 작업이 큐 사이를 이동합니다.

· 시스템에 들어온 작업은 최초에 가장 높은 순위의 큐에 소속됩니다.

· 소속된 큐에 배정된 시간내에 작업을 끝내지 못하면 하위의 큐로 이동합니다.

· 작업이 요구하는 CPU 시간이 너무 크면 낮은 단계의 큐로 이동합니다.

· 낮은 단계의 큐에서 오래 대기한 작업은 높은 단계의 큐로 이동합니다.

· 자신보다 높은 순위의 큐가 비어 있을 경우에만 CPU를 소유합니다/

네번째 알고리즘의 요소입니다.

· 큐의 수 입니다.

· 각 큐에 대한 스케줄링 알고리즘 입니다.

· 작업을 격상/격하 시키는 시기의 결정 방법 입니다.

· 작업의 성격을 파악해서 프로세스들이 어는 큐에 들어갈 것인지를 결정합니다.

 

   HRN(Highest Response-ratio Next) 스케줄링

첫번째 비선점 스케줄링 입니다.

두번째 SJF 기법의 단점인 긴 작업과 짧은 작업간의 지나친 불평등을 보완합니다.

·각 작업의 우선순위가 그 작업이 서비스를 받을 시간 뿐만 아니라 그 작업이 서비스를 기다린 시간에 관한 함수입니다.

우선순위 = (대기시간+서비스 받을 시간)/서비스 받을 시간 입니다.

 

   다중처리기 스케줄링

첫번째 시스템 내에 여러 개의 처리기가 존재하는 경우 입니다.

두번째 처리기가 다른 종류인 경우 입니다.

세번째 동종의 처리기가 여러 개인 경우 입니다.

·각 처리기에 독자적인 큐를 제공

-> 처리기들 사이의 부하 분담 문제가 발생합니다.

-> 전체적인 준비상태 큐가 필요합니다.

· 각 처리기가 스스로 스케줄하는 방법 또는 하나의 처리기를 다른 모든 처리기의 스케줄러로 지정하는 주/종 구조를 갖게 하는 방법 입니다.

 

교착상태 발생 조건은 아래와 같습니다.

 

첫번째 상호 배제(Mutual Exclusion) 입니다.

한 번에 한개의 프로세스만이 공유 자원을 사용 할 수 있어야 한다.

 

두번째 점유와 대기(Hold and Wait)  입니다.

최소한 하나의 자원을 점유하고 있으며서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유 하기 위해 대기하는 프로세스가 있어야 합니다.

 

세번째  비선점(Non-preemption)  입니다.

다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 합니다.

 

 

네번째 환형 대기(Circulat Wait)  입니다.

공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 됨니다. 이상 IT정리 운영체제였습니다.

댓글