[OSTEP] 제6장 제한적 직접 실행 원리
6.1 기본 원리: 제한적 직접 실행 6.2 문제점 1: 제한된 연산 6.3 문제점 2: 프로세스 간 전환 6.4 병행성이 걱정 6.5 요약
6.1 기본 원리: 제한적 직접 실행 6.2 문제점 1: 제한된 연산 6.3 문제점 2: 프로세스 간 전환 6.4 병행성이 걱정 6.5 요약
- Unix는 프로세스를 생성하기 위하여 fork()와 exec() 시스템 콜을 사용한다.- wait()는 프로세스가 자신이 생성한 프로세스가 종료되기를 기다리기 원할 때 사용된다. 핵심 질문 : 프로세스를 생성하고 제어하는 방법- 프로세스를 생성하고 제어하려면 운영체제가 어떤 인터페이스를 제공해야 하는가?- 유용하고 편하게 사용하기 위해서 이 인터페이스는 어떻게 설계되어야 하는가?5.1 fork() 시스템 콜- 프로세스 생성에 fork() 시스템 콜이 사용된다.- Unix 시스템에서 PID(프로세스 식별자)는 프로세스의 실행이나 중단과 같이 특정 프로세스를 대상으로 작업을 해야 할 경우 프로세스를 지칭하기 위해 사용된다. - 프로세스는 fork() 시스템 콜을 호출한다. 운영체제는 프로세스 생성을 위해..
- 운영체제가 제공하는 핵심 개념 중 하나인 프로세스에 대해 논의한다. 일반적으로 프로세스는 실행 중인 프로그램으로 정의한다. - 프로그램 자체는 생명이 없는 존재다. 프로그램은 디스크 상에 존재하며 실행을 위한 명령어와 정적 데이터의 묶음이다. 이 명령어와 묶음을 읽고 실행하여 프로그램에 생명을 불어넣는 것이 운영체제이다. 핵심 질문 : CPU가 여러 개 존재한다는 환상을 어떻게 제공하는가- 적은 개수의 CPU 밖에 없더라도, 운영체제는 어떻게 거의 무한개에 가까운 CPU가 있는 듯한 환상을 만들 수 있을까?- 운영체제는 CPU를 가상화하여 이러한 환상을 만들어 낸다. 하나의 프로세스를 실행하고, 얼마 후 중단시키고 다른 프로세스를 실행하는 작업을 반복하면서 실제 하나 또는 소수의 CPU로 여러 개..
- 프로그램은 매우 단순한 일을 한다: 명령어를 실행한다. - 프로세서는 명령어를 초당 수백만 번 (요즘은 수십억 번) 반입(fetch) 하고, 해석(decode)하고 (즉, 무슨 명령어인지 파악하고), 실행(execute)한다. (즉, 두 수를 더하고, 메모리에 접근하고, 조건을 검사하고, 함수로 분기하는 등의 정해진 일을 한다). 명령어 작업을 완료한 후 프로세서는 다음 명령어로, 또 그 다음 명령어로 프로그램이 완전히 종료될 때까지 실행을 계속한다. - 프로그램을 쉽게 실행하고 (심지어 동시에 여러 개의 프로그램을 실행시킬 수도 있음), 프로그램 간의 메모리 공유를 가능케 하고, 장치와 상호작용을 가능케하고, 다양 흥미로운 일을 할 수 있게 하는 소프트웨어가 있다. - 시스템을 사용하기 편리..
운영체제 아주 쉬운 세 가지 이야기(OSTEP) - Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-dusseau제 1장 이 책에 관한 대화제 2장 운영체제 개요https://hana0731.tistory.com/479제 1편 가상화제 3장 가상화에 관한 대화제 4장 프로세스의 개념https://hana0731.tistory.com/481제 5장 막간: 프로세스 APIhttps://hana0731.tistory.com/482제 6장 제한적 직접 실행 원리 제 7장 스케줄링: 개요 제 8장 스케줄링: 멀티 레벨 피드백 큐 제 9장 스케줄링: 비례 배분 제 10장 멀티프로세서 스케줄링 (고급) 제 11장 CPU 가상화에 관한 마무리 대화 제 12장 메모리 가상화에 관한 대화 제 1..
뇌를 자극하는 윈도우즈 시스템 프로그래밍 - 윤성우1장. 컴퓨터 구조에 대한 첫 번째 이야기https://hana0731.tistory.com/4342장. 아스키코드 vs 유니코드https://hana0731.tistory.com/4353장. 64비트 기반 프로그래밍https://hana0731.tistory.com/4364장. 컴퓨터 구조에 대한 두 번째 이야기https://hana0731.tistory.com/4425장. 프로세스의 생성과 소멸https://hana0731.tistory.com/4436장. 커널 오브젝트와 오브젝트 핸들https://hana0731.tistory.com/4447장. 프로세스간 통신(IPC) 1https://hana0731.tistory.com/4458장. 프로세스간 통..
01. 메모리 계층(Memory Hierachy)+ 메모리의 범위와 종류- 메모리라고 하면 메인 메모리에 해당하는 램을 생각한다. 그러나 램이 사용되는 메인 메모리 이외에도 메모리라고 불릴 수 있는 요소들이 너무나도 많다.- 컴퓨터를 구성하는 요소 중에서 임시적이든, 영구적이든 저장 기능을 조금이라도 가지고 있으면 무조건 메모리의 범위에 포함된다. [메인 메모리]- 메인 메모리인 D램 계열의 메모리인 램이다.- 메인 메모리가 반드시 램이어야 할 이유는 없다. 그러나 거의 모든 컴퓨터가 메인 메모리로 램을 사용한다.[레지스터]- CPU안에 내장되어 있어서 연산을 위한 저장소를 제공한다.[캐쉬]- 캐쉬는 D램보다 빠른 S램으로 구성된다. - 캐쉬는 CPU와 램 사이에서 중간 저장소 역할을 하는 메모리이다.-..
01. 쓰레드 풀에 대한 이해 479- 빈번한 쓰레드의 생성과 소멸은 피해야한다. 은행 창구 앞에 앉아서 업무를 보는 행원들은 쓰레드에 비유할 수 있다. 이들은 계속해서 밀려오는 고객들의 업무를 처리를 해준다. 서너 명의 은행 직원이 수십, 수백 명이나 되는 고객의 업무를 처리하는 것이다. 이것이 쓰레드 풀 모델이다.- 시스템 모델이란 처리해야 할 일이 있을 때마다 새로운 쓰레드를 생성해서 할당하는 시스템 모델이다. - 쓰레드 풀의 기본 원리는 쓰레드의 재활용이다. 할당된 일을 마친 쓰레드를 소멸시키지 않고, 쓰레드 풀에 저장해뒀다가 필요할 때 다시 꺼내 쓰는 개념이다. 즉 쓰레드의 생성과 소멸에 필요한 비용을 지불하지 않겠다는 것이다. - 쓰레드 풀은 처리해야 할 일이 등록되기 전에 생성되는데, ..