본문으로 바로가기

고등 1학년 네트워크 운영체제 정리

category 교과 과목 2016. 4. 27. 19:05

<고등학교 1학년 1학기 중간고사 네트워크 운영체제관련 정리>

 

컴퓨터의 내부

1. 본체 2. 하드디스크 3. RAM 4. CPU

컴퓨터를 사용하지 않을떄

모든 데이터와 프로그램은 하드디스크에 보관되어야 한다.

컴퓨터를 사용할 떄

하드디스크에서 사용할 프로그램을 RAM으로 가져온다.(RAM의 크기가 허용된다면 필요한 프로그램들을 많이 가져올 수 있다.) CPU로 프로그램을 실행한다.

-> CPU는 한 순간에 RAM에 있는 프로그램 중 한개의 프로그램을 실행시킨다.

컴퓨터를 그만 사용할 때

RAM에 기억된 데이터들을 모두 하드디스크에 저장한다.


운영체제

한정된 컴퓨터 시스템의 자원들을 보다 효율적으로 관리하고 운영함으로써, 사용자에게 편리함을 제공하고자 하는 시스템 소프트웨어로서 사람과 기계 간의 인터페이스(시각적인 편리함) 역할을 수행한다.

- 하는일 (4가지)

프로세스 관리 _ 한정된 자원인 CPU를 어떻게 하면 효율적으로 사용 할 것인가 [ 작업시간을 할당하거나, 작업의 우선순위를 부여하여 효율적으로 실행되도록 프로세스를 관리 ]

기억장치 관리(주기억 장치, 가상기억장치, 보조기억장치 관리) _ 한정된 자원인 RAM을 어떻게 하면 효율적으로 사용할 수 있는가 [ 어느 부분이 어떤 프로그램에 의해 사용되고 있는지를 관리, 프로그램에게 기억 공간이 필요할 떄 할당하고, 더이상 필요하지 않게 될때 회수하여 전체 기억 공간이 효율적으로 사용될 수 있도록 함 ]

파일 관리 _ 데이터, 프로그램 등 모든 파일을 관리한다. [ 각 파일의 이름과 보조기억장치의 저장영역을 기억해 두었다가 필요할 떄 접근, 파일들을 저장, 삭제, 복사, 이동, 검색 등을 지원.

기타 자원 관리(입출력 시스템 등) [ 컴퓨터에 연결된 각종 주변 기기를 포함하여 여러가지 입출력 장치를 관리하고 제어 ]

- 운영체제를 씀으로써의 장점(4가지)

처리량의 증대

응답시간의 단축

신뢰성의 향상

사용도

> 효율성이 증가한다.

- 사람과 기계간의 인터페이스 역할(3가지)

사람과 기계와의 중재자 역할

사람이 편리하게 사용할 수 있는 환경 제공

GUI(Graphic User Interface)

> 편리성이 증가한다.

ex) 모니터, 키보드, 마우스 등 입출력 장치와 연계하여 입출력 기능을 지원한다. [ 화면표시, 도구선택, 키보드로입력, 작성한 문서 인쇄]

ex) 파일을 보조 기억 장치에 쓰는 등 파일관리를 한다 [ USB메모리에 문서를 저장한다 ]

ex) 프로그램을 주기억 장치에 올리거나 주기억 장치에서 내린다. [ 프로그램을 실행한다, 프로그램을 종료한다 ]

ex) 장치를 인식하여 쓸 수 있게 한다 [ USB 메모리를 장착한다 ]


운영체제의 유형

1. 일괄처리시스템  ( B P S )

- 유사한 작업끼리 묶어서 한번에 한 작업씩 순서대로 처리하는 시스템

- 윈도우즈에서도 명령어들로 구성된 일괄처리 파일이 사용되고 있음.


2. 다중프로그래밍 시스템 ( M S )

- 여러 개의(다중, multi) 프로그램을 동시에 메모리에 적재시켜 놓고 CPU를 나눠 쓰게 하는 시스템

