사망년/운영체제 4

Synchronization Toole(동기화 도구들)

Background 병렬 수행(Concurrent Execution)은 여러 프로세스가 동시에 실행되는 것이다. 이러한 프로세스는 언제든 인터럽트가 발생할 수 있으며, 이 경우 현재 실행 중인 작업을 부분적으로만 완료하게 된다. 이와 같은 병렬 수행 환경에서는 공유 데이터에 대한 동시 접근이 데이터 불일치를 초래할 수 있다. 이를 해결하기 위해 협력하는 프로세스들 사이에서 순차적 실행을 보장하는 메커니즘이 필요하다. 예를 들어 '생산자-소비자 문제'는 생산자가 데이터를 생성하여 버퍼에 넣고, 소비자가 그 데이터를 사용한다. 이때 모든 버퍼를 채우는 것이 목표라면, 버퍼의 수를 추적하는 정수 카운터를 사용할 수 있다. 카운터는 초기에 0으로 설정되고 생산자가 새로운 데이터를 생성하여 버퍼에 넣을 때마다 증..

CPU Scheduling

Basic Concepts다중프로그래밍(Multiprogramming) 및 최대 CPU 활용다중프로그래밍은 여러 프로세스가 동시에 메모리에 적재되어 CPU를 사용할 수 있는 시스템 기법이다. 이것은 CPU가 놀거나 유휴 상태를 최소화하여 최대한 활용할 수 있는 방법 중 하나이다. CPU-I/O Burst Cycle프로세스 실행은 CPU 실행과 I/O 대기의 주기로 이루어진다.프로세스는 CPU에서 실행되다가 I/O 작업을 위해 기다린다. CPU Burst와 I/O BurstCPU Burst는 CPU에서의 연속적인 실행 시간이다.반면에 I/O Burst는 해당 프로세스가 I/O 작업을 위해 기다리는 시간을 나타낸다. CPU Burst 분포CPU Burst의 길이와 간격은 프로세스 동작의 특성을 결정짓는 요소..

chapter 1: Introduction (2)

프로세서 (=program in execution) 프로세서는 현재 실행 중인 프로그램이고 이외의 것은 다 프로그램이다. 프로그램은 하드디스크 안에 존재하고 실행 파일로 만들어서 컴파일하고 실행 파일로 만들어야 한다. 파일을 메모리에 올렸을 때 동작을 할 수 있는 동작 단계가 프로세스이다. - 프로그램 자체는 수동적이지만 프로세스는 능동적 개체 더보기 https://blogger.pe.kr/422/ 프로세서와 프로세스의 차이 (processor vs process) IT 업종에서 일하면서 가끔 프로세서(processor)와 프로세스(process)를 구별하지 못하는 개발자나 엔지니어들을 종종 보게 됩니다. blogger.pe.kr 운영체제의 프로세스 관리 - 순서정하고 없애고 재실행하고 중간에 싸우면 죽..

chapter 1: Introduction (1)

70페이지의 거창한 pdf를 본 내 눈은 거친 생각과... 불안한 눈빛과 진도를 다 나가지 못해 다음 주에 이어서 수업하는 게 더 두렵다. https://parksb.github.io/article/5.html#what-operating-systems-do 운영체제란 운영체제는 계속 발전되고 있기에 공인된 정의는 없지만, 컴퓨터와 컴퓨터 사용자 간이 중재자 역할을 하는 프로그램이다. 운영체제는 짠돌이라서 짧은 시간 안에 효율적으로 일한다. 운영체제가 없으면 직접 기록해야 하는 일이 생긴다. 운영체제의 실체는 커널(Kernel)이다. 모든 커널과 커널 모듈로 구성되어있고, 같은 커널이라면 같은 운영체제로 취급한다. 컴퓨터 시스템은 하드웨어(CPU, Memory, I/O devices 등), 운영체제(Ope..