본문 바로가기

CS BASIC/운영체제(Operation System)

(5)
[운영체제] 디스크 스케줄링 개요오늘은 디스크 스케줄링에 대해서 알아보도록 하겠습니다.요즘 컴퓨터에서 사용하는 저장장치의 종류는 정말 다양해졌습니다.과거에는 플로피 디스크라고 해서 오늘날의 ‘저장’ 버튼에 해당하는 저장장치부터 시작해서 하드 디스크, 그리고 SSD까지 시간이 지날수록 저장소의 저장 속도는 빨라졌고, 용량은 많아졌습니다. 이러한 눈부신 저장장치의 하드웨어적 발전 속에서,디스크 스케줄링은 다소 생소한 개념이 된 것 같습니다. 디스크 스케줄링은 컴퓨터 디스크에서 정보를 빠르고 효율적으로 입출력하기 위해 고안된 스케줄링 전략입니다. 지금까지 운영체제는 주로 CPU와 같이 비교적 비싼 자원에 대해서 어떻게 관리하고 있는지 소개했는데요. 오늘은 운영체제가 플로피 디스크부터 하드 디스크, SSD까지 외부 저..
[운영체제] 선점 스케줄링(Preemptive)과 비선점 스케줄링(Nonpreemptive) 기법 개요 오늘은 지난 포스팅에 이어서 실제로 운영체제가 프로세스에게 컴퓨터 자원을 효율적으로 분배하는 전략, 즉 스케줄링 기법에 대해서 알아보도록 하겠습니다. 선점 스케줄링(Preemptive)과 비선점 스케줄링(Nonpreemptive) 기법 운영체제는 CPU, 즉 중앙처리장치라는 비싼 자원을 각 프로세스에게 공정하고 효율적으로 분배하기 위하여 다양한 전략을 채택하고 있습니다. 이 과정에서 어떤 프로세스가 운영체제로부터 중앙처리장치를 할당받은 뒤에 또 다른 프로세스가 중앙처리장치를 요구한다면, 운영체제는 ① 다른 프로세스에게 기다리게 하거나, ② 프로세스의 우선순위를 고려하여 더 높은 우선순위를 가진 프로세스에게 강제로 CPU를 할당해줄수도 있습니다. 이 때, ①의 방식으로 컴퓨터 자원을 관리 하는 기법을..
[운영체제] CPU 스케줄링과 평가 기준 개요 오늘날의 컴퓨터 시스템이 가진 자원, 즉 프로그램이 사용할 수 있는 다양한 하드웨어 장치들은 운영체제에 의하여 적절히 관리되어 집니다. 오늘은 그 중에서도 가장 중요한 자원 중 하나인 CPU(central processing unit)의 스케줄링에 대해서 알아보도록 하겠습니다. CPU 입출력의 버스트 주기(CPU I/O Burst Cycle) 프로세스의 실행은 CPU의 실행과 입출력의 대기 상태의 반복입니다. 즉, 프로세스는 이 두 가지 상태를 오가며 실행이 되고, 주어진 작업(Job)을 수행하게 됩니다. 프로세서(=CPU)의 실행은 CPU 버스트(Burst)라는 것을 통해서 이루어지며, CPU 자원을 할당받고 주어진 작업을 수행하다가, 사용자로부터 입출력을 받아야 할 때에는 입출력 버스트(I/O ..
[운영체제] 프로세스와 상태 전이 개요 프로세스의 정의는 실행중인 프로그램, 비동기적인 행위 등 여러가지로 정의할 수 있습니다. 그러나 일반적으로 “프로세스”라고 부르는 것은 “실행중인 프로그램”을 의미합니다. 하나의 프로세스가 컴퓨터 시스템 내에서 존재할 동안 그 프로세스는 계속해서 일련의 서로 구분되는 상태를 거치게 됩니다. 만일 프로세스가 CPU를 사용중이라면 실행중(running)에 있다고 말하고, CP를 사용하지 않으나 언제든지 사용할 준비를 마쳤다면 준비(ready) 상태라고 말하며 어떠한 사건이 일어나기를 기다리며 멈춰서 대기하는 상태를 보류(block) 상태에 있다고 합니다. 컴퓨터 시스템에서 CPU는 유한한 자원이므로 다양한 실행중인 프로그램 즉 프로세스들은 CPU라는 자원을 받기 위해 운영체제로부터 CPU를 쓸 수 있도..
[운영체제] 운영체제 일반 개요 오늘날의 운영체제는 대형 컴퓨터부터 MS-DOS 라는 운영체제 기반의 일반 PC까지 다양한 컴퓨터에서 사용되고 있습니다. 일반인이게 가장 유명한 마이크로 소프트사의 윈도우가 등장하기 이전에도 운영체제는 존재하였는데, 1960년대에는 운영체제는 단지 하드웨어를 제어하는 소프트웨어로 생각했습니다. 그러다 1980년 대에는 소프트웨어를 펌웨어(Firmware), 즉 마이크로 코드로 전환시켰습니다. 운영체제(Operating System)란 하드웨어를 사용할 수 있게 하기 위해 소프트웨어나 펌웨어로 작성된 프로그램이라고 정의할 수 있습니다. 운영체제는 사용자 인터페이스 정의, 하드웨어의 공동 사용, 데이터 공유, 자원 스케쥴링, 입출력 보조역할, 에러 처리 역할을 수행합니다. 이중에서 운영체제가 관리하는 ..