( 한 개의 프로그램을 CPU(프로세서)가 실행하다가 만일 그 프로그램이 키보드로부터 입력을 받아야한다면 CPU는 입력이 끝날 떄 까지 기다려야 한다. 이 때, 메모리에 적재되어 있는 다른 프로그램에게 CPU를 쓰게 함으로써 CPU자원을 효율적으로사용할 수 있게 된다.

- 특징

: 여러개의 프로그램을 동시에 메모리에 적재해야 하므로, 메모리 관리가 필요하다.

: CPU 할당을 기다리는 여러 개의 프로그램 중에서 어떤 프로그램에게 CPU를 할당한 것인지에 대한 스케쥴링 방법이 필요하다.

 

2-1. 시분할 시스템 ( T S S )

- 다중 프로그래밍의 변형으로, 여러 사용자(프로그램)가 동시에 컴퓨터를 사용할 수 있도록 아주 짧은 시간동안 컴퓨터(CPU)를 사용하고 다른 사용자에게 사용권한을 넘김으로써 여러사용자가 컴퓨터를 공유하도록 하는 시스템으로, 이렇게 하면 마치 컴퓨터를 혼자 사용하는 것 처럼 느끼게 된다.

- 특징

: 메모리에 여러 개의 사용자 프로그램이 적재되어야하므로 다중 프로그래밍 환경이 지원되어야 한다.

: 메모리에 적재된 여러개의 사용자 프로그램중에서 어떤 사용자 프로그램에게 CPU를 할당할 것인지에대한 스케쥴링 방법이 필요하다.

: 여러 사용자가 동시에 입출력장치나 파일 등을 공유하므로 이들에대한 보호와 접근 제어가 필요하다.

 

3. 다중 처리 시스템 - 병렬 처리 시스템 ( M P S ) ( P P S )

- 2개 이상의 프로세서가 동시에 동작하는 시스템이다.

- 특징

: 신뢰도의 향상 ] 하나의 프로세서가 장애를 일으켜도 다른 프로세서가 작업을 계속 수행할 수 있음

: 신속한 처리

: 운영체제의 세심한 설계 필요

4. 실시간 시스템

- 외부의 제어 대상으로부터 입력되는 데이터를 짧은 시간, 또는 특정한 제한 시간 내에 그 결과를 출력하거나 요구에 응답해야하는 환경에서 사용되는 시스템. (ex 비행기 제외 및 교통 제어 시스템, 은행 온라인 업무, 군사적인 목적 등)

- 특징

: 외부 입력 데이터가 무작위로 불시에 발생하므로 빠른 입출력장치가 필요하다.

: 각 사건의 중요도에 따라 미리 정해진 우선순위에 따라 처리해야 한다.

 

5. 분산 처리 시스템

- 각 시스템은 자신의 운영체제와 메모리, 프로세서를 갖고 있으며 독립적으로 운영되고 필요할 떄 통신을 하는 시스템이다.

- 특징

: 사용자의 접근을 제어하면서, 서로 원격지에 있는 자원(CPU, 기억장치 프린터 등)을 편리하게 공유할 수 있는 방법을 제공한다.

프로세스

프로세스란..?

1. 디스크에 저장되어 있던 ㅡ 프로그램을 실행하기 위해서 메모리(주기억장치)로 fetch한(가져온) 프로그램

2. 프로그램이 그 기능을 수행하기 위해 CPU 및 다른 자원을 요구하고 할당받아 활동 상태에 있는것

3. 실행 중인 프로그램

4. 운영체제가 관리하는 실행 주체 단위

5. PCB를 갖는 프로그램

 

프로세스 제어 블록(PCB)

- 프로그램이 메모리로 로딩되면, 운영체제는 프로세스에 대한 각종 정보를 담고있는 PCB를 생성하고, PCB를 통해 프로세스를 관리한다. 운영체제가 CPU를 다른 프로세스에게 넘겨주고자 할 떄, 프로세스에 관한 모든 정보를 PCB에 저장시키고 나서 다시 실행하고자 할떄는 PCB에 보관된 정보를 재사용한다.

< 프로그램이 메모리로 로딩되면 프로세스 >

포인터 + 프로세스의 상태

프로세스 번호

프로그램 카운터

프로그램 우선순위

프로세스 위치의 포인터

- 특징

[하드디스크]   로딩   [메모리]  준비 [CPU]  실행

[하드디스크]   로딩   [메모리]  대기 [CPU]  실행

- 디스크의 프로그램은 실행되기 위해 인출되어 메모리로 로딩되어 준비상태가 된다. (CPU로 실행될 준비가 모두 되어있는 프로세스, CPU를 할당 받을 수 있는 대상 후보 프로세스)

- 준비 상태에 있는 프로세스 중에서 한 개의 프로세스가 선택되어(프로세스 스케줄러에 의해),  CPU가 명령어를 실행하고 있는 프로세스는 실행 상태가 된다. ( CPU를 할당 받아 명령어가 실행되고 있는 프로세스)

- 실행상태의 프로세스가 실행을 계속하기 위해 어떤 사건이 일어나거나 어떤 조건이 만족되어야 할 때, 프로세스는 대기 상태가 된다.

- 대기 생태에 있던 프로세스가 기다리던 사건이 만족되면, 다시 CPU를 할당받기 위해 준비 상태로 전이 된다.

