목록Computer Science (81)
엔지니어가 되고 싶은 공돌이

5. 1. Fork, Exec and CreateProcess - Fork: Child Process를 만드는 Unix System Call. 1) Child Process는 Parent Process의 공간을 그대로 복사하여 Main Memory에 로드시킵니다. 2) Parent Process는 자식의 PID를 받고, Child Process는 0을 받습니다. 3) PCB를 만들고, PCB를 Ready Queue에 넣습니다. ex) Web Server에 주로 사용. - Exec: 새로운 Process를 만드는 것이 아닌 기존 Process를 다른 Process로 바꾸는 Unix System Call. 1) 현재 Process 중단 -> 다른 Program을 읽어와서 기존 주소공간에 ..

4. 1. Definition - Program: 컴퓨터에게 알려주는 순서가 있는 명령어들의 집합. - Task: Process 1개. - Job: Process 여러 개가 모여 일을 처리 할 때. - Process: 컴퓨터에서 실행 중인 Program이자, Scheduling의 기본 단위. OS가 Process ID를 주고 관리하며, Process 안에는 CPU context(register), OS Resource(memory), PID 등이 있습니다. - Process Virtual Memory 4. 2. Process Creation and Termination - Process Creation 1) Process Hierarchy(Parent-Child Relationship..

3. 1. Exception - Exception: Software Executing Instructions이 생성. ex) x86의 INT instruction. - Interrupts와 exceptions의 처리방법은 거의 동일합니다. 1) Trap - User Application이 Intentional하게 발생시킵니다. - ex) System Calls, Breakpoint Traps. - Return next instruction(Recoverable). 2) Fault - Unintentional and Possibly(or Impossibly) Recoverable. - Page Fault (Recoverable), Protection Fault(Unrecoverable). 3) Ab..

2. 1. OS Internals - I/O Management에는 Device Drivers가 포함되며, 모든 Management Code중에서 제일 깁니다. Hardware마다 Code를 가져야 하기 때문입니다. - Process Management Coder가 가장 짧습니다. 하지만 매우 중요합니다. 2. 2. Computer System 1) I/O장치와 CPU는 동시에 일을 수행 할 수 있습니다. 2) 각 Device controller는 각 Device를 담당합니다. 3) Device Controller에는 Local Buffer가 존재합니다. 4) I/O란 Main Memory와 Local Buffer사이의 데이터 교환을 의미합니다. 5) I/O는 CPU가 명령을 내려야 할 수 ..

1. 1. Definition - Application View: 프로그램이 실행될 수 있는 최적의 환경을 제공해주는 소프트웨어. - System View: Resource(Memory, CPU)를 효율적으로 관리해주는 소프트웨어. - Implementation View: Event-Driven Software, 대기하고 있다가 이벤트(System Call, Interrupt)가 발생하면, 일을 처리하고 다시 대기상태로 돌아갑니다. - Computer System은 대략적으로, 제일 밑 계층부터 순서대로 Hardware, OS(Kernel), Software Development Environment(Compiler, Loader, …), Application or Middleware, Services..

16. 1. Exception and Interrupt - MIPS는 Exception과 Interrupt가 발생했을 때 이를 처리할 수 있어야 합니다. - Exception이 발생하면 문제를 일으킨 Address of Instruction를 EPC에 저장하고, OS로 제어를 넘깁니다. 그럼 OS가 Exception을 처리해서 프로그램을 종료할지, 계속 수행할지를 결정합니다. - OS가 Exception이 발생하면 원인을 알기 위해서 2가지 방법을 사용합니다. 1) Cause Register: Exception이 발생한 원인을 나타내는 필드가 있으며, Exception을 기록하는데 사용됩니다. 2) Vectored Interrupt: 제어를 넘길 주소를 Exception의 원인에 의해 결정하..

15. 1. Control Hazard - Control Hazard는 Branch에 따라서 분기가 일어났을 때 수행할 명령어, 분기가 안 일어났을 때 수행할 명령어가 달라지는데 pipeline 특성 상 계속 명령어를 인출해야 하므로 2가지 경우의 수 중 하나를 선택해야해서 발생하는 Hazard입니다. - 가장 쉬운 방법은 Branch가 일어나지 않는다고 가정한 뒤 명령어를 계속 수행하다가, Branch가 발생하면 수행해야할 명령어들을 다 버리고(flush) Branch 다음의 명령어를 인출하는 방법입니다. 일반적인 Datapath에서는 Branch가 MEM에서 결정되므로 예측이 실패할 경우 IF, ID, EX 단계에 있는 3개의 Instruction을 바꿔야 합니다. ..

14. 1. Data Hazard - Data Hazard가 발생하는 조건은 아래와 같습니다. 1) EX/MEM.RegisterRd = ID/EX.RegisterRs. 2) EX/MEM.RegisterRd = ID/EX.RegisterRt. 3) MEM/WB.RegisterRd = ID/EX.RegisterRs. 4) MEM/WB.RegisterRd = ID/EX.RegisterRt. 즉, 다음 명령어가 이전 명령어의 레지스터 값을 필요로 하는데, 아직 값을 받지 못해서 발생합니다. - 위 문제를 빠르게 해결하기 위해서 Forwarding을 수행합니다. Forwarding은 ALU에 Multiplexer와 적절한 Control을 붙여서 구현하며, Forwarding은 EX 단계에..

13. 1. Pipelining Datapath - MIPS Instructions은 5단계로 수행되므로, Pipelining을 적용시키면 최대 5개의 명령어를 동시에 실행 시킬 수 있습니다. - Datapath는 2가지 경우를 제외하고 전부 왼쪽에서 오른쪽으로 작업을 수행합니다. 1) Write Register Files: Data Hazard를 발생 시킬 수 있습니다. 2) PC Value Decision: Control Hazard를 발생 시킬 수 있습니다. - 여러 개의 명령어가 동시에 실행되면 메모리를 다른 명령어가 사용할 수 있으므로, 각 명령어의 정상적인 동작을 위해 각 단계마다 Register를 필요로 합니다. - 모든 Instructions은 Clock Cycle마다..

12. 1. Pipelining - Pipelining: 여러 명령어를 중첩시켜 실행시켜서, 총 명령어 수행시간을 줄이는 방법. - Pipelining의 속도 향상은 Pipelining의 단계 수 와 같습니다. Execution Time of Instructions 을 줄이는게 아닌, Instructions Throughput 을 높이는 방법. 12. 2. MIPS Instructions 5단계 1) IF(Instruction Fetch): Instruction Memory에서 Instruction을 읽습니다. 2) ID(Instruction Decode): Instruction을 해석하는 동시에, Register를 Register File에서 읽습니다. 3) EX(Execution): Operat..