CS/운영체제 6

폰 노이만 구조

목표 폰 노이만 구조를 이해할 수 있다. 폰 노이만 구조의 장단점을 이해할 수 있다. 1. 애니악(ENIAC) 폰 노이만 구조가 나오기 전에는 애니악이라는 컴퓨터가 주로 이용되었습니다. 애니악은 계산을 할 때마다 손으로 직접 진공관의 회로 스위치를 다시 조정하여 새 입력을 처리하는 하드웨어 프로그램 방식입니다. 2. 폰 노이만 구조 폰 노이만 구조는 중앙처리장치(CPU), 메모리, 프로그램 세 가지 요소로 구성되어 있습니다. CPU와 메모리는 서로 분리되어 있고 둘을 연결하는 버스를 통해 명령어 읽기, 데이터 읽기 및 쓰기가 가능합니다. 메모리 안의 프로그램과 데이터 영역은 물리적 구분이 없기 때문에 같은 메모리와 버스를 사용합니다. 따라서 CPU가 명령어와 데이터에 동시 접근할 수 없습니다. 폰 노이만..

CS/운영체제 2021.01.21

동기와 비동기, 블로킹과 논블로킹

목표 동기와 비동기의 개념을 이해할 수 있다. 블로킹과 논블로킹의 개념을 이해할 수 있다. 동기/비동기와 블로킹/논블로킹의 차이점을 설명할 수 있다. 동기/비동기 동기/비동기는 작업을 수행하는 주체 간의 시간적 연관성과 관련된 작업입니다. 이때 작업을 수행하는 주체 사이에 시간적 연관성이 있으면 동기, 연관성이 없으면 비동기입니다. 동기(Synchronous) 요청과 그 결과가 동시에 일어나는 작업입니다. 여기서 말하는 동시란 요청하는 순간 결과가 바로 나와야 한다는 뜻이 아니라 요청과 결과가 한 자리에서 동시에 일어남을 의미합니다. 작업을 수행하는 주체들이 서로 동시에 수행하거나, 동시에 끝나거나, 하나의 수행 결과가 다른 수행 결과의 시작점이 되는 작업입니다. 비동기(Asynchronous) 요청과 ..

CS/운영체제 2021.01.07

스케줄링이란?

목표 장기, 중기, 단기 스케줄러를 설명할 수 있다. 스케줄링의 비교 척도를 이해할 수 있다. 선점 스케줄링과 비선점 스케줄링의 차이점을 설명할 수 있다. 다양한 스케줄링의 장단점을 설명할 수 있다. 스케줄링이란? 스케줄링의 넓은 의미는 자원을 효율적으로 사용하기 위해 자원을 사용하는 순서를 결정짓는 작업입니다. 대부분 스케줄링이라고 하면 프로세스의 순서를 결정짓는 작업이라고 생각하는데 이는 스케줄링 중 단기 스케줄링에 해당하는 설명이다. 그렇다면 장기, 중기 스케줄링은 무엇인지 알아보도록 하겠습니다. 장기 스케줄러(Long-Term) 메모리와 디스크 사이의 스케줄링을 담당합니다. 실행할 작업을 준비 큐에서 꺼내 메인 메모리에 적재합니다. 메인 메모리에 적재된 프로세스의 양을 판단하여 조절하는 역할을 합..

CS/운영체제 2021.01.06

식사하는 철학자 문제(Dining Philosopher Problem)

목표 식사하는 철학자 문제를 해결할 수 있다. 식사하는 철학자 문제란? 철학자 다섯 명이 원형 식탁에 앉아 밥을 먹으려고 합니다. 그들의 양쪽엔 각각 젓가락 한 짝씩 놓여 있고, 밥을 먹으려 할 땐 다음의 과정을 따릅니다. 왼쪽 젓가락부터 집어 듭니다. 다른 철학자가 이미 왼쪽 젓가락을 쓰고 있다면 그가 내려놓을 때까지 대기합니다. 왼쪽을 들었으면 오른쪽 젓가락을 듭니다. 들 수 없다면 대기합니다. 두 젓가락을 모두 들었다면 일정 시간 동안 식사를 합니다. 식사를 마쳤으면 오른쪽 젓가락을 내려 놓은 후 왼쪽 젓가락을 내려놓습니다. 다시 배고프면 1번부터 진행합니다. 철학자는 프로세스 젓가락은 자원으로 가정한 후 모든 철학자가 왼쪽 젓가락을 들은 상황을 가정해봅시다. 그렇다면 모든 철학자는 오른쪽 젓가락을..

CS/운영체제 2021.01.05

교착 상태(Deadlock)

목표 교착 상태 개념을 설명할 수 있다. 교착 상태가 발생하기 위한 필요충분조건을 이해할 수 있다. 교착 상태 해결 방법을 설명할 수 있다. 교착 상태란? 교착 상태란 두 개 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미합니다. 결과적으로 아무것도 완료되지 못하는 상태를 가리킵니다. 교착 상태 필요충분조건 상호배제(Mutual Exclustion) 한번에 한개의 프로세스만 공유 자원을 사용할 수 있어야 한다. 점유와 대기(Hold and Wait) 최소한 하나의 자원을 점유한 상태에서 이미 다른 프로세스에 할당되어 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야합니다. 비선점(Non-preemption) 다른 프로세..

CS/운영체제 2021.01.05

프로세스와 스레드

Goal 1. 프로세스와 스레드의 개념을 설명할 수 있다. 2. 프로세스와 스레드의 차이를 이해할 수 있다. 3. 멀티 프로세스와 멀티 스레드의 장단점을 이해할 수 있다. 프로그램(Program) 프로세스와 스레드의 개념을 알아보기 전에 프로그램에 대한 이해가 필요하다. • 정의 - 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태 - 프로그램은 운영체제가 실행되기 위한 메모리 공간을 할당해 줘야 실행될 수 있다. - 프로그램을 실행하는 순간 해당 파일은 메모리에 올라가게 되고, 이 상태를 동적인 상태 혹은 프로세스라고 한다. 프로세스(Process)란 • 정의 - 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 - 운영체제로부터 시스템 자원을 할당받은 작업의 단위 • 특징..

CS/운영체제 2020.12.29