해당 글은 inflearn의 을 보고 정리하였습니다. Chapter 1-2 : Introduction & O/S Structures 1.1 What Operating Systems Do An operating system is a software that manages a computer’s hardware 컴퓨터 하드웨어를 관리하는 소프트웨...
Chapter 2. 운영체제 구조 운영체제는 사용자 및 프로그램에 서비스를 제공하여 프로그램 실행 환경을 제공한다. 이번 장에서 사용자, 프로그래머, 운영체제 설계자의 관점에서 바라본 운영체제의 세 가지 측면을 모두 살펴볼 것이다. 2.1 운영체제 서비스 운영체
Chapter3. 프로세스 초기의 컴퓨터 시스템: 한번에 하나의 프로그램만 실행 가능 오늘날의 컴퓨터 시스템: 메모리에 다수의 프로그램이 적재되어 병행 실행된다. ⇒ 이러한 발전은 다양한 프로그램을 보다 견고하게 제어하고, 구획화해야했다. ⇒ 이러한 필요성이 프로세스의 개념을 낳았다. 프로세스란 실행 중인 프로그램을 말하며, 현대의 컴퓨팅 시스템에...
3장에서 소개한 프로세스 모델은 한 프로세스가 하나의 제어 스레드로 프로그램을 실행한다고 가정하였다. 그러나 거의 모든 현대 운영체제는 한 프로세스가 다중 스레드를 포함하는 특성을 제공한다. 4.1 개요 스레드는 CPU 이용의 기본 단위이다. 스레드는 다음으로 구성된다. 스레드ID 프로그램 카운터 PC 레지스터 집합 스택 스레드는 같은 프로세스에...
CPU 스케줄링은 다중 프로그램 운영체제의 기본이다. 운영체제는 CPU를 프로세스 간에 교환함으로써, 컴퓨터를 보다 생산적으로 만든다. 최신 운영체제에서는 실질적으로 운영체제는 프로세스가 아니라 커널 수준의 스레드를 스케줄 한다. 그러나 “프로세스 스케줄링”과 “스레드 스케줄링” 용어는 상호 교환적으로 사용된다. 이 장에서는 프로세스 스케줄링 = 일반적인 ...
Part3. 프로세스 동기화 시스템은 일반적으로 병렬로 실행되는 수백개 또는 수천개의 스레드로 구성된다. 스레드는 종종 사용자 데이터를 공유한다. 공유 데이터에 대한 액세스가 제어되지 않으면 경쟁 조건이 존재하여 데이터 값이 손상될 수 있다. 프로세스 동기화는 경쟁조건을 피하고자 공유 데이터에 대한 액세스를 제어하는 도구를 사용한다. 이러한 도구를 잘못...
Chapter7. 동기화 예제 6장에서는 임계 구역 문제를 제시하고 여러 병행 프로세스가 데이터를 공유할 때 어떻게 조경쟁조건이 발생할 수 있는 지에 중점을 두었다. 계속해서 경쟁조건이 발생하지 않도록 하여 임계구역 문제를 해결하는 몇가지 도구를 검토하였다. 이러한 도구는 메모리 장벽 및 compareandswap 연산과 같은 저수준 하드웨어 해결책에서...

다중 프로그래밍 환경에서는 여러 스레드가 한정된 자원을 사용하려고 서로 경쟁할 수 있다. 한 스레드가 자원을 요청했을 때, 그 시각에 그 자원을 사용할 수 없는 상황이 발생할 수 있고, 그때는 스레드가 대기상태로 들어간다. ⇒ 이처럼 대기 중인 스레드들이 결코 다시는

Chapter9. 메인 메모리메모리를 관리하는 다양한 방법에 대해 알아보자. 메모리 관리 알고리즘은 기본 베어 머신 방식에서 페이징을 사용하는 전략에 이르기까지 다양하다. 각 접근 방식에는 고유한 장단점이 있다. 특정 시스템에 대한 메모리 관리 방법의 선택은 많은 요소