- 실행 상태에 있던 프로세스가 실행이 끝날 때 까지 혼자 CPU를 독점하는 것을 방지하기 위해 강제로 프로세스의 상태를 준비 상태로 전이시킨다.

 

인터럽트

주변 장치들은 중앙 처리 장치의 서비스가 필요한 경우에 신호를 발생시켜 서비스를 요청하게 되는데, 이때 발생하는 신호를 인터럽트라 한다.

 

문맥교환

CPU 스케줄러가 준비상태에 있는 여러 프로세서중 실행될 프로세스를 선정하여 CPU를 할당(디스패치), 준비 -> 실행

CPU를 할당받은 프로세스가 외부 인터럽트가 발생하여 CPU를 양도하고 돌아갈떄 실행 -> 준비

이때 프로세스 스케줄러는 준비상태의 준비리스트에서 다시 CPU를 할당할 프로세스를 선정하여 할당시간을 배정한후 그 프로세스에게 CPU를 디스패치한다.

이와같이 한 프로세스에서 다른 프로세스로 CPU가 할당되는것을 문맥교환이라고하며 CPU가 프로세스에의해 독점되고, 할당 시간이 짧을수록 문맥교환은 자주 일어나고 문맥교환에 따른 부하도 증가한다.

 

스케줄링

컴퓨터 시스템의 모든 자원의 선능을 향상시키기위해 자원에 대한 사용 순서를 결정하기 위한 정책.

스케줄링 알고리즘의 효율성을 판단하는 기준

1. 처리량의 최대화 : 얼마나 많은 작업을 수행하는지

2. 응답시간의 단축 : 얼마나 빠른 응답

3. 작업 완료시간의 최소화 : 작업을 제출한 후 완료되기까지의 걸리는 시간의 최소화

4. CPU효율의 최대화 : 가능한 CPU가 바쁘게 일하도록

5. 공평성 : 간으한 모든사용자 들이 공평하게 자원을 사용하는지

단기 스케줄러 (준비상태에 있는 프로세스중에서 어떤 프로세스에게 CPU를 할당할지 정함) vs 장기 스케줄러(디스크에 저장되어 있는 어떤 프로그램을 주기억장치로 적재할 것인지를 결정하는 스케줄러)

 

스케줄링의 기준

1. CPU이용률 : 40%~90%

2. 처리량 : 단위 시간당 완료된 프로세스의 개수

3. 총 처리시간 : 프로세스를 실행하는 데 소요된 시간. 프로세서의 제출시간과 완료시간의 간격

4. 대기시간 : 준비완료 큐에서 대기하면서 보낸 시간의 합

5. 응답시간 : 하나의 요구를 제출한 후 첫 번째 응답이 나올떄까지의 시간

 

선점 (CPU를 할당받아 실행중인 프로세스에서 강제로 CPU를 빼앗아 다른 프로세스에게 넘겨줌) vs 비선점 (일단 실행이 시작되면 계속 CPU를 사용하여 실행)

 

1. FCFS 기법 = FIFO 기법

준비 상태에 도착한 순서에 따라 선착순으로 CPU를 할당. 비선점 스케줄링 기법

중요하지 않은 작업이 중요한 작업을 기다리게함.

빠른 응답 시간을 요구하는 대화식 시스템에서 적합하지않음.

2. SJF 기법

CPU 요구량이 가장 짧은 프로세스에게 먼저 CPU를 할당해주는 스케줄링 기법.

CPU 요구량이 같다면 FCFS방식을 적용한다.

평균 대기시간이 최소가 되는 최적의 스케줄링 방법이다.

준비상태에 있는 각 프로세스마다 CPU요구 시간을 모두 알아야하므로 프로세스의 실행시간을 예측할 수 있어야 하니 어렵다.

3. 선점형 SJF 기법 = SRT기법

이전의 프로세스가 실행되는 동안 새로운 프로세스가 준비완료 큐에 도착하면 선택상황이 발생한다. 새로운 프로세스가 현재 실행되고 있는 프로세스의 남은 시간보다 더 짧은 CPU요규량을 가질 수 있다. 이럴때 선점형 SJF기법은 현재 실행하는 프로세스를 선점할 것이고, 비선점형은 현재 실행 프로세스를 끝낼것이다. 이런SRT방식은  시분할 시스템에서 유용하다.

4. HRN기법

SJF기법의 약점 - 긴 작업과 짧은 작업간의 불평등을 보완한 비선점형 기법

우선순위 = 대기시간/실행시간 + 1 = 시스템 응답시간

짧은 작업이나 대기 시간이 큰 작업은 우선순위가 높아진다.

5. 우선순위 기법

중요한 작업에게 우선순위를 부여하고 FCFS방식을 적용

가장 일반적으로 많이쓰임, 우선순위가 낮아 무한정 기다릴수도있음.

