본문 바로가기

🖥️ Computer Science7

프로세스와 스레드 정리 01_프로세스의 개요 프로세스의 개념 프로그램 저장장치에 저장 된 정적 상태 프로세스 실행 중인 프로그램 하나의 작업 단위 실행을 위해 메모리에 올라온 동적 상태 요사 모형에의 비유 일괄 작업 방식 한 번에 하나만 작업 처리 작업 효율이 떨어진다. 시분할 방식 여러 개의 작업에선 일괄 작업 방식이 비효율적이다. 시간을 적당히 배분하여 CPU 1개가 여러 프로세스를 동시 처리 예상 치 못한 상황 처리 작업을 마무리 하지 못한 상황에서 다른 작업을 처리하는 상황 발생 프로그램 -> 프로세스 전환 프로세스가 될 때 프로그램은 메모리에 올라 온다. 이 때, 작업 지시서인 프로세스 제어 블럭 이 만들어진다. 프로세스를 처리하는데 필요한 다양한 정보가 들어 있다. 프로그램이 프로세스가 되었다는 것은 프로세스 제어 .. 2024. 3. 3.
[쉽게 배우는 운영체제] ch.7 물리 메모리 관리 - 연습 & 심화 문제 연습 문제 1. 소스코드를 한 번에 번역하지 않고 한 행씩 번역하여 실행하는 방식을 무엇이라 하는가? 인터프리터 방식 2. 프로그래머가 C나 자바로 소스코드를 작성하여 컴파일하면 일차적으로 만들어지는 코드는 무엇인가? 목적코드 3. 컴파일할 때 코드에 라이브러리를 연결하지 않고 코드를 실행할 때 라이브러리를 가져와 실행하는 방식을 무엇이라 하는가? 동적 라이브러리 (DLL) 4. 메모리 관리 정책 중 메모리가 꽉 찼을 때 메모리에 있는 어떤 프로세스를 내보낼지 결정하는 것은 무엇인가? 재배치 정책 5. 32bit CPU를 사용하는 컴퓨터가 가질 수 있는 물리 메모리의 최대 크기는 얼마인가? 4GB 메모리 주소 레지스터 크기 : 32GB 표현 범위 : 0 ~ 232 이므로 총 크기 232byte = 32G.. 2022. 11. 6.
[쉽게 배우는 운영체제] ch.6 프로세스 동기화 - 연습 & 심화 문제 연습 문제 1. 2개 이상의 프로세스가 서로의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태를 무엇이라 하는가? 교착 상태 (dead lock) 2. 프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는지를 나타내는 방향성이 있는 그래프? 자원 할당 그래프 (resource allocation graph) 3. 네 가지 교착 상태 필요조건에 대한 설명 상호 배제 (mutual exclusion) : 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적 자원이어야 함. 비선점 (non-preemption): 한 프로세스가 사용중인 자원은 다른 프로세스가 빼앗을 수 없는 비선점 자원이어야 한다. 점유와 대기 (hold and wait): 프로세스가 어떤 자원을 할당 .. 2022. 11. 6.
[쉽게 배우는 운영체제] ch.5 프로세스 동기화 - 연습 & 심화 문제 연습 문제 1. 프로세스 간 통신에서 데이터를 양방향으로 전송 가능하지만 동시 전송은 불가능하고 특정 시점에 한쪽 방향으로만 전송할 수 있는 통신 방식? 반양방향 통신 2. 상태 변화를 살펴보기 위해 반복문을 무한 실행하며 기다리는 것? 바쁜 대기 (busy waiting) 자원 낭비의 예시 3. 프로세스 간 통신에서 대기가 없는 통신과 대기가 있는 통신의 예 대기 x : 전역 변수, 파일 방식 대기 o : 파이프, 소켓 방식 4. 파이프를 이용하영 통신할 때 파이프를 2개 사용하는 이유? 양방향 통신을 하기 위함이다. 서로 다른 프로세스가 각각 하나의 파이프를 읽고 쓴다. 5. 공유 자원을 병행적으로 읽거나 쓰는 상황? 경쟁 조건 (race condition) 6. 공유 자원의 접근 순서에 따라 실행 .. 2022. 11. 4.
[쉽게 배우는 운영체제] ch.4 CPU 스케줄링 - 연습 & 심화 문제 연습 문제 1. 프로그램이 프로세스가 되려면 운영체제로부터 무엇을 받는지? 프로세스 제어 블록(Process Control Block) 2. 프로세스의 상태 중 CPU를 할당받기 위해 기다리는 상태 준비 상태(Ready Status) 3. 프로세스의 상태 중 입출력 작업을 하기 위해 이동하는 상태 대기 상태(Blocking Status) 4. CPU 스케줄러가 준비 상태에 있는 프로세스 중 하나를 골라 CPU를 할당하는 작업 실행 상태(Runnung Status) 5. 유닉스에서 Ctrl+Z 를 눌러 프로세스가 중단되면 프로세스는 어떤 상태로 바뀌는지? 휴식 상태(Pause Status) 6. 실행 상태에서 하나의 프로세스가 나가고 새로운 프로세스가 들어오는 상황 문맥 교환(Context Switchin.. 2022. 11. 4.
[쉽게 배우는 운영체제] ch.3 프로세스와 스레드 - 연습 & 심화 문제 연습 문제 1. 프로그램이 프로세스가 되려면 운영체제로부터 무엇을 받는지? 프로세스 제어 블록(Process Control Block) 2. 프로세스의 상태 중 CPU를 할당받기 위해 기다리는 상태 준비 상태(Ready Status) 3. 프로세스의 상태 중 입출력 작업을 하기 위해 이동하는 상태 대기 상태(Blocking Status) 4. CPU 스케줄러가 준비 상태에 있는 프로세스 중 하나를 골라 CPU를 할당하는 작업 실행 상태(Runnung Status) 5. 유닉스에서 Ctrl+Z 를 눌러 프로세스가 중단되면 프로세스는 어떤 상태로 바뀌는지? 휴식 상태(Pause Status) 6. 실행 상태에서 하나의 프로세스가 나가고 새로운 프로세스가 들어오는 상황 문맥 교환(Context Switchin.. 2022. 11. 2.
[쉽게 배우는 운영체제] ch.2 컴퓨터의 구조와 성능 - 연습 & 심화 문제 연습 문제 1. CPU의 구성? 명령어를 해석하고 실행하는 장치 산술논리 연상 장치 제어 장치 레지스터 2. 폰노이만 구조의 가장 중요한 특징 모든 프로그램이 메모리에 올라와야 실행이 가능하다는 점 3. 버스의 종류 제어 버스 제어장치와 연결된 버스 주로 제어 명령을 전달 양방향으로 작업 완료, 오류 신호 등등 주소 버스 메모리 주소 레지스터와 연결 위치 정보(주소)를 전달 단방향 데이터 버스 메모리 버퍼 레지스터와 연결 양방향 4. 단방향 버스 한 방향으로만 신호를 전송할 수 있는 버스 신호를 "줄" 경우에 사용 5. 다음 실행할 명령어의 주소를 가지고 있는 레지스터 프로그램 카운터 (PC) 실행할 명령어의 주소를 기억하고 있다가 제어장치에 알려줌 주소를 카리키므로 명령어 포인터(Instruction .. 2022. 11. 1.
반응형