봄봄.devlog
정보처리기사 운영체제 정리1 본문
1. 운영체제 개요
1) 정의
- 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
- 종류 : Windows, MS-DOS, UNIX, Linux
2) 기능
- 프로세스 관리
- 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원 관리
- 자원의 효과적인 경영 스케줄링 기능 제공
- 사용자와 시스템 간의 편리한 인터페이스 제공
2. 운영체제 운용 기법 및 발달 과정
- 일괄처리시스템 : 일정량 또는 일정 기간 동안 데이터를 모아서 한꺼번에 처리하는 방식
- 다중 프로그래밍 시스템 : 하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
- 시분할 시스템(=라운드 로빈) : 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아 가며 처리해줌으로써 각 사용자에게 독립된 컴퓨터를 사용하는 느낌을 주는 것.
- 다중 처리 시스템 : 여러 개의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식. 하나의 CPU가 고장나더라도 다른 CPU를 이용하여 업무를 처리할 수 있으므로 시스템의 신뢰성과 안정성이 높음.
- 실시간 처리 시스템 : 데이터 발생 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과를 산출하는 방식.
- 다중 모드 처리 : 일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 한 시스템에서 보두 제공하는 방식
- 분산 처리 시스템 : 여러 개의 컴퓨터(프로세서)를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식, 각 단말장치나 컴퓨터 시스템은 고유의 운영체제와 CPU, 메모리를 가지고 있음.
=> 시분할 시스템은 하나의 CPU를 여러 프로그램이 공유한다.
=> 시분할 시스템에서 CPU의 전체 사용 시간을 작은 작업 시간 단위로 나누는데 이때 이 작은 작업 시간 단위를 Time Slice라고 한다.
3. 매크로
프로그램 작성 시 한 프로그램 내에서 동일한 코드가 반복될 경우 반복되는 코드를 한 번만 작성하여 특정 이름으로 정의한 후 그 코드가 필요할 때마다 정의된 이름을 호출하여 사용하는 것
4. 링커/로더
1) 링커
- 언어 번역 프로그램이 생성한 목적 프로그램들과 라이브러리, 또 다른 실행 프로그램(로드 모듈)등을 연결하여 실행 가능한 로드 모듈을 만드는 시스템 소프트웨어
- 링커에 의해 수행되는 작업을 링킹
2) 로더
- 컴퓨터 내부로 정보를 들여오거나, 로드 모듈을 디스크 등의 보조기억장치로부터 주기억장치에 적재하는 시스템 소프트웨어
- 기능 : 할당, 연결, 재배치, 적재
5. 프로세스
일반적으로 프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램이나, 시스템 프로그램을 의미하는 것으로, 프로세스는 필요한 각종 자원을 요구한다.
* 프로세스의 여러 가지 정의
- 실행중인 프로그램, PCB를 가진 프로그램, 실기억 장치에 저장된 프로그램
- 프로세서가 할당되는 실체, 프로시저가 활동중인 것
- 비동기적 행위를 일으키는 주체, 지정된 결과를 얻기 위한 일련의 계통적 동작
- 프로세서가 할당되는 개체로서 디스패치가 가능한 단위
=> 디스크에 저장된 프로그램은 그저 프로그램일 뿐
=> 교착상태 : 더이상 계속할 수 없는 어떤 특정 사건을 기다리고 있는 상태
=> 트랩 오류, 프로그램 요구, 입출력 인터럽트에 대한 조치를 취하는 것은 운영체제이다.
6. PCB(Process Control Block)
운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳으로 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB가 제거됨.
7. 스레드 / 프로세스 상태 전이
- 하나의 프로세스 내에서 병행성을 증대시키기 위한 메커니즘으로 시스템의 여러 자원을 할당받아 실행하는 프로그램 단위이다.
- 독립적인 스케줄링의 최소 단 위로서, 동일 프로세스 환경에서 서로 독립적인 다중 수행이 가능하다.
* 스레드 사용의 장점
- 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 증진시킬 수 있다.
- 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있다.
- 응용 프로그램의 응답 시간을 단축시킬 수 있다.
- 실행 환경을 공유시켜 기억장소 및 자원의 낭비가 줄어든다.
- 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신한다.
*Spooling
- 입출력장치의 공유 및 상대적으로 느린 입출력장치의 처리 속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입출력할 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정
=> 스레드는 독립적인 제어 흐름을 가지며, 고유의 레지스터와 스택을 사용한다.
8. 스케줄링 / 문맥 교환
1) 정의 : 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
2) 목적 : 공정성, 처리율 증가, CPU 이용률 증가, 우선순위 제도, 오버헤드 최소화, 응답 시간 최소화, 반환 시간 최소화, 대기 시간 최소화, 균형 있는 자원의 사용, 무한 연기 회피
3) 문맥 교환(Context Switching) : 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생된는 것,
새로운 프로세스에서 CPU를 할당하기 위해 현재 CPU가 할당된 프로세스의 상태 정보를 저장하고, 새로운 프로세스의 상태 정보를 설정한 후 CPU를 할당하여 실행되도록 하는 작업이며, 운영체에서 Overhead의 발생 요인 중 하나이다.
=> 스케줄링 알고리즘의 성능 평가 기준 : 반환 시간, 대기 시간, CPU 이용률(버퍼링, 오류복구시간X)
9. 프로세서 스케줄링의 종류
1) 비선점 스케줄링
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
- 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용함
- 모든 프로세스에 대한 요구를 공정하게 처리할 수 있음
- 일괄 처리 방식에 적합하며, 중요한 작업(짧은 작업)이 중요하지 않은 작업(긴 작업)을 기다리는 경우가 발생할 수 있음
- 응답 시간 예측이 용이함
- 종류 : FCFS(FIFO), SJF, 우선순위, HRN, 기한부 등의 알고리즘
2) 선점 스케줄링
- 하나의 프로세스가 CPU를 할당받아 실행 하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
- 우선순위가 높은 프로세스를 빠르게 처리할 수 있음
- 주로 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용됨
- 선점할 프로세스에게 일정한 시간을 배당하기 위한 인터럽트용 타이머 클록(Clock)이 필요함
- 비선점 스케줄링에 비해 많은 오버헤드를 초래할 수 있음
- 종류 : SRT, 선점 우선순위, RR(Round Robin), 다단계 큐 등의 알고리즘
10. 비선점 스케줄링의 종류
1) FCFS(First Come First Service)
- 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법
- 공평성 유지 But 짧은 작업이 긴 작업을, 중요한 작업이 중요하지 않은 작업을 기다리게 됨
2) SJF(Shortest Job First)
- 실행 시간이 가장 짧은 프로세스에 먼저 CPU를 할당하는 기법
- 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘
3) HRN(Hightest Response-ratio Next)
- 실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것으로, 대기 시간과 서비스(실행)시간을 이용하는 기법
- 우선순위를 계산하여 서비스(실행) 시간이 짧은 프로세스나 대기 시간이 긴 프로세스에게 CPU를 할당함.
- 우선순위 계산 공식 = 대기시간 + 서비스 시간 / 서비스 시간
- 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위를 부여함
4) 기한부(Deadline)
5) 우선순위(Priority)
* 에이징(Aging)기법
- 시스템에서 특정 프로세스의 우선순위가 낮아 무한정 기다리게 되는 경우, 한 번 양보하거나 기다린 시간에 비례하여 일정 시간이 지나면 우선순위를 한 단계씩 높여 가까운 시간 안에 자원을 할당받도록 하는 기법
- SJF나 우선순위 기법에서 발생할 수 있는 무한 연기 상태, 기아 상태를 예방할 수 있다.
'Computer Science > 운영체제' 카테고리의 다른 글
정보처리기사 운영체제 정리4(UNIX) (0) | 2020.10.31 |
---|---|
정보처리기사 운영체제 정리3 (0) | 2020.10.31 |
정보처리기사 운영체제 정리2 (0) | 2020.10.31 |