생산자-소비자 문제 두 협력 프로세스 사이에 버퍼를 두고 생산자와 소비자의 상황을 다루는 문제 생산자: 데이터를 넣는 프로세스 소비자: 데이터를 꺼내는 프로세스 생산자-소비자 문제 조건 버퍼에 여러 프로세스가 동시에 접근할 수 없음 버퍼에 데이터를 넣는 동안에는 데이터를 꺼낼 수 없음 버퍼에서 데이터를 꺼내는 동안에는 데이터를 넣을 수 없음 => 상호배제 필요 버퍼의 크기가 유한 (유한 버퍼 문제) 버퍼가 가득 찬 경우 생산자는 대기해야 함 버퍼가 빈 경우 소비자는 대기해야 함 => 동기화 필요 세마포어를 이용한 해결 상호배제: 세마포어 mutex (초깃값 1) 버퍼가 가득 찬 경우 동기화: 세마포어 empty (초깃값 n) n => 버퍼 크기 버퍼가 빈 경우 동기화: 세마포어 full (초깃값 0) 3..
공부/운영체제
병행 프로세스의 개요 병행성(concurrency) 여러 개의 프로세스 또는 스레드가 동시 수행되는 시스템의 특성 병행 프로세스 동시 수행되는 여러 개의 프로세스 또는 스레드 병행 프로세스의 실행 형태 1개의 CPU: 인터리빙 형식 여러 개의 CPU: 병렬처리 형식 CPU가 하나의 프로세스를 담당해 동시에 처리가 가능 강결합 시스템과 약결합 시스템 멀티프로세서 시스템에서의 메모리 구조에 따라 구분 프로세스 간의 관계 독립 프로세스 수행 중인 다른 프로세스에 영향을 주지도 받지도 않음 데이터 및 상태를 다른 프로세스와 공유하지 않음 프로세스의 실행 결정적: 실행결과는 입력에 의해서만 결정됨 재생 가능: 같은 입력에 대해 항상 동일한 실행결과 협력 프로세스 수행 중인 다른 프로세스와 영향을 주고받음 데이터 ..
프로세스 스케줄링스케줄링: 여러 가지 작업의 처리 순서를 결정하는 것 Ex) 프로세스 스케줄링, 디스크 스케줄링 등 프로세스 스케줄링 주어진 프로세스가 여러 개인 경우, 프로세스 처리 순서를 결정하는 것 스케줄링 단계 하위단계 스케줄링준비 큐에 있는 프로세스를 선택하여 사용 가능한 CPU를 할당(디스패치)하는 역할수행 주체: 디스패처 스케줄링 기본 목표공정성: 모든 프로세스가 적정 수준에서 CPU 작업을 할 수 있게 함균형: 시스템 자원이 충분히 활용될 수 있게 함 운영체제의 유형에 따른 스케줄링의 목표일괄처리 운영체제처리량의 극대화 반환 시간의 최소화 CPU 활용의 극대화시분할 운영체제빠른 응답시간, 과도한 대기시간 방지실시간 운영체제처리기한 맞춤 반환시간: 프로세스 생성 시점~종료 시점까지의 소요시간..
프로세스프로세스: 실행 중인 프로그램, 동작을 하는 능동적 개체프로그램: 동작을 하지 않는 정적, 수동적 개체 프로세스는 운영 체제로부터 자원을 할당받아 동작 자원: CPU, 메모리, 입출력 장치, 파일 등 동작: CPU가 프로세스의 명령을 실행 프로세스와 운영체제 운영체제(프로세스 관리자)가 처리하는 작업프로세스 생성 및 종료프로세스를 실행시키기 위한 스케줄링 작업프로세스의 상태 관리 프로세스의 구성메모리 구조프로세스 제어 블록 메모리 구조 프로그램 실행에 직접적으로 필요한 코드와 데이터 프로세스 제어 블록(PCB)운영체제가 프로세스를 관리하기 위해 필요한 정보각 프로세스마다 존재여러 프로세스가 번갈아 실행되는 경우 PCB에 저장된 정보 활용 프로세스 상태 관리프로세스 상태 프로세스 상태 변화 부모 프..
운영체제란? 컴퓨터 시스템의 구성 하드웨어: CPU, 메모리, 저장장치, 입출력장치, 네트워크 장치 등 소프트웨어: 브라우저, PDF 뷰어, PPT, 컴파일러 등 응용 소프트웨어 & 시스템 소프트웨어 응용 소프트웨어: 우리가 직접 다룰 수 있는 부분들 ex) 브라우저, PDF 뷰어, PPT 등 시스템 소프트웨어: 응용 소프트웨어와 하드웨어의 매개체 역할 하드웨어를 관리해주는 역할 ex) 컴파일러, 레지스터, 윈도우즈, 맥 OS, 리눅스 등 운영체제 대표적인 시스템 소프트웨어 컴퓨터 시스템의 자원을 관리하고 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 프로그램들의 모음 운영체제의 역할 컴퓨터 시스템의 자원 관리 자원: 하드웨어 자원, 소프트웨어 자원, 데이터 예: 저장장치에서 데이터 읽어 오기, 키보..