Computer Science/OS 4

[운영체제/OS] IPC

IPC(Inter Process Communication 프로세스는 독립적으로 실행된다. 이는 다른 프로세스에게 영향을 받지 않는다는 뜻이기도 하다. (스레드는 프로세스 안에서 자원을 공유하므로 영향을 받는다.) 이처럼 독립적인 공간을 가진 프로세스간 통신에 사용되는 기법이 IPC 통신이다. 프로세스는 커널이 제공하는 IPC 설비를 이용해 프로세스간 통신을 할 수 있게 된다. 참고 : https://github.com/WooVictory/Ready-For-Tech-Interview/blob/master/Operating%20System/IPC(Inter%20Process%20Communication).md

[운영체제/OS] Context Switching

Context Switching CPU는 한번에 하나의 프로세스만 처리할 수 있다. 여러 프로세스를 처리해야 하는 상황에서 현재 진행중인 Task(프로세스, 스레드)의 상태를 PCB에 저장하고 다음에 진행할 Task의 상태값을 읽어 적용하는 과정을 말한다. (다른 프로세스에게 CPU를 할당해 작업을 수행하는 과정을 말한다.) 과정 Task의 대부분 정보는 Register에 저장되고 PCB로 관리된다. 현재 실행하고 있는 Task의 PCB 정보를 저장한다. 다음 실행할 Task의 PCB 정보를 읽어 Register에 적재하고 CPU가 이전에 진행했던 과정을 연속적으로 수행할 수 있다. Context Switching은 많은 비용이 소모된다. Cache 초기화 Memory mapping 초기화 커널은 항상 ..

[운영체제/OS] Cache

Overview 기술의 발전으로 프로세서 속도는 빠르게 증가해온 반면, 메모리의 속도는 이를 따라가지 못했다. 프로세서가 아무리 빨라도 메모리의 처리 속도가 느리면 결과적으로 전체 시스템 속도는 느려지게 된다. 이를 개선하기 위한 장치가 바로 캐시(Cache)이다. 캐시는 CPU 칩 안에 들어가는 작고 빠른 메모리이다. 프로세서가 매번 메인 메모리에 접근하여 데이터를 받아오면 시간이 오래 걸리기 때문에 캐시에 자주 사용하는 데이터를 담아두고, 해당 데이터가 필요할 때 프로세서가 메인 메모리 대신 캐시에 접근하도록 하여 처리 속도를 높이는 것이 캐시의 목적이다. 캐시의 지역성 결국, 캐시 메모리는 속도가 빠른 저장 장치와 느린 장치 간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리이다. 이러한 역할..

[운영체제/OS] CPU 스케줄링

CPU 스케줄링 CPU가 하나의 프로세스 작업이 끝나면 다음 프로세스 작업을 수행해야 한다. 이때 어떤 프로세스를 다음에 처리할 지 선택하는 알고리즘을 CPU Scheduling 알고리즘이라고 한다. 따라서 상황에 맞게 CPU를 어떤 프로세스에 배정하여 효율적으로 처리하는가가 관건이다. Preemptive vs Non-Preemptive 1) Preemptive(선점) 프로세스가 CPU를 점유하고 있는 동안 I/O나 인터럽트가 발생하지 않았음에도 다른 프로세스가 해당 CPU를 강제로 점유할 수 있다. 즉, 프로세스가 정상적으로 수행중인 동안 다른 프로세스가 CPU를 강제로 점유하여 실행할 수 있다. 2) Non-Preemptive(비선점) 한 프로세스가 CPU를 점유했다면 I/O나 인터럽트 발생 또는 프..