운영체제 공룡책 8

[운영체제 공룡책] 8장 교착상태

8.0 교착상태교착 상태(Deadlock): 여러 스레드가 서로가 가진 자원을 기다리며 영원히 진행할 수 없는 상태.예시: 두 기차가 서로를 기다리며 교차로에서 정지해 있는 상황.8.1 시스템 모델 (System Model)자원: CPU, 파일, I/O 장치 등과 같은 시스템 자원은 유형별로 구분되며, 각 유형에 여러 인스턴스가 존재할 수 있음.자원의 이용 절차:요청(Request): 자원이 사용 중이면 요청한 스레드는 대기 상태로 전환.사용(Use): 자원을 사용하여 작업 수행.반납(Release): 사용 완료 후 자원 해제.관리:운영체제는 자원의 할당 상태를 추적.자원이 할당 중일 경우 요청한 스레드는 대기열에 추가.교착 상태 발생 조건대기 조건: 스레드가 자원을 기다리며 진행하지 못함.순환 대기: ..

[운영체제 공룡책] 7장 동기화 예제

7.1 고전적인 동기화 문제들7.1.1 유한 버퍼 문제 (Bounded-Buffer Problem)생산자와 소비자가 공유 버퍼를 사용하는 문제.버퍼는 제한된 크기를 가지며, 생산자는 항목을 생성하고 버퍼에 추가하며, 소비자는 버퍼에서 항목을 제거해 소비한다.공유 자료구조int n; // 버퍼 크기semaphore mutex = 1; // 상호 배제를 위한 이진 세마포어semaphore empty = n; // 빈 버퍼 슬롯 개수semaphore full = 0; // 꽉 찬 버퍼 슬롯 개수 생산자 프로세스 구조while (true) { produce(); // 항목 생성 wait(empty); // 빈 슬롯 확인 wait(mutex); // 버퍼 접근 제어 add_to..

[운영체제 공룡책] 6장 Synchronization Tools(동기화 도구)

6.1 Background 동시성 및 병렬성프로세스는 동시성(concurrent) 또는 병렬성(parallel)을 통해 실행될 수 있다.CPU 스케줄러는 프로세스 간 빠르게 전환하며 동시 실행을 가능하게 한다.병렬성은 여러 프로세스가 별도의 처리 코어에서 동시에 실행되는 것을 의미한다.공유 데이터와 무결성 문제여러 프로세스가 공유 데이터를 동시에 수정할 때 데이터 무결성 문제가 발생할 수 있다.예로 생산자-소비자 문제가 있으며, 공유 메모리에서 데이터의 생산과 소비를 조율한다.레이스 조건(Race Condition)여러 프로세스가 동일한 데이터에 접근해 조작할 때 실행 순서에 따라 결과가 달라지는 상황을 의미한다.동기화 필요성레이스 조건을 방지하려면 공유 데이터에 대해 하나의 프로세스만 접근 가능하도록 ..

[운영체제 공룡책] 5장 CPU Scheduling

5.1 Basic Concepts단일 CPU 코어가 있는 시스템에서는 한 번에 하나의 프로세스만 실행할 수 있다.멀티프로그래밍의 목적은 CPU 사용률을 최대화하기 위해 항상 일부 프로세스를 실행하는 것5.1.1 CPU – I/O Burst Cycle프로세스 실행 사이클: CPU 실행(CPU burst)과 I/O 대기(I/O burst)가 번갈아 발생. 마지막 CPU burst는 프로세스 종료 요청으로 끝남.CPU burst 분포: 짧은 CPU burst가 많고 긴 CPU burst는 드물며, 분포는 지수적 또는 초지수적.I/O 중심 프로그램: 짧은 CPU burst가 많음.CPU 중심 프로그램: 긴 CPU burst가 적음.스케줄링 중요성: 이러한 분포를 고려해 CPU 스케줄링 알고리즘을 구현해야 함.5..

