반응형

공부/운영체제 6

[ 운영체제 ] 가상 메모리

1. 연속메모리 할당 1.1 스와핑 메모리에 적재된 프로세스 중에서 현재 실행되지 않는 프로세스들을 임시로 보조기억장치에 쫒아내고 빈공간에 새로운 프로세스를 적재하여 실행하는 방식을 스와핑이라고 한다. 스왑 영역 : 프로세스들이 쫒겨나는 보조기억장치의 영역 스왑 아웃 : 실행되지 않는 프로세스가 메모리에서 스왑영역으로 옮겨지는 것 스왑 인 : 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨 오는 것 1.2 메모리할당 메모리 내에 빈공간이 여러개 있다면 프로세스가 어디에 저장되어야할까? 최초적합 (first fit) : 메모리 내의 빈 공간을 순서대로 검색하다가 첫번째 발견할 공간에 저장하는 방식 최적적합 (best fir) : 검색해 본 후, 프로세스가 적재될 수 있는 공간중 가장 작은 공간에 저장하는 ..

공부/운영체제 2023.02.15

[ 운영체제 ] 교착상태

1. 교착상태 1.1 식사하는 철학자 문제 식사하는 철학자 문제는 교착상태를 설명하는 아주 유명한 문제이다. 동그란 원탁에 다섯명의 철학자가 앉아 있다. 앞에는 음식이 놓여있고 음식은 포크가 두개 있어야 먹을 수 있다. 철학자는 왼쪽포크를 집고 오른쪽 포크를 집고 두개를 집어서 일정시간 식사를 한다. 다먹으면 오른쪽을 내려놓고 왼쪽을 내려놓는다. 이때, 모든 철학자가 동시에 왼쪽 포크를 집으면 아무도 식사할 수 없다. 모두 오른쪽 포크가 생기기를 기다리기만 할 것이다. 하지만 오른쪽 포크는 영영 생기지 않는다. 이렇게 일어나지 않을 사건을 기다리며 진행이 멈춰버리는 현상을 교착상태라고 한다. 일명 deadlock!! 교착상태는 다양한 상황에서 발생한다. 예를 들어 뮤텍스락에서 프로세스A는 lock1를 잠..

공부/운영체제 2023.02.08

[ 운영체제 ] 프로세스 동기화

1. 동기화 1.1 동기화의 의미 동시에 실행되는 많은 프로세스들은 데이터를 주고받으며 실행될 수 있다. 이때의 올바른 실행을 위해서는 동기화가 필요하다. 프로세스 세계에서 동기화란 올바른 순서대로 실행되고 한 자원에 동시에 접근하지 않는 것이다. 특정 조건이 완료되어야 실행을 이어나가는 프로세스들이 있기 때문에 프로세스에서의 실행순서는 중요하다. 또, 한 프로세스가 연산을 다 끝내기 전에 접근해서 다른 연산을 하면 연산이 꼬여서 원하는 결과가 나오지 않을 수 있다. 1.2 생산자와 소비자 문제 왜 한 자원에 동시에 접근하지 않는 것이 중요한지 더 알아보자. 생산자와 소비자는 '총합' 이라는 데이터를 공유한다고 해보자. 생산자는 버퍼에 데이터를 넣고 총합을 1 증가 시키고, 소비자는 버퍼에서 물건을 빼고..

공부/운영체제 2023.02.08

[ 운영체제 ] CPU 스케줄링 개요

1. CPU 스케줄링 개요 운영체제는 CPU를 프로세스들에게 공정하고 합리적으로 배분해준다. 이를 CPU 스케줄링이라고 한다! 1.1 프로세스 우선순위 프로세스는 각각 우선순위를 갖고있다. 우선순위가 높을수록 빨리 처리해야한다는 의미이다. 대표적으로 우선순위가 높은 프로세스에는 입출력작업이 많은 프로세스가 있다. 입출력작업을 할동안은 CPU는 다른 프로세스를 실행시킬 수 있으므로 입출력작업을 먼저 실행시키는 것이 좋다! 비디오 재생이나 디스크 백업작업을 담당하는 프로세스와 같이 입출력이 많은 프로세스를 I/O bound process라고 하고 수학연산, 컴파일, 그래픽 처리와 같이 CPU작업이 많은 프로세스들을 CPU bound process라고 한다. *CPU를 이용하는 작업을 CPU burst 입출력..

공부/운영체제 2023.01.25

[ 운영체제 ] 프로세스와 스레드

1. 프로세스 프로세스란 실행 중인 프로그램이다. 프로그램은 실행되기 전까지는 데이터덩어리지만 프로그램을 메모리에 적재하고 실행하는 순간 프로세스가 된다. 1.1 프로세스 직접 확인하기 프로세스를 직접 확인해보면 내가 실행중인 프로세스 외에도 알 수 없는 프로세스가 실행되고있다. 사용자가 보는 앞에서 실행되는 프로세스는 포그라운드 프로세스라고하고, 뒤편에서 실행되는 프로세스는 백그라운드 프로세스라고 부른다. 이 중에서도 사용자와 상호작용하지 않고 정해진 일만 수행하는 백그라운드 프로세스를 유닉스 체계의 운영체계에서는 데몬, 윈도우 운영체제에서는 서비스라고 부른다. 1.2 프로세스 제어 블록 프로세스가 실행되려면 CPU가 필요하지만, CPU자원은 한정되어있다. 이때문에 프로세스들은 차례대로 돌아가면서 CP..

공부/운영체제 2023.01.17

[ 운영체제] 운영체제 시작하기

1. 운영체제를 알아야하는 이유 우리가 사용하는 모든 컴퓨터에는 운영체제가 설치되어있다. 대표적인 데스크토 운영체제로는 윈도우와 맥, 리눅스가 있고 스마트폰 운영체제로는 안드로이드와 IOS가 있다. 컴퓨터 부품들은 운영체제의 지휘하에 작동한다. 1.1 운영체제란 모든 프로그램은 하드웨어를 필요로한다. 이때 프로그램 실행에 마땅히 필요한 요소들을 가리켜 시스템자원 혹은 자원이라고한다. 컴퓨터구조에서 배웠던 CPU, 메모리 등 모두 시스템 자원이라고 할 수 있다. 여기서 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램이 운영체제이다. 운영체제도 하나의 프로그램이다. 그래서 운영체제 또한 메모리에 적재되어야한다. 하지만 운영체제는 특별하기 때문에 메모리내의 커널영역이라는..

공부/운영체제 2023.01.11
반응형