반응형

학부 내용 정리/[ 2-1 ] 운영체제 19

[ OS ] Translation-Lookaside Buffer

1. paging paging 은 주소공간을 페이지 단위로 다른다. 이는 많은 양의 정보를 필요로한다. 또, 각 가상 주소에 대해 추가 메모리 조회가 필요하다. 이 때 어떤 하드웨어 지원과 OS이 필요한가? 2. Translation-Lookaside Buffer (TLB) MMU(메모리와 CPU에 관련되게 일하는 하드웨어)의 일부분이다. 이는 스스로는 아무것도 하지 못하고 OS가 이를 동작시켜줘야한다. Address-translation에 대한 캐시이다. 메모리까지 가서 table을 보기에는 오래걸리니까 캐시에 저장한다. 3. TLB의 기본 알고리즘 VPN = (VirtualAddress & VPN_MASK) >> SHIFT //상위 비트를 저장 (Success, TlbEntry) = TLB_Looku..

[ OS ] Paging

1. Paging 1.1 Segmentation의 문제점 세그멘테이션은 가변적인 메모리 조각들을 다루기 때문에 항상 Memory compaction를 해줘야한다. 하지만 이 과정이 마냥 간단하지는 않다. 1.2 paging 페이징은 실제 메모리를 페이지 프레임이라고 하는 고정 크기의 슬롯의 배열로 보는 방법이다. 프로세스가 주소 공간을 사용한느 방법에 관계없이 주소 공간의 추상화를 효과적으로 사용할 수 있다. 어떤 용도로 쓸건지에 대한 정보가 필요 없다. free 공간을 다루를 것이 더 간단해 질 수 있다. 1.3 Address Translation (Page table) Page table 에는 주소 공간의 각 가상페이지에 대한 물리 주소가 저장되어있다. 가상 주소는 인덱스 번호와 같으므로 생략하고 물..

[ OS ] Segmentation

1. Segmentation 1.1 base and bounds registers의 문제점 전에 배운 가상 공간 배치방법의 문제점은 프로그램이 크다면 물리메모리에 자리 찾아주기 힘들고(연속적이어야 하기 때문). 사용되지 않은구간이 너무 많다는 것이다 (free) 1.2 Segment 1) 세그먼트는 특정 길이의 주소공간의 연속된 부분이다 (코드, 스택, 힙) 2) 각각에 base and bounds가 존재하며 세그먼트 각각이 연속적일 필요는 없다. 1.3 Segmentation 1) 물리적 메모리의 서로 다른 부분에 세그먼트를 배치한다 2) 물리적 메모리를 free로 채우지 않는다. - 사용된 메모리만 공간을 할당한다 - 사용하지 않는 주소 공간에 다른 공간을 수용할 수 있음 왼쪽은 기존의 물리 메모리이..

[ OS ] Address Spaces

1. Address Spaces 1.1 Multiprogramming and Time Sharing Multiplrogramming - 여러개의 프로세스들이 동시에 메모리에 적제되어 실행되는 프로그램 하나 끝나고 하나 실행 시키려면 메모리를 넘겨주기 전에 실행중인 프로세스의 메모리를 저장하고 넘겨줘야한다. 이는 속도 저하를 일으킨다. 하지만 Multiplrogramming을 하면 context swich 를 할 필요가 없다. 하지만 마냥 위 방법이 효율적인 것은 아니다. 크기가 다 똑같게 지정되어있어 모자를 때도 남을 때도 있다. 또, 이는 프로세스 간의 메모리 접근을 막아야한다. 1.1 Address space 우리가 주소 공간을 정의하여 가상주소를 사용하면 메모리 추상화가 쉽고, 프로그램 입장에서 어..

[ OS ] Multiprocessor Scheduling

