Operating System
-
SPT, NPTOperating System 2015. 3. 6. 18:35
shadow Page Table사진 출처 : http://www.anandtech.com/show/2480/10 hypervisor에서는 VA->MA mapping table을 가지고 있다. direct page table access para virtualization에서는 guest os의 page tale을 수정해서, machine address를 직접 같게 된다.hyper call을 이용 Hardware Assisted Page table 사진 출처 : http://www.anandtech.com/show/2480/10 HW지원으로 Hypervisor 구현이 쉬워졌다.간단하다 MMU가 2개있다고 생각하면된다.VA->PA를 위한 MMU 와 PA->MA를 위한 MMU.위의 모든 SW적인 구현은 MMU..
-
virtualization techniquesOperating System 2015. 3. 6. 16:43
hardware Solution Hardware-Assist Virtualization : CPU의 지원을 받음으로써 가상화 방식의 가장 큰 과부화였던 Binary Translation이 없앴다.Non-Root mode와 root mode privilege level을 가진다. AMD 가상화 (AMD-V)64비트 x86 아키텍처에 대한 AMD의 가상화 확장 인텔 가상화 기술 (인텔 VT) 인텔 VT는 IA-32 (VT-x)를 위한 가상화 기술, IA-64 (VT-i)를 위한 가상화 기술, Directed I/O (VT-d)를 위한 가상화 기술, Connectivity (VT-c)를 위한 가상화 기술로 이루어져 있다 Software Solution Binary TranslationHyper call vir..
-
concurrencyOperating System 2015. 2. 15. 20:33
multi threadting programming시 고질적인 문제점. 1. 공유 변수 파악하기.2. lock의 효율적인 사용.3. atomic operation으로 구현하기. concurrency multi-programming, multi-thread때문에 발생한다. 결국 process간에 발생하는 문제로 볼 수 있다. 프로세스간 통신문제, 자원(memory, file, IO)에 대한 공유와 경쟁, 프로세스 활동들의 동기화, 프로세스에 대한 cpu 시간 할당문제를 가진다. 발생하는 문제 : race condition 두 개 이상의 프로세스가 공유 자원에 접근하려는 상태.특정자원이 정해진 순서로 작동하는 경우에만 작업이 성공적으로 수행된다면, 그 프로그램은 race condition을 포함한다.Prod..
-
common, segment,system Register and EFLAGSOperating System 2014. 1. 20. 22:20
범용 레지스터 EIPInstruction pointer 레지스터는 다음 실행할 명령어가 있는 현재 code segment의 offset값을 가진다.소프트웨어적으로 접근 할 수 없으며, Control-transfer instructin(JMP,CALL, RET)이나 interrput와 exception에 의해서 제어된다. 세그먼트 레지스터 메모리 보호용으로 사용 CS, DS, SS, ES, FS, GS CS,SD,SS,ES는 32bit protected mode에선 GDT 인덱싱하는데 사용되고, FS는 TEB구조체 가르치고, GS는 ? EFLAGS(Extended FLAGS) 저렇게 status, control ,system flag로 category가 나뉜다. OFSFZFAFPFCF just cpu가 수..
-
Task 상태정의Operating System 2013. 6. 14. 22:09
리눅스에서의 태스크 상태 정의 TASK_RUNNING : 앞에서의 ready와 running 상태 TASK_INTERRUPTABLE, TASK_UNINTERUPTABLE : 앞에서의 block상태 - interuptable : 시그널에 의해 깨어날 수 있는 대기(wait)상태. 대부분의 주변I/O에 해당한다. - uninterruptable : 시그널에 의해 깨울수 없는 대기(wait)상태. hardware상태를 체크하거나 하는 경우 TASK_ZOMBIE TASK_STOPPED return from system call 하는일 1.커널이 현재 실행중인 task가 signal 받았는지 확인. 2.스케쥴링이 필요한 경우, scheduler호출 3.커널 내에서 연기된 루틴(ex. task queue, bott..