CPU 가상화ex) 하나의 CPU가 program 1을 10ms동안 실행시키고 멈춘 후 program2를 10ms동안 실행시키는 과정을 1초동안 반복한다. 이때 사람들이 보기에 CPU를 2개 쓰는 것처럼 느끼게 한다.(program1,2는 virtual CPU를 사용한
새로운 프로세스를 생성한다.새로 생성된 프로세스는 함수를 호출한 프로세스의address space, registers, PC를 복사한다. fork() 함수는 프로세스 id, 즉 pid를 return하게 되는데 부모 프로세스에서는 자식의 pid, 자식 프로세스에서는 0,
OS는 time sharing을 통해서 physical CPU를 공유한다.다룰 것Preformance : 우리가 시스템에 과도한 오버헤드를 추가하지 않고 어떻게 가상화를 적용 시킬까?(오버헤드 : 특정 기능을 수행하는데 드는 간접적인 시간,메모리 등의 자원)Contro
Workload(작업량) 가정각 작업들은 같은 시간동안 작동한다.모든 작업들은 같은 시간에 도착한다.모든 작업은 CPU만을 이용한다.(I/O(disk, network)이용하지 않는다.)각 작업의 run-time은 알려져있다.Performance metric : Turn
Multi-Level Feedback Queue(MLFQ) 미래를 예측하기 위해 과거로부터 배워오는 스캐줄러 목적 turnaround time을 최적화 한다. -> 짧은 작업을 먼저한다.(작업의 길이에 대한 사전 지식없이) 상호적 작업을 위한 respo
Fair-share 스캐줄러각 작업이 특정 CPU time의 퍼센트를 보장받는다.turnaround, response time이 최적화 되어 있지 않다.Tickets프로세스가 받아야 할 자원의 양을 의미한다.티켓의 퍼센트가 시스템 자원의 양도량을 의미한다.예시두개의 프
멀티코어 프로세서의 등장은 멀티프로세서 스캐줄링의 확장의 요인이다.멀티코어 : 다중 CPU코어들은 단일 칩에 패키징 되어있다.CPU(코어)를 더 추가하는 것은 단일 응용프로그램을 더 빠르게 만들지는 않는다. -> thread들을 이용하여 응용프로그램이 병렬로 수행될 수
메모리 가상화가 뭐냐OS는 physical memory를 가상화 한다.OS는 각 프로세스가 전체 메모리를 사용한다는 착각을 일으키도록 만든다.메모리에 하나의 프로세스만 Load한다.활용도와 효율성이 나빴다.다양한 프로세스들을 메모리에 Load한다.하나를 짧은 시간동안
힙에서 동적으로 할당된 메모리 영역인수size_t size : 메모리 블락의 사이즈(byte단위)size_t 는 unsigned int 형이다.(typedef unsigned size_t)return 값성공 : malloc에 의해 할당된 메모리 블락으로의 void ty
메모리 가상화는 효율성과 제어를 위한 limited direct execution(LDE)를 이용한다.메모리 가상화에서 효율성과 제어는 하드웨어 지원을 통해서 얻어진다.레지스터, TLB(Translation Look-aside Buffer)s, 페이지 테이블하드웨어는