Operating System & Computer Architecture
23개 글
- Completely Fair Scheduler스케줄러의 근본적인 과제는 한정된 CPU 시간을 여러 태스크에 배분하는 것이다.
- Container컨테이너(container)란 호스트 OS의 커널을 공유하면서, 파일 시스템·네트워크·프로세스 ID 등을 격리하여 독립된 실행 환경을 제공하는 기술이다.
- Context Switch컨텍스트(context)란 CPU가 특정 태스크의 실행을 재개하기 위해 필요한 모든 상태 정보의 총합이다.
- Earliest Eligible Virtual Deadline FirstCFS의 태스크 선택 원칙은 "레드-블랙 트리의 가장 왼쪽에 위치한 노드(최소 vruntime)를 고른다"로 요약된다.
- exec()exec()이라는 이름을 가진 함수는 사실 존재하지 않는다.
- fork()fork()를 호출하면 현재 프로세스에서 파생된 새로운 프로세스가 생긴다.
- Hypervisor가상 머신을 만들고 관리하는 소프트웨어를 하이퍼바이저[^hypervisor]라 부른다.
- Inter-Process Communication프로세스는 운영체제가 부여한 독립된 주소 공간 안에서 실행된다.
- Linux Shell리눅스는 1960년대에 시작된 유닉스(Unix) 운영체제의 후신으로, 셸(shell)을 비롯해 유닉스로부터 정말 많은 부분을 이어받은 운영체제다.
- Monitor세마포어는 정수 변수와 두 개의 원자적 연산(P/V, 또는 wait/signal)만으로 상호 배제와 실행 순서 제어를 모두 구현할 수 있는 범용 동기화 프리미티브다.
- Non-Unified Memory AccessNUMA(Non-Unified Memory Access)는 멀티프로세서 시스템에서 메모리 접근 지연이 프로세서와 메모리의 물리적 위치 관계에 따라 달라지는 메모리 아키텍처를 말한다.
- OverlayFS유니언 파일 시스템union filesystem이란 여러 디렉토리 트리를 하나의 디렉토리로 합쳐서 보여주는 파일 시스템이다.
- Process프로세스가 무엇인지를 깊이 이해하기 위해서는, 이 개념이 컴퓨터와 함께 어떻게 발전해왔는지를 살펴보는 것이 도움이 된다.
- Process Control Block오늘날 컴퓨터에서는 수많은 프로세스가 CPU를 번갈아 사용한다.
- Scheduler프로세서보다 프로세스가 많은 상황에서는 어떤 프로세스가 CPU를 사용하고 어떤 프로세스가 기다릴지를 결정해야 한다.
- Semaphore세마포어(Semaphore)는 음이 아닌 정수 변수 $S$와, 이 변수에 대해 수행할 수 있는 두 개의 원자적 연산 $P$와 $V$로 구성되는 동기화 프리미티브다(Dijkstra, 1965).
- System Call현대 운영체제는 CPU의 이중 모드dual mode[^dual-mode]를 활용하여 커널과 사용자 프로그램을 분리한다.
- Thread스레드는 프로세스 내부의 독립적인 실행 흐름이다(Silberschatz, Galvin and Gagne, 2018).
- Translation Lookaside Buffer오늘날 모든 프로세스는 가상 주소virtual address를 사용하며, MMU(Memory Management Unit)가 페이지 테이블을 참조하여 가상 주소를 물리 주소로 변환한다.
- Unified Memory AccessUMA(Unified Memory Access)는 멀티프로세서 시스템에서 모든 프로세서가 공유 메모리에 균일한 지연 시간으로 접근하는 메모리 아키텍처를 말한다.
- Virtual Machine가상머신Virtual Machine, VM이란 소프트웨어로 구현된 컴퓨터다.
- Virtualization가상화Virtualization을 이해하기 위해서는 가상 메모리Virtual Memory, 그리고 가상 메모리와 대비되는 개념인 물리 메모리Physical Memory를 이해해야 한다.
- 프로세스 종료프로세스 종료는 자발적 종료와 비자발적 종료로 나뉜다.