운영체제(Operating System)
- 컴퓨터 시스템의 자원들을 효율적으로 관리한다.
운영체제의 주요 자원 관리 기능
주요 자원 관리자 | 상세 설명 |
프로세스 관리 | •프로세스 스케줄링 및 동기화 관리 •프로세스 생성과 제거, 시작과 정지, 메시지 전달 등의 기능 |
기억장치 관리 | 프로세스에 메모리 할당 및 회수 관리 |
주변장치 관리 | 입/출력 장치 스케줄링 및 점유 관리 |
파일 관리 | 파일의 생성과 삭제, 변경, 유지 등의 관리 |
운영체제의 분류
분류 (아래로 갈수록 최신 순) | 상세 설명 |
1. Batch Processing System | •유사한 작업을 모아 일괄처리, 긴 실행 시간 소요 •하드웨어의 효율적 이용은 가능하나 실시간 처리 미흡 |
2. Mutli Programming System | •CPU 가동률 극대화 --> 유휴 시간 최소화 •작업들을 스케줄링에 의해 수행 •정교한 메모리 관리 및 스케줄링 필요 |
3. Time Sharing / Multi-tasking System | •Multi Programming의 논리적 확장 •사용자와 시스템 간의 Interactive한 서비스 |
4. Multi-Processing System | 가용성 증대를 위해 여러 개의 CPU로 다중작업을 구현한 시스템 |
5. Real-time System | 시스템 서비스 요청이 발생할 때마다 시간에 제약을 두어 즉시 처리하고 결과를 출력하는 운영체제 |
6. Mutli-Mode Processing | 일괄처리, 시분할, 다중처리, 실시간 처리를 한 시스템에서 모두 제공하는 방식 |
7. Distributed System | 독립적 운영체제가 네트워크 등을 이용해 협업 |
구분 | Thread(쓰레드) | Process(프로세스) |
의미 | •레지스터, 스택, 포인터, 실행중인 프로그램, 데이터 등의 집합체 •실행중인 프로세스 •프로세스에 의해 수행되는 프로그램 단위 •현재 실행 중이거나 곧 실행 가능한 PCB를 가진 프로그램 |
•제어의 흐름을 의미 •프로세스의 구성을 크게 제어의 흐름 부분(실행 단위)과 실행 환경 부분으로 나눌 때, 스레드는 프로세스의 실행 부분을 담당함으로써 실행의 기본 단위 |
상호통신 | •Library Call •요청 Thread만 Blocking |
•System Call •Call 종료 시까지 전체 자원 Blocking |
처리방식 | •CPU를 이용하는 기본 작업 •단위로 구분 |
자원 할당을 위한 기본 구분 단위 |
부하 | 프로세스보다 상대적으로 부하 발생이 적음 | •Context Switching으로 인한 부하 발생 •프로세스 자원 할당 시 부하 발생 |
프로세스 상태 전이(Process State Transition)
- 운영체제-------프로세스 간 실행 제어, 프로세스에 대한 정보 유지
- 프로세스 실행 결정 및 필요한 시스템 자원 할당하는 과정
- 프로세스의 상태 변환을 위해 OS는 작업 스케줄러(Job Scheduler), 프로세스 스케줄러(Process Scheduler) 두 종류의 CPU 스케줄러를 사용한다.
문맥 교환(Context Switching)
- CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재하는 과정
- 프로세스가 준비 → 실행, 실행 → 준비, 실행 → 대기 등으로 상태 변경될 때 발생한다.
- 인터럽트가 발생하였거나, 실행 중인 프로세스가 CPU 사용을 허가받은 시간(Quantum)을 모두 소모한 경우, I/O 입출력을 위해 대기해야 하는 경우에 발생한다.
- 선점형 스케줄러를 사용하는 운영체제는 실행 중인 프로세스보다 높은 우선순위를 가진 프로세스가 도착한 경우에도 문맥 교환이 발생한다.
- 2개 이상의 프로그램을 주기억장치에 기억시키고 중앙처리장치(CPU)를 번갈아 사용하면서 컴퓨터 자원을 최대로 활용하는 멀티 프로그래밍(multi-programming) 환경에서 문맥교환 과정이 이루어지며, 병행처리(Concurrent Processing)를 수행한다.
PCB(Process Control Block)
• 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳
• 프로세스의 상태 정보를 저장하는 구조체
• 프로세스 생성 시 만들어지며, 주기억장치에 유지된다.
PCB(Process Control Block)에서 유지되는 정보
• PID: 프로세스 고유의 번호
• 포인터: 다음 실행될 프로세스의 포인터
• 상태: 준비, 대기, 실행 등의 상태
• Register save area: 레지스터 관련 정보
• Priority: 스케줄링 및 프로세스 우선순위
• Account: CPU 사용시간, 실제 사용된 시간
• Memory Pointers: 메모리 관리 정보
• 입출력 상태 정보
• 할당된 자원 정보
'운영체제(OS) & Network' 카테고리의 다른 글
[정보보안기사] 06. 네트워크 활용(TCP/IP 구조) (2) | 2024.09.17 |
---|---|
[정보보안기사] 05. 네트워크 일반 (8) | 2024.09.17 |
API 그리고 AP 서버란 무엇인가? (0) | 2024.07.06 |
스토리지 이중화 (Multipath/MPIO) (0) | 2024.07.01 |
네트워크 이중화 (Bonding & Teaming) (0) | 2024.07.01 |