목록운영체제 (2)
책을 읽읍시다

이전 글에서 우리는 CPU 스케줄링과 함께 여러 프로세스(또는 스레드)가 동시에 실행되는 환경에 대해 알아보았습니다. 이렇게 여러 실행 단위가 협력하거나 자원을 공유할 때, 공유 데이터(Shared Data)에 대한 접근을 안전하게 관리하는 것은 매우 중요합니다. 잘못 관리하면 데이터가 꼬이고 프로그램 전체가 오작동할 수 있죠. 이번 글에서는 여러 프로세스가 공유 자원에 접근할 때 발생하는 임계 구역(Critical Section) 문제가 무엇인지 정의하고, 이 문제를 해결하기 위한 기본적인 요구 조건과 고전적인 알고리즘들, 그리고 하드웨어 기반의 해결책까지 단계별로 살펴보겠습니다. 마지막에는 이러한 고전적 방법들의 한계를 극복하기 위한 중요한 개념인 세마포어(Semaphore)를 간단히 소개하겠습니다...
운영체제(OS)의 핵심 기능 중 하나인 CPU 스케줄링과, 여러 프로세스가 협력하거나 경쟁할 때 발생하는 문제인 동기화(Synchronization)에 대해 알아보겠습니다. 이 글은 KOCW에 공개된 반효경 교수님의 운영체제 강의 중 CPU 스케줄링 파트 2와 프로세스 동기화 도입 부분을 바탕으로 정리했습니다. 참고 강의 링크: 이화여자대학교 반효경 교수 - 운영체제 (KOCW)스케줄링, 왜 필요할까요? (FCFS의 한계)운영체제 앞에는 다양한 종류의 작업(Job) 또는 프로세스(Process)들이 CPU를 사용하기 위해 줄을 서 있습니다. 가장 간단한 스케줄링 방법은 먼저 온 순서대로 처리하는 FCFS(First Come First Served)입니다. 하지만 이 방식에는 치명적인 단점이 있습니다.FC..