운영체제 개요 (Ch1. Overview) 운영체제란? 컴퓨터 하드웨어를 관리하는 소프트웨어. 응용 프로그램을 위한 기반을 제공하며 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중재자 역할을 수행한다. 컴퓨터에서 항상 실행되는 프로그램이다. (일반적으로 커널이라고 함)
OS 컴퓨터 시스템 구조하드 디스크는 input device/output device 둘 다의 역할을 한다.cpu안에는 memory보다 빠른 저장 공간이 있음. 이를 register라고 함.Interrupt line은 항상 프로그램이 memory 영역만을 사용해서 작동
Parent Process (부모 프로세스) 가 Children Process (자식 프로세스) 생성( 복제 생성; 프로세스가 또 다른 프로세스를 만드는 구조)프로세스의 트리(계층 구조)가 형성됨프로세스는 자원을 필요로 하고 자원은 운영체제(OS)로부터 받거나 부모와
데이터의 접근Race Condition중복 접근이 발생하는 경우 결과 값에 문제가 발생해 원치 않은 결과를 얻게 될 수 있다Kernel 수행 중 인터럽트 발생 (interrupt handler vs kernel)interrupt handler vs kernel중요한 변

Counting Semaphore도메인이 0 이상인 임의의 정수값주로 resource counting 에 사용Binary Semaphore (= mutex)0 또는 1 값만 가질 수 있는 semaphore주로 mutual exclusion (lock/unlock)에 사

Memory Management Logical vs Physical Address ✔ Logical Address (= virtual address, 가상 주소) 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소는

주소 변환을 페이징 별로 해야하기 때문에 바인딩이 어려워짐.Paging (페이징 기법)Process의 Virtual Memory를 동일한 사이즈의 Page 단위로 나눔Virtual Memory의 내용이 page 단위로 noncontiguous하게 저장됨.일부는 back

Memory Management - (3)

가상 메모리는 운영체제가 관리한다.실제로 필요할 때 page를 메모리에 올리는 것. (요청이 있으면 페이지를 메모리에 올리겠다는 의미)실제로 대부분의 시스템들은 Paging 기법 사용 중요구 페이징의 장점I/O양의 감소 (프로그램 중에 빈번하게 사용되는 부분은 지극히

Virtual Memory (2) 다양한 캐싱 환경 캐싱 기법 한정된 빠른 공간(캐시)에 요청된 데이터를 저장해 두었다가 또 똑같은 요청이 들어오면 느린 저장장치에 접근하지 않고 빠른 캐시로부터 직접 서비스하는 방식 가상 메모리 페이징 시스템에서는 한정된 빠른

" A named collection of related information "일반적으로 비휘발성의 보조기억장치(e.g. hard disk) 에 저장운영체제는 다양한 저장장치를 file이라는 동일한 논리적 단위로 볼 수 있게 해줌.Operation : create,

Contiguous AllocationLinked AllocationIndexed Allocation하나의 파일이 디스크 상에서 연속해서 할당되는 방법단점External fragmentation 발생 가능파일 크기가 균일하지 않아 빈 조각들이 있을것이다. 새로운 파일을

Logical block디스크의 외부에서 보는 디스크의 단위 정보 저장 공간들주소를 가진 1차원 배열처럼 취급정보를 전송하는 최소 단위SectorLogical block이 물리적인 디스크에 매핑된 위치Sector 0은 최외곽 실린더의 첫 트랙에 있는 첫 번째 섹터이다.

컴퓨터의 전원을 켜거나 재부팅 할 때와 같이 컴퓨터를 실행하려면 초기 프로그램을 실행해야 한다. 이 초기 프로그램(부트스트랩 프로그램)은 일반적으로 컴퓨터 하드웨어 내에 펌웨어로 저장된다.부트스트랩 프로그램은 운영체제를 적재하는 방법과 해당 시스템 실행을 시작하는 방법

컴퓨터에서 프로그램이 실행되기까지 과정을 정리해보고자 한다. 개발자 입장에서 직접 작성한 고급언어 코드 프로그램이 어떻게 작동하게 되는지 알아보자. 운영체제별 차이점까지 깊게 다루진 않았다.C/C++ 실행 과정Java 실행 과정개발자는 C, C++, Java, Pyth

Operating System 공룡책 5.6절의 실시간 CPU 스케줄링에 대해 정리해보았다실시간 CPU 스케줄링은 연성(soft) 실시간 시스템과 경성(hard) 실시간으로 구분연성 실시간 시스템중요한 실시간 프로세스가 스케줄 되는 시점에 관해 아무런 보장을 하지 않는

여러 개의 프로세스가 공유 자원에 동시 접근할 때 실행 순서에 따라 결과값이 달라질 수 있는 현상공유 자원에 여러 프로세스/쓰레드가 동시에 접근 -> 의도치 않은 동작 발생 가능따라서 프로세스나 쓰레드를 공유자원에 동시에 접근하지 못하도록 접근 순서를 제어하는 방법 (

전체 10 페이지 중 실제로는 5페이지만을 사용하는 프로세스가 있다면, 요구 페이징을 통해 사용되지 않는 나머지 5페이지를 로드하는 I/O를 피할 수 있다.ex) 40 프레임을 사용할 수 있는 시스템이 있다고 할 때, 10페이지를 모두 로드해야 하는 상황이였다면 4개의