운영체제는 컴퓨터 하드웨어 바로 위에 설치되어, 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 프로그램이다.운영체제의 핵심은 커널이다. 좁은 의미의 운영체제는 커널 자체를 의미하며 넓은 의미로는 커널과 여러 주변 시스템을 다루는 유틸리티를 포함한다.커널은 컴퓨터
프로세스란 무엇인가? 실행중인 프로그램 실행이란 말은 CPU 스케줄러 대상이 된다는 것과 동일 디스크에 있는 프로그램이 메모리에 로드되면 프로세스가 됨 즉, 하나의 프로그램이 여러 프로세스가 될 수 있음 프로세스 생성 과정 PCB가 생성되며(커널 영역에) OS
프로세스의 상태는 실행(RUNNING), 준비(READY), 봉쇄(BLOCKED, WAIT, SLEEP)의 세 가지로 구분할 수 있다.이외에도 생성 중인 상태를 시작(NEW) 상태, 종료 중인 상태를 완료(TERMINATED)라고 부르기도 한다. New프로세스가 생성
1장에서 말했듯 프로세스는 독립된 자원을 할당받음으로 각각 고유의 공간을 가지게 된다. 이 때문에, 다른 프로세스의 자원에 접근하기 위해서는 IPC(Inter-process communication)가 필요하다. 운영체제의 프로세스는 Independent Proc
✅ 스레드(Thread)란? 스레드는 프로그램 내에서 실행되는 최소 단위로, 프로세스의 자원을 공유하여 작업을 수행 프로세스는 컴퓨터 내 작업을 의미하고 스레드는 그 작업 내 존재하는 작은 흐름이다. 스레드는 기본적으로 프로세스의 코드 영역, 데이터 영역, 힙
✅ 경쟁 상태(Race Condition) 경쟁 상태는 여러 프로세스들이 동시에 데이터에 접근하는 상황에서, 어떤 순서로 접근하느냐에 따라 결과 값이 달라질 수 있는 상황 공유 데이터의 동시 접근은 데이터 불일치 문제를 발생시킬 수 있음 따라서 Race Condi
✅ 데드락(Deadlock) _ 데드락이란 일련의 프로세스들이 서로 가진 자원을 기다리며 block 되어 더 이상 진행될 수 없는 상태를 의미한다. (앞서 세마포어에서 발생할 수 있던 문제)_ ✔️ 프로세스의 자원 사용 절차 Request : 자원을 요청하고, 만
✅ Classical Problems of Synchronization ✔️ Producer-Consumer Problem (Bounded-Buffer Problem) 생산자 스레드들과 소비자 스레드들이 있고, 사이에 공유 버퍼가 있다고 가정, 둘 이상의 생산자가