운영체제
운영체제의 종류에는 대표적으로 Windows, Linux, MaxOS 가 있습니다.
그 외에도 많이 있지만 자주 사용되는 OS는 위와 같습니다.
OS 역할
우선 컴퓨터 시스템은 하드웨어와 소프트웨어로 구성되어 있습니다.
소프트웨어는 하드웨어에 의해 실행되는데 하드웨어에는 CPU와 메모리, 다양한 입출력 장치로 구성되어 있습니다.
운영체제가 없어도 하드웨어가 동작하긴 하지만 소프트웨어인 프로그램이 운영체제 환경에서 작성되고, 실행되고 있습니다.
이와 같은 소프트웨어가 운영체제이며, 운영체제의 주 목적은 컴퓨터 시스템의 자원들을 효율적으로 관리하고 사용자에게 서비스를 제공합니다.
운영체제가 관리하는 자원에는 물리적 자원과 추상적인 자원이 있습니다.
- 물리적 자원: CPU, 메모리 등과 같은 하드웨어
- 추상적 자원: 프로세스와 가상 메모리, 파일 등으로 운영체제에 의해 생성되고 관리된다.
프로세스란?
프로세스는 “실행 중인 프로그램”을 의미한다.
PCB :: Process Control Block
PCB 는 특정 프로세스에 대한 중요한 정보를 저장 하고 있는 운영체제의 자료 구조이다.
운영체제는 프로세스를 관리하기 위해 프로세스의 생성과 동시에 고유한 PCB 를 생성 한다.
프로세스는 CPU 를 할당받아 작업을 처리하다가도 프로세스 전환이 발생하면 진행하던 작업을 저장하고 CPU 를 반환해야 하는데, 이때 작업의 진행 상황을 모두 PCB 에 저장하게 된다.
그리고 다시 CPU 를 할당받게 되면 PCB 에 저장되어 있던 내용을 불러와 이전에 종료됐던 시점부터 다시 작업을 수행한다.
PCB 에 저장되는 정보
- 프로세스 식별자(Process ID, PID) : 프로세스 식별 번호
- 프로세스 상태 : new, ready, running, waiting, terminated 등의 상태를 저장
- 프로그램 카운터 : 프로세스가 다음에 실행할 명령어의 주소
- CPU 레지스터
- CPU 스케줄링 정보 : 프로세스의 우선순위, 스케줄 큐에 대한 포인터 등
- 메모리 관리 정보 : 페이지 테이블 또는 세그먼트 테이블 등과 같은 정보를 포함
- 입출력 상태 정보 : 프로세스에 할당된 입출력 장치들과 열린 파일 목록
- 어카운팅 정보 : 사용된 CPU 시간, 시간제한, 계정 번호 등
프로세스 상태
OS에서 CPU에게 프로세스를 할당할 때 Queue에 넣어 관리를 한다.
- 프로세스가 생성되면 Queue에 넣어 준비 상태를 유지하고
- 앞의 프로세스들의 작업이 모두 끝나면 실행
- 실행 과정에서 어떠한 요청으로 응답이 올 때까지 기다린다면 Queue에서 이탈하여 대기상태로 진입
- 응답을 받은 이후에는 다시 Queue에 들어가 준비 상태로 들어간다.
디스패치는 Queue에서 CPU에 할당하는 과정을 뜻한다.