CS/Operating System 8

쉽게 배우는 운영체제: 교착 상태 연습문제

01. 2개 이상의 프로세스가 서로의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태를 무엇이라 하는가? 교착 상태(dead lock) 02. 프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는지를 나타내는 방향성이 있는 그래프를 무엇이라 하는가? 자원 할당 그래프 03. 네 가지 교착 상태 필요조건에 대해 설명하시오. 상호 배제, 비선점(non-preemption), 점유와 대기, 원형 대기 상호 배제: 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이어야 한다. 비선점: 한 프로세스가 사용 중인 자원은 중간에 다른 프로세스가 빼앗을 수 없는 비선점 자원이어야 한다. 점유와 대기: 프로세스가 어떤 자원을 할당받은 상태에서 다른 자원을 기다리는 상태여..

CS/Operating System 2022.08.11

쉽게 배우는 운영체제: 프로세스 동기화 연습문제

01. 프로세스 간 통신에서 데이터를 양방향으로 전송 가능하지만 동시 전송은 불가능하고 특정 시점에 한쪽 방향으로만 전송할 수 있는 통신 방식은 무엇인가? 반양방향 통신. Ex:) 무전기 02. 상태 변화를 살펴보기 위해 반복문을 무한 실행하며 기다리는 것을 무엇이라 하는가? busy waiting(바쁜 대기). 이를 구현한 것이 스핀 락. 03. 프로세스 간 통신에서 대기가 없는 통신과 대기가 있는 통신의 예를 각각 제시하시오. 대기가 없는 통신은 동기화를 지원하는 통신으로 파이프, 소켓이 있다. 대기가 있는 통신은 동기화를 지원하지 않는 통신 방식으로 전역 변수, 파일이 있다. 04. 파이프를 이용하여 통신할 때 파이프를 2개 사용하는 이유는 무엇인가? 파이프로 양방향 통신을 구현하기 위해서이다. 0..

CS/Operating System 2022.08.04

쉽게 배우는 운영체제: 프로세스와 스레드 심화문제

01. 프로세스 상태도를 그리시오. 02. 프로세스의 상태 중 휴식 상태와 보류 상태에 대해 설명하시오. 휴식 상태는 프로세스가 작업을 일시적으로 쉬고 있는 상태이며, 유닉스에서 프로그램을 실행하는 도중에 Ctrl + Z 키를 누르면 볼 수 있다. 휴식 상태의 경우 사용하던 데이터가 메모리에 그대로 있고 프로세스 제어 블록도 유지되므로 프로세스는 멈춘 지점에서부터 재시작할 수 있다. 만약 프로세스가 작업을 일시적으로 쉬는 것이 아닌, 프로그램 자체가 강제로 종료되면 프로세스가 종료되어 메모리에서 쫓겨나고 프로세스 제어 블록도 사라지기 때문에 사용하던 데이터를 잃어버린다. 이렇게 종료된 프로세스는 처음부터 다시 시작해야 한다. 보류 상태(일시 정지 상태)는 프로세스가 메모리에서 잠시 쫓겨난 상태이다. 프로..

CS/Operating System 2022.07.26

쉽게 배우는 운영체제: 프로세스와 스레드 연습문제

01. 프로그램이 프로세스가 되려면 운영체제로부터 무엇을 받아야 하는가? 운영체제로부터 프로세스 제어 블록(PCB)을 받아야 한다. 02. 프로세스의 상태 중 CPU를 할당받기 위해 기다리는 상태는 무엇인가? 준비 상태이다. 준비 상태: 생성된 프로세스가 CPU를 얻을 때까지 기다리는 상태이다. CPU가 하나인 컴퓨터에서는 한 번에 하나의 프로세스만 실행할 수 있기 때문에 자기 실행 순서가 될 때까지 준비 상태에서 기다려야 한다. 03. 프로세스의 상태 중 입출력 작업을 하기 위해 이동하는 상태는 무엇인가? 대기 상태이다. 입출력을 요구한 프로세스가 입출력이 완료될 때까지 기다리는 상태를 대기 상태라고 한다. 이는 작업의 효율성을 높이기 위해 입출력을 요청한 프로세스를 실행 상태에 두지 않고 대기 상태로..

CS/Operating System 2022.07.26