반응형

책/운영체제 12

운영체제 Ch09_'Main Memory-2'

9.2 연속 메모리 할당 각 프로세스는 다음 프로세스가 적재된 영역과 인접한 하나의 메모리영역에 적재된다. 9.2.1 메모리 보호(Memory Protection) 만일 시스템이 상한 레지스터와 재배치 레지스터를 가지고 있다면 프로세스는 자신이 소유하지 않은 메모리를 접근할 수 없다 재배치 레지스터는 가장 작은 물리 주소의 값을 저장하고, 상한 레지스터는 논리 주소의 범위 값을 저장한다. 각각의 논리주소는 상한 레지스터가 지정한 범위 안에 존재 해야한다. MMU는 논리적 주소를 동적으로 매핑한다. 문맥 교환에서 디스패처는 올바른 값으로 재배치 및 상한 레지스터를 로드한다. Relocation register cheme 을 통해 OS 및 프로세스의 크기를 동적으로 변경할 수 있다. 9.2.2 메모리 할당(..

책/운영체제 2021.01.11

운영체제 Ch09_'Main Memory-1'

Chapter 9, Main Memory 9.1 배경(Background) 메인 메모리는 현대 컴퓨터 시스템의 운영에 중심적인 역할을 한다. 메모리는 각각 주소가 할당된 일련의 바이트들로 구성된다. CPU는 PC가 지시하는 대로 메오리로부터 다음 수행할 명령어를 가져오는데 그 명령어들은 필요한 경우 추가적인 데이터를 더 가져올 수 있으며 반대로 데이터를 메모리로 내보낼 수도 있다. 9.1.1 기본 하드웨어(Basic HW) 메인 메모리와 각 레지스터들은 CPU가 직접 접근할 수 있는 유일한 범용 저장장치이다. 각 CPU 코어에 내장된 레지스터들은 일반적으로 CPU 클럭(Clock)의 1사이클내에 접근이 가능하다. 그러나 메모리 버스를 통해 전송되는 메인 메모리의 경우 CPU 클록의 많은 사이클이 소모되며..

책/운영체제 2021.01.11

운영체제 Ch05_'CPU Scheduling-2'

5.3 스케줄링 알고리듬(Scheduling Algorithms) 프로세스가 하나라고 가정한 상태에서 알고리즘을 설명한다. 5.3.1 선입 선처리 스케줄링(First Come, First Served Scheduling, FCFS) CPU를 먼저 요청하는 프로세스가 CPU를 먼저 할당 받는다. FIFO Queue로 쉽게 관리할 수 있다. 비선점(Nonpreemptive) 알고리듬 이다. 프로세스가 Ready Queue에 집입하면, 이 프로세스의 프로세스 제어 블록(PCB)을 큐의 끝에 연결한다. CPU가 가용 준비상태가 되면, Ready Queue 의 앞부분에 있는 프로세스에 할당 된다. 평균 대기시간은 종종 대단히 길 수 있다. 위와 같은 상황에서 평균 대기 시간의 최대값은 (0+24+27)/3 = 1..

책/운영체제 2021.01.11

운영체제 Ch05_'CPU Scheduling-1'

Chapter 5, CPU Scheduling CPU 스케줄링은 다중 프로그램 운영체제의 기본이다. 운영체제는 CPU를 프로세스 간에 교환함으로써, 컴퓨터를 보다 생산적으로 사용하게 한다. 일반적인 스케줄링 개념을 논의하는 경우 프로세스 스케줄링을 사용하고 스레드에 국한된 개념을 가르키는 경우 스레드 스케줄링이라는 용어를 사용하기로 한다. 5.1 개본 개념(Basic Concepts) 다중 프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행중인 프로세스를 가지게 하는데 있다.(Block 안된) 기본 아이디어는 하나의 프로세스가 I/O 요청이 완료되기를 기다려야 한다면, 시간을 낭비하지 않고 CPU 자원을 실행 가능한 다른 프로세스에게 할당을 해주는 것이다. 5.1.1 CPU-I/O 버스트 사이..

책/운영체제 2021.01.11

운영체제 Ch04_'Thread and Concurrency-2'

4.3 다중 스레드 모델(Multithreading Models) 사용자 스레드(User Thread)는 사용자 수준에서, 커널 스레드(Kernel Thread)는 커널 수준에서 제공된다 사용자 스레드는 유저 레벨 라이브러리에서 관리하며 OS 커널은 사용자 스레드 수를 인식하지 못한다. 커널 스레드는 커널의 지원을 받아 관리되며 스케줄 가능한 단위이다. 사용자 스레드와 커널 스레드는 궁극적으로 어떠한 연관 관계가 존재해야 한다. 아래는 관계를 확립하는 세 가지 일반적인 방법이다. 4.3.1 다대일 모델(Many to One Model) 많은 사용자 수준 스레드를 하나의 커널 스레드로 사상한다. 스레드 관리는 사용자 공간의 스레드 라이브러리에 의해 행해진다. 하나의 스레드가 Block 되는 System C..

책/운영체제 2021.01.10

운영체제 Ch04_'Thread and Concurrency-1'

Chapter 4, Thread and Concurrency 4.1 개요 스레드는 CPU 이용의 기본 단위이다. 스레드는 스레드 ID, PC(Program Counter), 레지스터 집합, 스택 으로 구성된다. 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션, 열린 파일, 신호 등 자원등을 공유 4.1.1 동기(Motivation) 다중 코어 시스템에서 처리 능력을 향상시키도록 설계될 수있다. 이러한 응용은 다중 계산 코어를 사용하여 다수의 CPU-집중 작업을 병렬로 처리할 수 있다. 하나의 프로그램이 여러개의 비슷한 작업을 수행할 필요가 있는 상황들 또한 사용된다. 예를 들어, 웹서버는 클라이언트로 부터 웹 페이지나 이미지, 소리 등에 대한 요청을 받는데 만약 단일 스레드 프로세스로 동..

책/운영체제 2021.01.10

운영체제 Ch03_'Process-2'

3.3 프로세스에 대한 연산 3.3.1 프로세스 생성(Process Creation) 실행되는 동안 프로세스는 여러 개의 새로운 프로세스들을 생성할 수 있다. 생성하는 프로세스를 부모 프로세스라 하고, 새로운 프로세스는 자식 프로세스라고 부른다. 계속해서 생성하다보면 결과적으로 프로세스의 트리를 생성한다. 현대 운영체제는 PID라는 프로세스 식별자를 사용해 프로세스를 구별하는데 보통 정수로 되어있다. 위 그림은 Linux 운영체제의 프로세스 트리를 보여주고 있으며 이름과 PID가 확인된다. 언제나 PID가 1인 systemd 프로세스가 모든 사용자 프로세스의 루트 부모 프로세스 역할을 수행하고 시스템이 부트될때 생성되는 첫 번째 사용자 프로세스이다. 일반적으로 프로세스가 자식 프로세스를 생성할 때, 자식..

책/운영체제 2021.01.08

운영체제 Ch03_'Process-1'

Ch3 Process 현대의 컴퓨터 시스템들은 메모리에 다수의 프로그램이 적재되어 병행 실행되는 것을 허용한다. 이러한 필요성이 프로세스의 개념을 만들었으며, 프로세스란 실행 중인 프로그램을 말한다. 프로세스는 현대 컴퓨팅에서 작업의 단위이다. 3.1 프로세스 개념 3.1.1 프로세스 비공식적으로, 프로세스란 실행 중인 프로그램이다. 이후부터 프로세스(Process)와 작업(Job) 둘다 사용해 설명한다. 프로세스의 메모리리 배치는 일반적으로 여러 섹션으로 구분된다. Text : 실행코드 Data : 전역 변수 Heap : 프로그램 실행 중 동적으로 할당되는 메모리 Stack : 함수를 호출할 때 임시 데이터 저장장소(매개변수, 복귀주소, 지역변수) 텍스트 및 데이터 섹션 크기는 고정된다. 그러나 스택 ..

책/운영체제 2021.01.07

운영체제 Ch02_'Operating-System Structure-2'

2.5 링커와 로더 일반적으로 프로그램은 디스크에 이진 실행파일(a.out or prog.exe)로 존재 CPU에서 실행하려면 프로그램을 메모리로 가져와 프로세스 형태로 배치되어야 한다. 소스파일은 임의의 물리 메모리 위치에 적재되도록 설계된 오브젝트 파일로 컴파일 된다.(재배치가능오브젝트파일) 다음으로 링커는 이러한 재배치 가능 오브젝트 파일을 하나의 이진 실행 파일로 결합한다. 링킹 단계에서 표준 또는 라이브러리와 같은 다른 오브젝트 파일 또는 라이브러리도 포함될 수 있다. 로더는 이진 실행 파일을 메모리에 적재하는 데 사용되며, CPU에서 실행할 수 있는 상태가 된다. 즉 링커와 로더의 관련된 활동은 '재배치'로, 프로그램에 최종 주소를 할당하고 코드와 데이터를 해당 주소와 일치한다. 링커에서 추가..

책/운영체제 2021.01.07

운영체제 Ch02_'Operating-System Structure-1'

Chapter 2 운영체제 구조 2.1 운영체제 서비스 운영체제는 프로그램 실행환경을 제공, 프로그램과 그 프로그램의 사용자에게 특정 서비스를 제공한다. OS Service for user support User Interface : 사용자 인터페이스 (CLI, GUI, Batch) Program Execution : 프로그램을 메모리에 적재해 실행할 수 있다. 정상, 비정상 실행 종료 가능 I/O Operation : 실행 중인 프로그램의 입출력 요구, 사용자들은 입출력 장치를 직접 제어할 수 없다. File-system Manipulation : 권한을 확인하여 파일 read/write/create/delete/search/list 를 수행가능하다. Communications : 프로세스간 통신, 네..

책/운영체제 2021.01.03
반응형