반응형
SMALL
이번 학습 주제는 운영체제(OS:Operating System)입니다. 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하고
사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 프로그램들의 모임을 말합니다. 그럼 이제 운영체제에 대해 하나씩 살펴보겠습니다.
운영체제의 목적
- 처리 능력 증대
- 시간당 처리 작업량(Throughput) 및 평균 처리시간 개선
- 응답시간(Turn-around Time) 단축
- 사용자가 시스템에 요청한 작업의 반환시간 단축
- 사용가능도(Availability) 증대
- 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
- 고장과 오류가 발생해도 운영 영향 최소화
- 신뢰도(Reliability) 향상
- 실패 없이 주어진 기능을 수행할 수 있는 능력
- 시스템이 주어진 문제를 정확하게 처리하는 정도
- 자원 활용률 향상
- 자원의 공유, 상호배제를 통해 자원을 효율적으로 활용
운영체제의 종류
- 일괄처리 시스템(Batch Processing System)
- 초기의 컴퓨터 시스템에서 사용된 형태
- 일정량 또는 일정 기간 동안 데이터를 모아서 처리하는 방식
- 하드웨어의 효율적 이용 가능
- 실행 시간이 길고 실시간 처리 미흡
- 다중 프로그래밍 시스템(Multi Programming System)
- 여러 사용자 프로그램들이 동시에 주기억 장치에 공존하여 프로세서를 번갈아 가면서 이용하는 기법
- CPU 가동률 극대화(유휴 시간 최소화)
- 스케줄링에 의해 작업을 수행하므로 정교한 메모리 관리 및 스케줄링이 필요함
- 시분할 처리 시스템(Time Sharing / Multi-tasking System)
- 다중 프로그래밍 + 대화형(다중 프로그래밍의 논리적 확장)
- 각 사용자들에게 CPU에 대한 일정시간(time slice)을 할당하여 다수의 사용자가 터미널을 이용하여 동시에 시스템에 접근할 수 있음(사용자와 시스템 간의 Interactive한 서비스)
- 다중 처리 시스템(Multi Processing System)
- 다수의 CPU로 다중 작업을 구현
- 가용성 증대
- 실시간 처리 시스템(Real-time System)
- 시스템 서비스 요청이 발생할 때마다 시간에 제약을 두어 즉시 처리
- 다중 모드 시스템(Multi-Mode Processing)
- 일괄처리, 시분할, 다중처리, 실시간 처리를 한 시스템에서 모두 제공
- 분산처리 시스템(Distributed System)
- 독립적 운영체제가 네트워크 등을 이용해 협업
운영체제의 주요 자원 관리
- 프로세스 관리
- 프로세스 스케줄링 및 동기화 관리
- 프로세스 생성과 제거, 시작과 정지, 메시지 전달 등의 기능을 수행
- 기억장치 관리
- 프로세스에게 메모리 할당 및 회수
- 주변장치 관리
- 입/출력 장치 스케줄링 및 점유 관리
- 파일 관리
- 파일의 생성과 삭제, 변경, 유지 등을 관리
※ 프로세스(Process)
- CPU에 의해 현재 실행중인 프로그램
- PCB(Process Control Block)를 가진 프로그램
- 프로세서가 할당되는 개체로서 디스패치(Dispatch)가 가능한 단위
- 비동기적 행위를 일으키는 주체
※ PCB(Process Control Block)
- 운영체제가 프로세스를 제어하기 위해 프로세스의 상태 정보를 저장하는 구조체
- PCB에서 유지되는 정보
정보 | 내용 |
PID | 프로세스 고유 번호 |
포인터 | 다음 실행될 프로세스의 포인터 |
상태 | 준비, 대기, 실행 등의 상태 |
Register save area | 레지스터 관련 정보 |
Priority | 스케줄링 및 프로세스의 우선순위 |
Account | CPU 사용시간, 실제 사용된 시간 |
Memory Pointers | 메모리 관리 정보 |
입출력 상태 정보 | |
할당된 자원 정보 |
※ 스레드(Thread)
- 프로세스의 구성을 크게 제어의 흐름 부분과 실행 환경 부분으로 나눌 때 프로세스의 실행 부분을 담당함
- 실행의 기본 단위
프로세스 상태 전이
- 상태가 전이될 때 문맥 교환(Context Switching)이 일어남
상태 | 내용 | |
Admit | 생성 → 준비 | 준비 큐가 비어있을 때 작업 스케줄러에 의해 동작 |
Dispatch | 준비 → 실행 | 프로세스 스케줄러가 준비 큐에 있는 하나의 프로세스를 선택하여 CPU를 할당 |
Timer Run Out | 실행 → 준비 | CPU를 할당받은 프로세스가 CPU의 제한된 사용 시간을 모두 쓴 경우 발생 |
Blocked | 실행 → 대기 | CPU를 할당받은 프로세스가 I/O 및 다른 자원 등 CPU외의 서비스 작업을 원할 때 |
Wake up | 대기 → 준비 | 대기 중이던 사건의 처리가 끝났을 경우 |
Release | 실행 → 종료 | 프로세스의 정상/비정상 종료 시 발생 |
※ 문맥 교환(Context Switching)
- CPU가 이전의 프로세스 상태를 PCB에 보관하고 다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재하는 과정을 의미함
- 멀티프로그래밍(Multi-programming)환경에서 이루어지고 병행처리(Concurrent Processing)를 수행
이것으로 이번 학습을 마치겠습니다. 그럼 이만~.~
반응형
LIST
'Operating System' 카테고리의 다른 글
[Operating System] 운영체제의 병행성 제어(Concurrency Control) (0) | 2021.03.31 |
---|---|
[Operating System] 운영체제의 CPU 스케줄링(Scheduling) (0) | 2020.03.07 |