[운영체제(OS)] CPU 스케줄링 - (1) CPU 스케줄링의 개념
2022. 2. 17. 21:40
CS/운영체제
0.🚶들어가며 이전 글에서는 프로세스와 스레드에 대해 알아보았었습니다. 프로세스가 CPU에 할당을 받아야 작업을 수행한다고 했었죠. 이때 여러 프로세스 중 누가 CPU의 할당을 받을 것인지에 대한 내용을 다룬 CPU 스케줄링에 대해 글을 작성해보겠습니다. 1.⏰CPU 스케줄링이란? 이전 글에서 알아봤듯 프로세스는 생성되고 난 뒤 여러 상태를 거치게 됩니다. 운영체제의 CPU 스케줄러는 Ready 상태의 프로세스 중에서 어떤 프로세스에게 CPU를 할당할지 결정합니다. 이를 CPU 스케줄링이라 하는 것이죠. 또한 Dispatcher는 CPU 제어권을 CPU 스케줄러에 의해 선택된 프로세스에게 넘깁니다. 이를 Context Switch라고 합니다. CPU 스케줄링은 규모에 따라 장기, 중기, 단기 스케줄링으로..
[운영체제(OS)] 프로세스와 스레드 - (2) 프로세스 제어 블록과 문맥 교환
2022. 2. 14. 01:36
CS/운영체제
0. 🚶들어가며 프로세스와 스레드 2편입니다. 이번 글에서는 1편에서 개념만 소개했던 프로세스 제어 블록, PCB에 대해 좀 더 알아보고 시분할 방식과 관련된 개념인 문맥 교환(Context switch)에 대해서 알아보겠습니다. 1. 📕프로세스 제어 블록과 문맥 교환 1) 프로세스 제어 블록(PCB) 프로세스 제어블록(PCB)는 CPU가 프로세스를 실행할 때 필요한 중요 정보들을 보관하는 자료구조입니다. 운영체제 커널의 Data 영역에서 관리되고 있죠. 1편에서 살펴본 바와 같이 모든 프로세스는 고유의 PCB를 가집니다. 또한 PCB는 프로세스 생성 시 만들어져 실행이 완료된 후 폐기됩니다. 그렇다면 PCB에 저장되는 정보는 무엇인지, 각 정보는 무슨 역할을 하는지에 대해서 알아보겠습니다. (1) 프로..
[운영체제(OS)] 프로세스와 스레드 - (1) 프로세스란?
2022. 2. 13. 22:50
CS/운영체제
0.🚶들어가며 프로세스라는 말은 개발 공부를 시작하며 정말 많이 들어봤으나 누군가에게 설명할 수 있을 정도로 알고 있는 것 같지 않아 이에 대해 정리해보고자 글을 써봅니다. 1.📕프로세스란? 1) 프로세스의 개념 (1) 프로그램과 프로세스의 차이 프로그램은 어떤 데이터를 사용하여 어떤 작업을 할지 그 절차를 적어 놓은 것이며 하드디스크와 같은 저장장치에 보관됩니다. 프로세스는 프로그램을 실행한 것인데 "실행했다"라는 말은 프로그램이 메모리에 올라가 작업이 진행된다는 것입니다. 프로세스를 한마디로 말하면 "실행 중인 프로그램" 이라고 할 수 있습니다. 앞으로 설명할 내용은 현대 운영체제 방식을 가정하고 진행합니다. 즉, 메모리에 여러 프로세스가 올라가고 실행시키는 방식(시분할 방식)에서의 내용입니다. (2..