6. 우선순위 스케줄링의 문제점

우선순위의 문제점은 무기한봉쇄 또는 기아상태이다. 우선순위가 낮은 프로세스들이 CPU에서 무기한 대기.

( aging 기법으로 해결 : 우선순위 점차증가 )

7. 라운드로빈기법

작업의 특성에 관계없이 준비상태에 들어온 순서대로 미리 정해진 시간 할당량만큼 CPU를 할당하고, 할당된 시간이 지나면 다음 프로세스에게 선점되는 스케줄링 기법

어느 프로세스도 CPU를 득점하지 않는다.

시간 할당량이 너무 작으면 너무 자주 CPU를 사용할 프로세서를 교체해야 하며, 시간할당량이 너무크면 FIFO와 유사해진다. 따라서 시간할당량이 시스템 성능에 영향을 미친다.

8. 다단계큐(MLQ)

프로세스 특징

- 프로세스 특징(연산 위주, 입출력 위주, 대화식 작업, 일괄처리)에 따라 그룹핑하여 여러가지 스케줄링 기법이 같이 사용되는 스케줄링 기법.

- 다양한 특성의 작업이 혼합된 경우 매우유용, 프로세스 들은 각 특성에 따라 한개의 큐에 영구적으로 배당되며 각 큐는 자신의 스케줄링 기법을 갖고있음.

9. 다단계 피드백 큐(MFQ)

- 입출력 위주와 CPU위주의 프로세스의 특성에 따라 서로 다른 CPU의 타임 슬라이스르 부여.

- RR으로 순환함. 짧은기준에 유리, 입출력 장치를 효과적으로 이용하기 위해 입출력 이주위 작업에 우선권을 줌.

- 위로 올라갈 수록 시간할당량이 점점커짐.

 

교착상태

교착상태란..?

다중프로그래밍 시스템에서 여러 프로세스가 한정된 자원을 사용하려고 서로 경쟁한다.

발생원인

1. 상호배제

2. 점유하며 대기

3. 비선점

4. 순환대기

해결방법

1. 교착상태의 예방 : 교착상태의 발생 가능성을 사전에 모두제거. 발생원인을 모두제거

2. 교착상태의 회피 : 그냥 교착상태가 발생하려고하면 이를 피해간다.

3. 교착상태의 발견 : 일단 교착상태가 발생하도록 허용하고, 교착상태가 발생하면 그와 관련된 프로세스와 자원을 조사하여 결정함.

4. 교착상태의 회복 : 시스템으로부터 교착상태를 제거하여 이후로는 교착상태에 빠지지않도록 보통 교착상태에 빠진 프로세스를 제거한다.

교착상태 예방

1. 점유와 대기의 부정

- 프로세스가 실행되기전에 각 프로세스가 요청하는 모든 자원을 한꺼번에 할당한다. 프로세스가 자원을 전혀 갖고 있지 않을 때만 자원을 요청할 수 있다.

단점 : 많은 자원들이 할당되어 오랫동안 사용되지 않을 경우 자원의 낭비를 가져옴, 자원을 공유할 수 없다, 어떤 프로세스는 끝없이 대기 할 수도있음.

2. 비선점 조건의 부정

- 어떤 자원을 점유하고 있는 프로세스가 즉시 할당할 수 없는 다른 자원을 요청한다면, 현재 점유하고 있는 모든 자원을 반납하고 필요할 떄 다시 요구한다.

단점 : 프로세스가 자원을 반납한다면 현 시점까지 수행한 작업이 취소될 수 있음. 요구하는 자원이 다른 프로그램에 의해 사용중 이라면 무기한 연기가 발생.

3. 순환 대기의 부정

- 모든 프로세스에게 각 자원의 유형별로 할당순서를 부여, 현재 자기가 가지고있는 자신보다 큰비밀번호를 가지 자원만 요청하도록제한하다.

단점 : 실제 프로세스가 실행중에 자원을 사용하는 순서를 반영해야, 시스템이 순서대로 각 프로세스에 자원을 할당할 수 있고, 교착상태를 방지 할 수 있으면 안전상태라고 하며, 모든 작업이 완료될 수있는 상태이다.

4. 상호 배제의 부정

- 자원의 비공유를 전제로 하는 것이기 때문에 부정불가.

1. 교착상태 회피 - > 은행원 알고리즘 2. 교착상태 발견 - > 자원 할당 그래프의 소거

3. 교착상태 회복

프로세스 중지

: 교착상태의 프로세스를 모두 중지. 확실하지만 비용이많이듬

: 교착상태가 해결될 때까지 한 프로세스씩 중지 : 부담이큼

 

자원 선점

희생자선택, 복귀, 기아상태