프로세스관리 5

시스템 호출(System Call)과 주요 종류

1. 시스템 호출(System Call)이란? 운영체제(OS)는 사용자와 하드웨어 사이를 중개하는 역할을 한다. 그런데 사용자가 프로그램을 실행하거나 파일을 열고, 데이터를 전송하고, 프로세스를 종료하는 등의 작업을 수행할 때마다, 운영체제는 어떻게 이를 인식하고 처리할까? 바로 이때 시스템 호출(System Call)이라는 개념이 등장한다. 시스템 호출(System Call)은 사용자 프로그램(User Mode)에서 운영체제 커널(Kernel Mode)의 기능을 요청할 수 있도록 해주는 인터페이스다. 쉽게 말해, 사용자 프로그램이 OS에게 “이거 해줘!”라고 부탁하는 공식적인 창구라고 볼 수 있다.1-1. 왜 시스템 호출이 필요한가? 일반 프로그램은 하드웨어를 직접 제어할 수 없다. 예를 들어, 파일을..

컴퓨터공학 2025.03.27

데드락(Deadlock)이란? 원인과 해결 방법

1. 데드락(Deadlock)이란?데드락(Deadlock, 교착 상태)이란, 두 개 이상의 프로세스가 서로의 자원을 기다리면서 무한히 대기하는 상태를 의미한다.즉, 각 프로세스가 필요한 자원을 다른 프로세스가 점유하고 있어 서로 양보하지 않으면, 영원히 실행되지 못하는 상태가 된다. 운영체제에서는 여러 개의 프로세스가 한정된 시스템 자원을 공유하기 때문에, 적절한 자원 관리가 이루어지지 않으면 데드락이 발생할 수 있음1-1. 쉽게 이해하는 데드락 예시데드락은 실생활에서도 비슷한 사례를 찾아볼 수 있다.📌 예시 1: 교차로에서 마주한 차량들이 서로 길을 양보하지 않는 경우네 방향에서 차량이 교차로에 진입했는데, 모두가 먼저 지나가려다 결국 아무도 움직이지 못하는 상태해결되지 않으면 도로가 마비됨 → 데드..

컴퓨터공학 2025.03.06

컨텍스트 스위칭(Context Switching)의 원리와 성능 최적화

1. 컨텍스트 스위칭이란?컴퓨터 운영체제에서 CPU는 한 번에 하나의 프로세스만 실행할 수 있다. 하지만 현대의 컴퓨터는 멀티태스킹(Multitasking) 환경을 지원하기 때문에, 여러 개의 프로그램이 동시에 실행되는 것처럼 보인다. 그러나 실제로는 운영체제가 빠르게 여러 프로세스를 번갈아가며 실행하는 방식으로 멀티태스킹을 구현한다. 이 과정에서 CPU는 현재 실행 중인 프로세스를 일시 중단하고, 다른 프로세스를 실행해야 하는 경우가 발생하는데, 이를 위해 기존 프로세스의 상태를 저장하고 새로운 프로세스의 상태를 불러오는 작업이 필요하다. 이때, CPU가 현재 실행 중인 프로세스의 정보를 저장하고 새로운 프로세스의 정보를 복원하는 과정을 **컨텍스트 스위칭(Context Switching)**이라고 한..

컴퓨터공학 2025.03.06

프로세스 상태: 생성, 실행, 대기, 종료

1. 프로세스란?컴퓨터에서 프로그램이 실행되면, 운영체제는 해당 프로그램을 **프로세스(Process)**로 관리한다. 즉, 프로세스는 실행 중인 프로그램을 의미하며, CPU와 메모리를 할당받아 동작한다. 운영체제는 컴퓨터의 리소스를 효율적으로 사용하기 위해 여러 개의 프로세스를 동시에 실행할 수 있도록 멀티태스킹(Multitasking) 환경을 제공한다. 이 과정에서 운영체제는 프로세스를 여러 가지 상태로 나누어 관리하며, 각 상태 간 전환이 이루어진다.1-1. 프로세스와 프로그램의 차이많은 사람들이 "프로세스"와 "프로그램"을 혼동하지만, 두 개념은 다르다.  구분 프로그램 프로세스 정의실행 가능한 명령어와 데이터의 집합실행 중인 프로그램저장 위치하드디스크(SSD/HDD)RAM(메모리)실행 여부실..

컴퓨터공학 2025.03.06

프로세스와 스레드의 차이: 개념과 실행 방식

1. 프로세스와 스레드란? 기본 개념 이해컴퓨터에서 프로그램을 실행하면 **프로세스(Process)**가 생성된다.프로세스는 실행 중인 프로그램을 의미하며, 내부에서 여러 개의 **스레드(Thread)**를 가질 수 있다.프로세스(Process): 실행 중인 하나의 독립적인 프로그램스레드(Thread): 프로세스 내에서 실행되는 작업의 단위1-1. 프로세스(Process)의 특징운영체제가 할당하는 독립적인 작업 단위각각의 프로세스는 별도의 메모리 공간을 가짐다른 프로세스와 독립적으로 실행됨1-2. 스레드(Thread)의 특징프로세스 내부에서 실행되는 작은 실행 단위같은 프로세스 내에서는 메모리를 공유함멀티스레딩을 사용하면 동시에 여러 작업을 처리할 수 있음2. 프로세스와 스레드의 차이점 비교 항목 프로..

컴퓨터공학 2025.03.05