본문 바로가기

공룡책3

운영체제 공룡책 : Ch6. Synchronization Tools | 동기화 도구들 📌 들어가며 협력적 프로세스 cooperating process는 시스템 내에서 실행 중인 다른 프로세스의 실행에 영향을 주거나 영향을 받는 프로세스이다. 협력적 프로세스는 논리 주소 공간(즉, 코드 및 데이터)을 직접 공유하거나 공유 메모리 또는 메시지 전달을 통해서만 데이터를 공유할 수 있는데, 공유 데이터를 동시에 접근하면 데이터의 일관성을 망칠 수 있다. 이번 단원에서는 논리 주소 공간을 공유하는 협력적 프로세스가 질서있는 실행을 통해 데이터의 일관성을 유지하는 다양한 메커니즘에 대해 다루어보자. 📚 6.1 배경 Background 프로세스는 concurrent하고 parallel하게 실행될 수 있다. 즉, CPU 스케줄러가 프로세스 사이에서 빠르게 오가며 각 프로세스를 실행하며 각 프로세스를 실.. 2023. 3. 22.
운영체제 공룡책 : Ch4. Threads & Concurrency | 스레드와 병행성 📌 들어가며 현대 운영체제는 한 프로세스가 다중 스레드를 포함하는 특성을 제공한다. 다중 CPU를 제공하는 다중 코어 시스템에서 스레드 사용을 통한 병렬 처리의 기회를 식별하는 것이 중요해지는 시점에서, 이번 단원을 통해 다중 스레드 컴퓨터 시스템과 관련된 내용을 알아보고, 개발자로서 병렬 처리 기회를 식별하고 언어 제공 기능 및 API 프레임워크가 스레드 생성 및 관리 세부 정보를 관리할 수 있도록 하는데 초점을 맞추고자 한다. 📚 4.1 개요 스레드 Thread란 CPU 연산의 가장 작은 단위이다. 스레드는 Thread ID, program counter (PC), register set, stack으로 구성된다. 같은 프로세스 안에 있는 스레드들은 code 섹션, data 섹션, 그리고 files와.. 2023. 3. 15.
운영체제 공룡책 : Ch2. Operating System Structures | 운영체제 구조 📌 들어가며 운영체제를 살펴보기 위한 몇가지 관점이 있다. 1. 운영체제가 제공하는 서비스에 초점을 맞춘다. 2. 운영체제가 사용자와 프로그래머에게 제공하는 인터페이스에 초점을 맞춘다. 3. 시스템의 구성요소와 그들의 상호 연결에 초점을 맞춘다. 이 세가지 측면을 기준으로 사용자, 프로그래머, 운영체제 설계자의 관점에서 모두 살펴보자. 📚 2.1 운영체제 서비스 운영체제는 프로그램 실행 환경을 제공한다. 즉, 프로그램과 그 프로그램의 사용자에게 특정 서비스를 제공한다. 이러한 서비스는 프로그래머가 프로그래밍 작업을 더 쉽게 수행할 수 있도록 한다. [ 사용자에게 도움을 주는 것을 목적으로 하는 서비스 ] ✔️ 사용자 인터페이스(user interface) * 거의 모든 OS가 제공하며, 여러 형태로 제공.. 2023. 3. 8.