CS
-
[OS] - Paging AlgorithmCS/면접준비 2022. 9. 30. 12:49
Paging Change Algorithm 요청하는 Page가 Main Memory에 없다면(Page Fault) -> 새로운 Page 할당 -> 할당된 Page 중에서 어떤 것을 Main Memory에서 내려서 사용할 것인가? Virtual Memory는 필요한 Page만 Memory에 적재한다. 그럼에도 Main Memory가 가득 찰 수 있다. 가득차게 된다면 안쓰는 Page는 Out 하고 요청한 Page를 In해야 한다. 이 때 Page Out되는 Page를 Victim Page라고 하며, 수정이 되지 않은 Page를 우선으로 하여 Page Out한다. ( 수정되면 Disk 작업이 필요하다 ) Page Reference String Cpu는 Logical Address를 통해 특정 Address를..
-
[OS] - Paging / SegmentationCS/면접준비 2022. 9. 30. 12:37
Paging , Segmentation Multi Programming에서 여러 Process를 수용하기 위해 Main Memory를 분할하여 Memory 관리 관리 방식 1. Continuous Memory 관리 Program 전체가 하나의 커다란 공간에 연속적으로 할당 고정 분할 : Internal fragmentation 동적 분할 : External fragmentation 2. Non Continuous Memory 관리 Program 일부가 서로 다른 Address 공간에 할당 Page = Process를 고정 사이즈로 분할 Frame = Page와 동일한 크기로 Main Memory 분할 Fragmentation = Hole Space , data가 여러 조각으로 나누어지는 현상 Segmen..
-
[OS] - Semaphore / MutexCS/면접준비 2022. 9. 30. 00:09
Semaphore MultiProgramming 환경에서 Shared Resource에 대한 접근을 제한 Shared Resource에 여러 Process가 동시에 접근하면서, 문제가 발생 할 수 있다. Resource에는 그렇기에 하나의 Process만 접근이 가능하다. Critical Section 여러 Process가 data를 Share하면 수행 할 때, 각 Process에서 Shared Data를 접근하는 코드 부분 Shared Data를 여러 Process 가 접근하면 잘못된 결과가 발생 할 수 있다. Semaphore P,V P : Critical Section에 들어가기 전에 수행 V : Critical Section에서 나올 때 수행 #SemaPhore P(S) # Critical Sec..
-
[OS] - DeadLockCS/면접준비 2022. 9. 29. 23:10
DeadLock 2개 이상의 Process 혹은 Thread가 서로 Resource를 얻지 못하여 다음 처리를 하지 못하는 상태 무한히 Resource를 기다리게 되는 상태 ( Wait ) System 한정된 Resource가 여러 곳에서 사용되면 발생한다. 하나의 Process에서 Resource를 요청하였을 때, 동시에 Resource를 사용할 수 없는 상황이 발생 -> Process는 Wait State Starvation = 식사하는 철학자 링크 DeadLock 발생 조건 4가지 모두 필수조건 1. Mutual Exclusion ( 상호 배제 ) Resource는 하나의 Process에서만 사용 할 수 있다. 2. Hold and wait ( 점유 대기 ) 최소한 하나의 Resource를 점유, ..
-
[OS] - CPU SchedulingCS/면접준비 2022. 9. 29. 18:34
CPU Scheduling Processor(CPU)가 Process를 적절하게 배정하여 사용률을 높이고 Overhead와 Starvation을 낮추기 위함 목표 1. Batch System : 가능하면 많은 일을 수행한다. (일을 한개씩 하는 것보다 100개씩 처리하는것이 좋다) 2. Interactive System : 빠른 응답 시간, 적은 대기 시간 3. Real-time System : Deadline Preemptive vs NonPreemtive Preemptive OS가 Cpu를 Process를 선점할 수 있는 경우 강제로 변경 가능하다. NonPreemptive Process Exit , I/O Event가 있을 때 까지는 Process의 실행을 보장하여 준다. Process State ..
-
[OS] - IPCCS/면접준비 2022. 9. 29. 17:22
IPC(Inter-Process-Communication) 독립적 구조를 가진 Process들 끼리 통신해야할 상황을 처리하여 준다. Process는 독립적으로 실행되기 때문에 다른 Process에게 영향을 받지 않는다. Kernel을 이용하여 IPC 설비를 이용해 통신 할 수 있다. Process간의 Data를 동기화 및 보호를 위하여 Semaphore와 mutex를 이용한다. ( 공유된 Resource에 하나의 프로세스만 접근 하는 경우 ) IPC 종류 1. 익명 Pipe Pipe는 2개의 Process를 연결하는데, 하나의 Process에서만 Write가 가능하고 하나의 Process에서는 Read만 가능하다 통신할 Process를 명확히 알 때 사용한다. ( Parent- Child ) 한쪽 방향..
-
[OS] - System call / PCBCS/면접준비 2022. 9. 29. 16:37
System call fork() Process create시 생성되며, Parent Process가 Child Process를 생성한다. exec() Process Create 이후에 사용 가능하며, Process를 실행할 수 있다. wait() Child Process가 실행될 때 까지 대기하는 상태로 Parent는 동작이 불가하다. Process Management 프로세스가 여러개일 때, CPU 스케줄링을 통해 관리하는 것을 말함 이때, CPU는 각 프로세스들이 누군지 알아야 관리가 가능함 프로세스들의 특징을 갖고있는 것이 바로 Process Metadata Process Metadata Process ID Process State Process Priority CPU Registers Owner..
-
[OS] - InterruptCS/면접준비 2022. 9. 29. 16:06
Interrupt Program이 실행 중에 예기치 않은 상황이 발생하였을 때 처리 하기 위함 상황 발생 -> 실행 중인 작업 중단 -> 발생된 상황 처리 지금 수행 중인 일보다 더 중요한 일이(I/O, 우선 순위 연산) 발생하면 해당 일을 먼저 처리해야 한다. Internal/External Interrupt는 CPU의 HW신호에 의해 발생한다. Software Interrupt는 명령어 수행에 의해 발생한다. External Interrupt I/O, Time Device, 전원 등의 외부적인 요인에 의해 발생하는 경우이다. Internal Interrupt Trap이라고 불리며, 잘못된 명령어 혹은 데이터 사용 시 발생 0으로 나누기, Overflow, 명령어 Exception Software In..