[운영체제 공룡책] 4장 Threads &Concurrency

4.1 Overview스레드는 스레드 ID, 프로그램 카운터(PC), 레지스터 세트 및 스택으로 구성되는 CPU 활용의 기본 단위이다. 4.1.1 Motivation멀티스레드의 개념대부분의 현대 소프트웨어는 여러 스레드로 구성된 멀티스레드 방식으로 동작.하나의 프로세스 내에서 여러 작업을 병렬로 처리하여 효율성을 높임.  멀티스레드와 멀티코어 시스템:멀티스레드는 멀티코어 CPU에서 병렬 처리를 활용하여 CPU 집약적인 작업을 동시에 수행 가능.데이터 마이닝, 그래픽 처리, 인공지능 등에서 병렬 처리로 성능 향상.멀티스레드의 효율성:단일 스레드 웹 서버의 경우 하나의 클라이언트 요청만 처리 가능 → 대기 시간이 길어짐.전통적인 방식인 프로세스 생성은 리소스와 시간이 많이 소모됨.멀티스레드 방식에서는 클라이..

[운영체제 공룡책] 3장 ProcessManagement

운영체제 공룡책: 3장 Process Management3.1 Process Concept프로세스 정의:실행 중인 프로그램을 의미하며, 프로그램 카운터와 프로세서 레지스터의 상태로 현재 활동이 표현됨. 프로그램과의 차이점:프로그램은 디스크에 저장된 명령어의 집합으로 수동적(entity)이다.프로세스는 실행 중이며 자원을 가진 능동적(entity)이다.3.1.1 The Process프로세스 메모리 구조:텍스트 섹션: 실행 코드 (크기 고정).데이터 섹션: 전역 변수 (크기 고정).스택: 함수 호출 시 매개변수, 반환 주소, 지역 변수를 저장하며 동적으로 변함.힙: 동적 메모리 할당 시 확장 및 축소 가능. 프로세스와 작업(job)의 관계:프로세스는 현대적 용어, 작업(job)은 초기 운영체제의 용어로 역사..

[운영체제 공룡책] 2장 Operating - System Structures

운영체제 공룡책: 2장 Operating - System Structures2.1 Operating-System Services 운영체제(OS)의 주요 서비스사용자 인터페이스 (User interface): 대부분 GUI 형태의 그래픽 사용자 인터페이스를 제공하지만, 일부는 CLI(Command Line Interface) 또는 터치스크린 인터페이스를 사용한다.프로그램 실행(Program execution): 프로그램을 메모리에 적재하고 실행, 종료할 수 있게 한다.입출력 (I/O) 작업: 파일 및 장치에 대한 입출력을 관리하여 효율성과 보호를 제공한다.파일 시스템 관리(File-system manipulation): 파일과 디렉토리의 생성, 삭제, 검색, 읽기/쓰기와 접근 권한 관리 기능을 지원한다.통..

[운영체제 공룡책] 1장 Overview

운영체제 공룡책: 1장 Overview1. 운영체제란?컴퓨터가 하드웨어를 관리하는 프로그램응용프로그램의 토대를 제공해주는 프로그램컴퓨터의 사용자와 컴퓨터 하드웨어 사이에 중간 매체 역할을 해주는 프로그램항상 수행되고 있는 유일한 프로그램만 운영체제이다. 다른 말로 커널(kernel)이라고 한다. 1.1 운영체제의 기능 (What Operating Systems Do) 컴퓨터 시스템의 구성요소하드웨어: 중앙 처리 장치(CPU), 메모리, 입출력(I/O) 장치와 같은 하드웨어는 시스템의 기본 컴퓨팅 리소스를 제공운영체제: 하드웨어를 제어하고 다양한 사용자를 위해 다양한 응용 프로그램 간의 사용을 조정응용프로그램: 워드 프로세서, 스프레드시트, 컴파일러, 웹 브라우저와 같은 응용 프로그램은 이러한 리소스가 사..