1. Multiprocessor Scheduling 이 챕터에서는 코어가 여러개일 때 스케줄링하는 방법에 대한 이야기이다. 1.1 Multiprocessor Architecture 코어는 각각 캐시를 가지고 있으며 공통된 캐시를 가지고 있다. 대부분의 노트북과 컴퓨터는 위와같은 구조를 보인다. 각 CPU는 멀리있는 Memory도 사용 가능하다. 1.2. Single-queue multiprocessor scheduling (SQMS) 이 방법은 CPU가 여러개더라도 하나의 Queue로 운영하는 방법이다. 큐에서 job을 꺼낼때는 코어의 개수만큼 한번에 꺼내서 쓸 수 있다. A를 계속 실행하는데 CPU 를 옮겨다니므로 처리해야할 부분이 늘어난다. 그렇게 되면 동기화 오버해드가 일어날 수도 있다. 1.3. ..

[ OS ] Multi-Level Feedback Queue

1. Multi-Level Feedback Queue 1.1 Scheduling Metrics Turnaround time - 일반적인 작업 실행시간을 알 수 없으므로 Turnaround에 효율적인 SJF와 STCF은 사용하기 힘들다 response time- OS는 사용자에게 반응하는 것처럼 느끼게 하는 것을 좋아한다. RR은 응답시간을 줄이지만 Turnaround 시간에서는 되게 별로다. 어떻게 하면 작업기간에 대한 사전지식 없이 Turnaround time와 response time 모두 효율적인 스케줄러를 설계할 수 있을까? 1.2 Multi-Level Feedback Queue Rule1, Rule2 MLFQ 알고리즘은 기본적인 조건을 가지고있다. 먼저 여러개의 큐를 가지고 있고 이는 각각 다른..

[ OS ] 3. CPU Scheduling

1. CPU Scheduling 이제는 운영체제가 어떤 기준과 정책으로 스케줄링을 진행하는지에 대하여 이야기 해볼 것이다. 여러가지 정책을 공부하기위해 가정을 세워두고 조금씩 바꿔가며 설명할 것이다. 1.1 Turnaround time Turnaround time = job이 생성된 시간 - 종료된 시간 (완성되는데 얼마나 걸렸냐) Response time = job 이 도착한 시간 - 실행하기 시작한 시간 (얼마나 기다리게 했냐) 1.2 First In, First Out (FIFO) 각 작업은 동일한 시간동안 실행된다 모든 작업은 동시에 도착한다 일단 시작이 되면, 각 작업이 완료될때까지 실행된다 모든 작업은 CPU만 사용한다. 각 작업의 실행시간을 알 수 있다. 위의 목록들을 가정하고 FIFO 정책..

[ OS ] 2. Limited Direct Execution

1. Limited Direct Execution 저번 강의에서는 가상 cpu를 만들어서 할당해주는 내용을 공부했다. 이번에는 어떻게 하면 성능을 유지하고 접근성을 잘 지키며 CPU 가상화를 구현할까에 대해 공부한다. 1.1 Direct Execution 실행중인 프로그램에 대한 제한이 없다면 OS는 가 아무것도 제어할 수 없다. 이는 즉 프로세스가 CPU를 독점하고 있으면 OS가 끼어들 틈이 없다는 의미이다. OS가 프로그램을 적으로 실행하며 우리가 원하는 방향으로 흘러가려면 제한된 작업을 하게 해야하고 시간을 나눠쓰게 해야한다.(독점 X) 2. Problem #1: Restricted Operations 제한된 작업을 실행하게 하려면 I/O 작업을 해서 disk에 접근하려고 할 때나 CPU가 더 많은..

[ OS ] 1. Processes

1. Program vs Process 1.1 program - 컴파일하고 생긴 exe 파일, 디스크에 있는 여러 명령 및 정적데이터 1.2 process - 실행중인 프로그램 - 기계의 상태 (레지스터, 메모리, 열려있는 파일 목록 ) - 프로그램 하나를 여러번 실행하면 여러 프로세스 생성 2. Virtualization 이상은 서로 양보하며 잘 나눠쓰면 좋지만 현실은 독점하려고 한다. 운영체제는 virtualization을 통해 이상을 실현하려고한다. 가장 대표정은 방법은 Time sharing 이 있다. 2.1 Time sharing - 실제로 물리적 CPU가 하나또는 몇개뿐일 때 가상 CPU가 존재한다는 착각을 하게 됨 - 사용자가 원하는 만큼 많이 동시에 프로세스를 실행시킬 수 있다. - 기회비..

반응형