운영체제
-
문맥 교환(Context Switching)운영체제 2022. 1. 28. 23:38
정의 하나의 사용자 프로세스로부터 다른 사용자 프로세스로 CPU 제어권이 이양되는 과정 절차 인터럽트/시스템 콜: 운영체제에서 프로세스 스케줄러에 의해 발생 커널 모드 전환: 프로세스가 실행되는 사용자 모드에서 전환 현재 프로세스 상태 PCB 저장: 기존 실행되던 프로세스 정보 저장 다음 실행 프로세스 로드: PCB에 있는 다음 실행 프로세스 상태 정보 적재 사용자 모드 전환: 커널 모드에서 전환하여 프로세스 실행 발생하는 상황 scheduler dispatch: CPU 할당받아 실행 상태로 전이 timer interrupt: 프로세스에 할당된 시간 종료 = time slice 만료 I/O 요청 시스템 콜: 입출력 요청 후 대기 필요. cpu 사용 못함 즉, 프로세스 상태가 다음과 같이 변경될 때 발생 ..
-
PCB(Process Control Block)운영체제 2022. 1. 28. 22:47
Process MetaData 프로세스가 여러 개 일 때, CPU 스케줄링을 통해 관리를 한다. 이때, 프로세스에 대한 특징과 정보가 있어야 각 프로세스들을 특정하고 관리할 수 있다. 이 '프로세스에 대한 특징'을 가지고 있는 정보가 Process MetaData 다. 종류 OS 관리 정보 프로세스 상태 프로세스 ID 스케줄링 정보, 우선순위 CPU 수행 관련 하드웨어 값 프로그램 카운터(PC) : 다음에 수행할 명령어 위치 CPU 레지스터 : 연산을 위해 현 시점에 가진 정보 메모리 관련 code, data, stack 의 메모리 상 위치 PCB(Process Control Block) 프로세스 메타데이터를 저장하는 곳. 하나의 PCB에는 한 프로세스의 메타데이터만을 저장 운영체제 커널 데이터 영역에 ..
-
CPU 스케줄링운영체제 2022. 1. 19. 04:40
개요 운영체제가 메모리에 적재한 프로세스 중, 다음에 CPU를 할당할 프로세스를 선택하는 것. 왜 필요한 건가? CPU는 한 번에 한 프로세스만 실행할 수 있다. 하지만 프로세스에서는 항상 CPU를 사용하는 것은 아닌데, 입출력 장치를 통해 사용자와의 인터랙션이 진행 중일 때는 프로세스는 CPU를 사용하지 않는다. 하지만 이 때도 프로세스는 CPU를 점유하고 있다. 간단히 말하면 소중한 CPU가 아무것도 하지 않은 채 놀고 있다는 것이다. 이렇게 CPU를 점유하고 사용하지 않는 시간에 다른 프로세스를 실행하면 CPU의 사용률을 높이고 전체 시스템의 성능을 향상시킬 수 있다. 즉, 소중한 자원인 CPU를 최대한 활용하기 위한 기술이 CPU 스케줄링이다. 시스템 종류에 따른 목표 Batch System : ..
-
프로세스와 스레드(Process & Thread)운영체제 2022. 1. 18. 04:14
개념 프로세스 프로그램이 메모리에 적재되고 CPU 자원을 할당 받아 실행되는 상태. 스레드 프로세스 내에서 실행되는 작업의 단위. 쉽게 말하면 프로세스 내에서 실제 작업을 수행하는 주체. 특징 프로세스 각각 독립적인 메모리 영역(Code, Data, Heap, Stack)을 할당받음. 각 프로세스는 별도의 공간에서 실행되기 때문에, 일반적으로 다른 프로세스의 메모리 영역에 접근할 수 없다. 다른 프로세스의 자원에 접근하기 위해서는 IPC(Inter-Process Communication)을 사용해야 한다. 스레드 stack 영역 외에는 부모 프로세스의 공간, 자원을 공유. 즉, 같은 부모 프로세스 내의 다른 스레드와 공간, 자원을 공유한다. 하나의 프로세스는 하나 이상의 스레드를 가진다. 프로세스가 생성..