대학원 일기

프로세스와 스레드 본문

School/Operation System

프로세스와 스레드

대학원생(노예) 2023. 10. 31. 11:45

프로그램은 컴퓨터가 수행할 작업을 기록해놓은 것을 뜻합니다. 프로그램이 실제로 실행될 때 운영체제는 이를 프로세스(process) 라는 단위로 관리합니다. 즉, 운영체제는 프로세스 단위로 메모리와 CPU 연산 등 컴퓨팅 자원을 분배합니다.

  • 메모리 관리: 운영체제는 프로세스에 실제 메모리의 일부를 가상 메모리(virtual memory)로 떼어서 제공함으로써, 프로세스가 컴퓨터의 메모리 전체에 접근할 수는 없도록 하고 다른 프로세스의 메모리 또는 운영체제 자체가 사용하고 있는 커널 메모리를 훔쳐볼 수 없도록 합니다. 이것을 운영체제의 중요한 보안 기제 중 하나인 프로세스 격리(process isolation)라고 부르며, 다른 프로세스의 메모리에는 접근할 수 없기 때문에 프로세스들이 서로 소통하기 위해서는 별도로 허용된 프로세스 간 통신 (Inter-Process Communication, IPC) 기법들을 사용해야 합니다.
  • CPU 자원 관리: 메모리는 주소로서 프로세스에 제공되지만, CPU 연산의 경우 코어 단위로 프로세스에 제공됩니다. 프로세스는 스레드(thread) 라는 단위로 코어를 하나씩 사용할 수가 있는데, 하나의 프로세스가 시작되면 기본적으로 하나의 스레드를 가지고 있습니다. 하지만 개발자는 프로그램이 더 많은 스레드를 사용하도록 설계하여 다중 CPU 코어의 이점을 극대화할 수 있습니다.

프로세스는 운영체제가 메모리를 할당하는 작업단위라면, 스레드는 프로세스가 할당받은 메모리를 활용하는 실행단위입니다.
하나의 프로그램 안에서 여러개의 프로세스를 활용하는 것을 멀티프로세싱(Multiprocessing) , 하나의 프로세스 안에서 여러개의 스레드를 활용하는 것을 멀티스레딩(Multithreading) 이라고 합니다.

 

'School > Operation System' 카테고리의 다른 글

운영체제 연습문제(6, 7, 8, 9장)  (0) 2022.06.11
운영체제 8장  (0) 2022.06.09
운영체제 7장  (0) 2022.06.09
운영체제 6장  (0) 2022.06.08
Chapter 05 프로세스 동기화  (0) 2022.04.16
Comments