선점 방식은 실행중인 프로세스를 강제로 중단시키고 CPU 소유권을 할당하는 방식을 의미합니다.
System Call, Time Quantum, Interrupt 등에 의해 선점이 일어납니다.
여기서 System Call이란 Software Interrupt의 일종으로 응용 프로그램 요청에 따라 커널에 접근하기 위한 인터페이스입니다.
Time Quantum이란 CPU에게 허용된 한 싸이클의 시간을 의미하며 Interrupt는 CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것을 말합니다. 크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 나뉩니다.
비선점 방식은 프로세스가 스스로 CPU 소유권을 포기하는 방식이며, 강제로 프로세스를 중지하지 않는 방식을 의미합니다.
동시성은 여러 작업이 시간을 나누어 사용하기에 마치 "동시에 실행하는 것처럼" 보이게 하는 기술입니다. 단일 CPU에서 여러 작업을 번갈아가며 처리하며 작업들이 동시에 진행되는 것처럼 만들기 때문입니다.
반면에 병렬성은 여러 작업을 동시에 실행하여 처리 속도를 높이는 기술입니다. 실제로 여러 CPU나 코어를 사용하여 여러 작업을 실제로 동시에 실행하기 때문입니다.
인터럽트는 CPU가 특정 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할 때 사용할 수 있는 기능입니다. 컴퓨터는 대부분 CPU 1개를 사용하기에 한 순간에는 하나의 일밖에 처리할 수 없으나 도중에 우선 순위가 급한 일을 처리할 필요가 있을 때 대처할 수 있는 방안이 필요합니다.
인터럽트에는 외부 인터럽트와 내부 인터럽트가 있고 외부 인터럽트는 주로 하드웨어 인터럽트라고도 불리며 내부 인터럽트는 주로 소프트웨어 인터럽트라고도 불립니다.
OS는 다양한 서비스 들을 수행하기 위해 하드웨어를 직접적으로 관리합니다. 이와 반면 응용 프로그램은 OS가 제공하는 인터페이스를 통해서만 자원을 사용할 수 있습니다. OS가 제공하는 이러한 인터페이스를 '시스템 콜 (system call)' 이라고 합니다. 시스템 콜은 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 수행할 수 있도록 도와줍니다.
보통 레지스터, 캐시, RAM을 주기억장치라고 부르는데 CPU는 가장 빠른 메모리로 CPU 계산과정 일부로 쓰이고 캐시메모리는 레지스터 다음으로 빠른 메모리이며 RAM은 주기억장치로 휘발성 메모리이고 셋 중 가장 느리지만 SSD, HDD에 비해서는 월등히 빠릅니다. HDD는 하드디스크로 보조기억장치이며 비휘발성 메모리입니다.
물리적 메모리의 종류가 많은 이유는, 접근 속도에 따른 차이를 두기 위해서입니다.
각각의 프로세스는 독립된 메모리 공간을 갖고 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제한이 걸려있습니다. 오로지 운영체제만이 메모리 접근에 제약을 받지 않기 때문에 운영체제에서 메모리를 관리하고 있습니다.
특히 운영체제는 실행파일이 로더에 의해 메모리로 올라오면 이 실행파일을 메모리의 어느 부분에 올릴지를 결정합니다.
운영체제는 Swapping, Paging, Segmentation, Memory Pool 등의 기법을 활용하여 메모리 관리를 수행할 수 있습니다.