Computer Sciences/OS(8)
-
6. 교착상태
※ 이 내용은 ‘쉽게 배우는 운영체제’ 책 내용을 바탕으로 작성되었습니다. 교착 상태 교착 상태(dead lock)은 2개 이상의 프로세스가 작업이 끝나기만 기다리며 작업을 더 이상 진행할 수 없는 상태를 말합니다. 교착 상태의 발생 컴퓨터 시스템에서 교착 상태는 다양한 상황에서 발생합니다. 시스템 자원어떤 프로세스가 임계구역으로 보호되는 프린터, 스캐너 등 동시에 사용할 수 없는 자원을 할당받은 후 양보하지 않는 경우 발생할 수 있습니다. 이러한 자원을 필요로 하는 다른 자원은 양보하기 전에는 해당 자원을 사용할 수 없어 작업을 더 이상 진행할 수 없게 됩니다. 공유 변수임계구역 문제를 해결하기 위한 잠금 공유 변수를 사용할 때 교착 상태가 발생할 수 있습니다. 응용 프로그램데이터베이스같은 응용 프로그..
2021.05.03 -
5. 프로세스 동기화
※ 이 내용은 ‘쉽게 배우는 운영체제’ 책 내용을 바탕으로 작성되었습니다. 프로세스는 시스템 내에서 독립적으로 실행되기도 하고 데이터를 주고받으며 협업하기도 합니다. 프로세스 간 통신(IPC)하는 방식도 있는데 이 경우 같은 컴퓨터 뿐만 아니라 다른 컴퓨터와 네트워크를 통해 데이터를 주고받기도 합니다. 프로세스 간 통신의 종류는 다음과 같습니다. 프로세스 내부 데이터 통신: 멀티쓰레드인 경우의 통신입니다. 전역 변수나 파일을 이용하여 데이터를 주고받습니다. 프로세스 간 데이터 통신: 같은 컴퓨터에 있는 서로 다른 프로세스간의 통신입니다. 공용 파일 또는 운영체제가 제공하는 파이프를 사용하여 통신합니다. 네트워크를 이용한 데이터 통신: 여러 컴퓨터가 네트워크로 연결되어 있을 때의 통신입니다. 소켓을 통하여..
2021.05.03 -
4. CPU 스케줄링
※ 이 내용은 ‘쉽게 배우는 운영체제’ 책 내용을 바탕으로 작성되었습니다. 스케줄링 개요 CPU 스케줄링은 어떤 작업에 CPU를 배정할지 결정하는 것을 말합니다. 그리고 이는 CPU 스케줄러가 처리합니다. 스케줄링 여러 프로세스 상황을 고려하여 CPU와 시스템 자원을 어떻게 배정할지 결정하는 일 스케줄링 단계 고수준 스케줄링(장기 스케줄링, 작업 스케줄링) 중간 수준 스케줄링 저수준 스케줄링(단기 스케줄링) 고수준 스케줄링 전체 시스템의 부하를 고려하여 작업을 시작할지 말지를 결정합니다. 일단 작업이 시작되면 시스템 자원을 사용하기 때문에 기존 작업에 영향을 미칩니다. 작업 요청이 오면 스케줄러가 시스템의 상황을 고려하여 작업을 승인할지, 거부할지 결정합니다. 고수준 스케줄링에 따라 시스템에서 동시에 실..
2021.05.03 -
3-3. 프로세스의 연산
1. 프로세스의 구조코드 영역프로그램의 본문이 기술된 곳으로 텍스트 영역이라고도 한다. 프로그래머가 작성한 프로그램은 코드 영역에 탑재되며 탑재된 코드는 읽기 전용으로 처리된다.데이터 영역코드가 실행되면서 사용하는 변수나 파일 등의 각종 데이터를 모아놓은 영역이다. 기본적으로 읽기와 쓰기가 가능하며, 상수는 읽기 전용이다.스택 영역운영체제가 프로세스를 실행하기 위해 부수적으로 필요한 데이터를 모아놓은 곳이다. 스택 영역은 운영체제가 사용자의 프로세스를 작동하기 위해 유지하는 영역이므로 사용자에게는 보이지 않는다.2. 프로세스의 생성과 복사프로세스는 프로그램을 실행할 때 새로 생성된다. 사용자가 프로그램을 실행하면 운영체제는 프로그램을 메모리로 가져와 코드 영역에 넣고 PCB를 생성한다. 그리고 메모리에 ..
2021.05.02 -
3-2. PCB와 문맥 교환
1. PCBPCB는 프로세스를 실행하는 데 필요한 중요한 정보를 보관하는 자료구조로, TCB(Task Control Block)이라고도 한다. 모든 프로세스는 PCB를 가지며, PCB는 프로세스 생성 시 만들어져서 프로세스가 실행을 완료하면 폐기된다.구성포인터: PCB의 첫 번째 블록에 저장된다. 준비 상태나 대기 상태는 큐로 운영되는데, PCB를 연결하여 준비 상태나 대기 상태의 큐를 구현할 때 포인터를 사용한다.프로세스 상태: 생성, 준비, 실행, 대기, 보류 준비, 보류 대기 등이 있다. 즉 프로세스가 현재 어떤 상태에 있는지 나타내며, PCB의 두 번째 블록에 저장된다.프로세스 구분자: 운영체제 내에 있는 여러 프로세스를 구별하기 위한 구분자를 저장한다.프로그램 카운터: 다음에 실행될 명령어의 위..
2021.05.02 -
3-1. 프로세스의 개요
개념프로세스(Process)는 프로그램이 실행을 위해 메모리에 올라온 동적인 상태이다. 그리고 프로세스는 실행한다고 표현한다. 이는 프로그램으로 작성된 작업 절차를 실제로 실행에 옮긴다는 의미이다. 프로세스는 컴퓨터 시스템의 작업 단위로 태스크(Task)라고도 부른다.프로그램→프로세스운영체제는 프로그램을 메모리의 적당한 위치로 가져온다.그와 동시에 프로세스 제어 블록(Process Control Block, PCB)을 만든다. 이는 운영체제 영역에 만들어진다. 프로세스가 종료되면 프로세스가 메모리에서 제거되고 PCB도 폐기된다.운영체제도 프로그램이기 때문에 부팅 시에 운영체제 프로세스가 실행되고, 그 후에 일반 프로세스가 실행되므로 컴퓨터에는 일반 사용자의 사용자 프로세스와 운영체제의 커널 프로세스가 섞..
2021.05.02