운영체제(OS) & Network

[정보보안기사] 02. 운영체제 구조

jih0ssang 2024. 9. 17. 10:44

운영체제(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: 메모리 관리 정보
• 입출력 상태 정보
• 할당된 자원 정보