프로세스 스케줄링(Process Scheduling)은 여러 프로세스가 CPU를 공정하게 사용할 수 있도록 실행 순서를 결정하는 운영체제의 핵심 기능이다. 이를 통해 CPU를 포함한 시스템 자원의 효율적인 사용과 빠른 응답을 제공하는 역할을 한다. 프로세스의 버스트 (Process Burst)프로세스가 실행될 때, 주로 두 가지 유형의 작업 주기를 거치게 되며, 각각의 주기에서 다른 종류의 자원을 사용한다. 이 두 가지 주기는 CPU Burst 와 I/O Burst 로 나누어 진다. CPU Burst프로세스가 CPU를 가지고 명령을 수행하는 시간프로세스가 I/O 작업을 한번 수행한 후 다음 I/O 작업을 수행하기까지 CPU를 가지고 명령을 수행하는 일련의 작업I/O Burst프로세스가 I/O 장치와 ..
OS
초기의 컴퓨터 시스템은 한 번에 하나의 프로그램만 실행할 수 있었다. 이는 한 번에 하나의 프로그램만 메모리에 적재하고, 그 프로그램을 실행한 후 종료되면 다음 프로그램을 적재하고 실행하는 방식을 사용했다는 뜻이다.반면, 현대의 컴퓨터 시스템은 여러 프로그램을 메모리에 적재하고 동시에(병렬적) 실행할 수 있다. 이로 인해 다양한 프로그램을 제어하고 메모리를 효율적으로 분할할 필요성이 증가하였고, 프로세스라는 개념이 도입되었다. 프로그램 (Program)프로그램(Program)은 컴퓨터에서 실행할 수 있는 명령어들의 집합으로, 기억 장치에 저장되어 파일 시스템에 존재하는 실행 파일이다. 프로그램은 명령어들의 집합일 뿐 그 자체만으로는 아무것도 할 수 없는 수동적인 존재(Passive Entity)이다. ..
프로세스가 실행되기 위해서는 해당 프로그램이 물리적 메모리에 적재(Load) 되어야 하며, CPU는 프로세스 마다 독자적으로 갖는 '논리적 주소'에 근거해 명령을 실행한다. 물리적 주소 - 물리적 메모리에 실제로 적재되는 주소 공간 논리적 주소 - 프로그램이 메모리에 적재 되면 생성되는 프로세스의 독자적인 주소 공간 이를 위해 해당 논리적 주소가 물리적 메모리의 어느 위치에 대응되는지 확인해야 하며, 이렇게 논리적 주소를 물리적 주소에 연결시켜주는 작업을 '주소 바인딩' 이라 한다. Address Binding 주소 바인딩 방식은 바인딩 되는 시점에 따라 아래와 같이 구분된다. Compile Time Binding Load Time Binding Run Time Binding (Execution Time..
프로세스는 기본적으로 비동기적이면서 병행적이다. 이는 여러 프로세스가 동시에 실행되며, 작업 순서를 알 수 없다는 의미다. 때문에 여러 프로세스가 하나의 자원을 동시에 사용한다면 실행 순서에 따라 결과가 달라 질 수 있다. *Race Condition(경쟁 상태) - 여러 프로세스가 공유 데이터에 동시에 접근하여 기대한 실행 결과가 달리지는 상황 상호 배제(Mutual Exclusion)는 어떤 공유 자원에 대하여 한 번에 하나의 프로세스에 접근만 허용하는 상태이다. 임계 영역(Critical Sectipn)은 동시에 하나의 프로세스만이 접근할 수 있는 코드 영역으로 다수의 프로세스가 하나의 공유 자원에 접근하는 경우, 상호 배제를 보장하기 위해서 임계 영역을 구현하여 공유 자원의 접근을 제어한다. 이를..
초기 컴퓨터 시스템은 한 번에 하나의 프로그램만 실행하였다. 반면 현대의 컴퓨터 시스템은 메모리에 다수의 프로그램을 적재하고 동시(병행적)에 실행된다. 따라서 다양한 프로그램 제어 및 메모리 분할의 필요성이 증가하였고, 프로세스라는 개념이 탄생하였다. 프로그램 (Program) 프로그램(Program)은 컴퓨터에서 실행할 수 있는 명령어들의 집합으로, 기억 장치에 저장되어 파일 시스템에 존재하는 실행 파일이다. 프로그램은 명령어들의 집합일 뿐 그 자체만으로는 아무것도 할 수 없는 수동적인 존재(Passive Entity)이다. [프로그램의 메모리 구조]Text(Code) Section실행 코드가 저장되는 영역으로 코드 영역이라고도 부르며, 프로그램에서 정의한 모든 함수의 기계어를 담고 있다.Data ..
보호되어 있는 글입니다.