본문 바로가기

운영체제5

혼자 공부하는 운영체제 (5) - Thread 스레드 - Thread 1. 스레드 스레드란 프로세스 안에서 독립적으로 실행되는 흐름의 단위로 [ 메모리 주소 공간, 프로세스 상태, 운영체제 자원들] 처럼 공유할 수 있는 것은 최대한 공유하며 프로세스 하나에 CPU 수행단위만 여러개를 둔다. 1. 프로세스 - 프로세스는 현재 실행되고 있는 즉, 메모리에 올라가서 실행되는 프로그램을 의미한다. 프로그램이 메모리에 올라갈 때, code, data, heap, stack 4가지 메모리 영역을 할당받는데 각각 code 는 명령어, 실제코드가 할당되는 영역 data 는 정적(static) 변수 및 전역변수가 할당되는 영역 heap 은 런타임에 데이터가 동적으로 할당되는 영역 stack 은 함수 호출 정보, 지역 변수, 매개 변수가 할당되는 영역이다. 이러한 프.. 2022. 10. 24.
혼자 공부하는 운영체제 (4) - Scheduler 스케줄링 1. Scheduler 단기 스케줄러 ( short - term scheduler) 장기 스케줄러 ( long - term scheduler) 중기 스케줄러 ( medium - term scheduler) 1. 단기 스케줄러 - CPU 스케줄러라고 불리며 메모리에 ready queue 중 다음에 어떤 프로세스를 실행할 지에 대한 스케줄링을 한다. 2. 장기 스케줄러 - Job scheduler 라고 불린다. new 상태의 프로세스 중 어떤 프로세스를 admit 해서 ready queue 상태로 올릴지를 스케줄링 하는 역할을 한다. 예를 들어 10개의 프로세스를 수행해야 하는데 이 중에 메모리에는 6개 밖에 올릴 수 없는 상황이라면, 10개 중 6개를 선별해야 하는데 그 작업을 하는 schedul.. 2022. 10. 24.
혼자 공부하는 운영체제 (3) - 프로세스의 실행 프로세스의 실행 1. 프로그램의 실행 CPU가 어떤 프로그램을 실행시킬 때 가상공간(virtual space) 을 각 프로그램마다 구성한다. 이 가상공간에는 code, data, stack 가 저장되며 프로그램을 실행할 때 실제 메모리에 올리기 위해서는 Address translation 을 통해 필요한 부분만 physical memory 에 올리며 나머지는 swap area 에 위치한다. 2. 운영체제 커널 주소공간 1. code - code 에는 system call, interrupt 처리 관련 코드, 자원 관리 코드, 편리한 서비스를 제공하기 위한 코드 가 저장되어있다. 2. data - 각종 자료구조들이 저장되어 있으며, 각 프로세스 관리 자료구조인 프로세스 제어 블록 (Process Contr.. 2022. 10. 22.
혼자 공부하는 운영체제 (2) - 운영체제의 구조 운영체제의 구조 1. 컴퓨터의 구조 CPU Memory Disk I/O Device 1. CPU CPU 는 실제 Instruction (실행 해야하는 작업) 를 실행하는 주체로서, CPU Scheduling 을 통해 프로세스의 실행 순서를 정하여 평균적인 성능을 높이는 역할을 한다. 2. Memory Memory 는 한정된 자원을 가지고 최대한 효율적으로 사용할 수 있도록 메모리를 분배하여 메모리를 관리하는 역할을 한다. 3. Disk Disk 을 관리하는 역할을 한다. Disk Scheduling 을 통해 메모리의 움직임을 최소화 하여 빠른 처리를 할 수 있도록 한다. 4. I/O Device I/O Device 는 입출력을 관리하는 역할을 한다. I/O 작업은 Interrupt가 발생하면 처리하는 방.. 2022. 10. 18.