[운영체제] 5. CPU 스케줄링
·
운영체제
프로세스의 실행단위인 스레드를 실행할 때 어떤 스레드를 실행할지 스케줄링을 통해 선택된다고 설명해왔었다.  이제 그 스케줄링이 무엇인지 그리고 어떤 스케줄링 알고리즘들이 존재하는지 알아보자.  1. 스케줄링 개요 한정된 자원에 대한 경쟁이 있을 때 우린 누구에게 자원을 할당해줘야 할지 선택해야 한다. 즉 CPU 자원을 누구에게 할당할 것인지 결정하는 것이 CPU 스케줄링인 것이다. 여기서 선택의 대상이 되는 스레드는 '준비' 상태에 있는 스레드들이다.  스케줄링이 필요하게 배경에는 다중 프로그래밍의 등장이 있다. CPU가 쉬는시간인 CPU 유휴 시간을 줄이기 위해 만들어진 다중 프로그래밍 기법은 I/O이 발생하면 실행하고 있는 프로세스를 중단하고 다른 프로세스를 실행한다.  그런데 어떤 프로세스를 메모리..
[운영체제] 1-1 운영체제 개념
·
운영체제
운영체제(Operating System)란 무엇일까? 운영체제는 실체가 있는 '소프트웨어'로 컴퓨터를 관리하는 특별한 기능의 코드 집합 혹은 프로그램이다.  운영체제의 정의 사용자와 컴퓨터 하드웨어 사이에서 중계 역할을 하면서, 프로그램의 실행을 관리하고 제어하는 소프트웨어컴퓨터가 켜질 때 메모리에 적재되어 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어운영체제는 컴퓨터의 자원을 독점적으로 관리하는 특별한 소프트웨어이를 다시 풀어 써보면 운영체제는 우리가 전원을 켜면 가장 먼저 만나도록 약속된 소프트웨어이다. 예를 들어 윈도우, 리눅스, 맥 OS 등등 다양한 운영체제가 존재할 것이다. 그리고 이 소프트웨어는 사용자가 컴퓨터를 '잘'사용할 수 있도록 돕는다. 그리고 이를 위해 운영체제..
[운영체제] 0. 운영체제 공부 시작
·
운영체제
컴퓨팅 분야에서 프로그래머(programmer)는 컴퓨터 프로그래밍을 하는 사람이다. (위키백과)  좋은 프로그래머는 어떻게 될 수 있을까? 어떤 공부를 해야할까? 이런 질문들을 던지던 중 결국 좋은 프로그래머가 되려면 컴퓨터를 잘 이해하는 것이 가장 중요하다는 생각이 들었다. 하지만 학교에서 운영체제를 비롯한 컴퓨터구조, 컴퓨터 네트워크, 자료구조 등등..이런 주요 CS 수업을 들었음에도 CS 지식들이 머리 속에서 정리되지 않고 있다고 느껴졌다. 그래서 다시 기본적인 CS 공부를 시작해보려고 한다. 그 시작은 운영체제이다.  앞으로 포스팅 될 운영체제 글들은  https://www.booksr.co.kr/product/%EB%AA%85%ED%92%88-%EC%9A%B4%EC%98%81%EC%B2%B4%..