운영체제
-
공유자원과 임계구역운영체제 2022. 3. 31. 00:05
공유자원과 임계구역의 개념 공유자원(shared resource) 여러 프로세스가 공동으로 사용하는 변수, 메모리, 파일 등을 말한다. 각 프로세스가 언제 데이터를 읽고 쓰냐에 따라 결과가 달라질 수 있다. 다음 예시를 살펴보자. 예금이 원래 10만원이 있는데, P1에서 10만원, P2에서 5만원을 예금하는 상황이다. 정상적으로는 25만원이 예금되어 있어야 하지만, P1에서 P2가 실행된 이후의 예금 결과를 반영하지 않고 덮어쓰게 되어 20만원이 예금되어 있게 된다. 이와 같이 한 프로세스에서 공유 자원에 대한 사용이 끝나지 않았는데, 다른 프로세스에서도 공유 자원에 접근할 경우 예상과는 다른 결과가 나올 수 있기 때문에 주의해야 한다. 위 예시처럼 2개 이상의 프로세스가 공유 자원에 병행적으로 접근하는..
-
인터럽트 처리운영체제 2022. 3. 28. 23:34
인터럽트(interrupt)의 개념 인터럽트의 도입 배경 과거 컴퓨터의 경우 입출력장치가 거의 없어서 운영체제가 주기적으로 입출력장치를 직접 확인함으로써 입출력을 직접 처리했는데, 이 방식을 폴링(polling)이라 한다. 그러나 입출력장치가 다양해지면서 운영체제가 모든 입출력장치를 직접 관리하기 어려워졌다. 그래서 운영체제에서 입출력을 요청하고, 입출력이 완료되면 입출력장치가 이벤트를 발생시켜 처리하도록 알리는 방식을 사용하는데, 이를 인터럽트라 한다. 인터럽트란? CPU가 프로그램을 실행하고 있을 때, 예외상황이 발생할 경우 이를 CPU에 알려 처리할 수 있게 하는 신호를 말한다. 예외상황이란, 입출력장치에서의 입출력 뿐만 아니라, 프로그램에서의 에러 등 말 그대로 예외적인 상황을 모두 포함한다. 인..
-
스케줄링 알고리즘운영체제 2022. 3. 25. 21:24
스케줄링 알고리즘 평가 기준 기준 설명 CPU 사용률 전체 시스템 동작 시간 중 CPU가 사용된 시간 처리량 단위 시간당 작업을 마친 프로세스의 수 대기 시간 작업을 요청한 프로세스가 작업을 시작하기 전까지 대기하는 시간 응답 시간 프로세스 시작 후 첫번째 출력 또는 반응이 나올 때 까지 걸리는 시간 실행 시간 프로세스가 실제로 실행된 시간 반환 시간 프로세스가 생성된 후 종료될 때까지 걸리는 시간 (대기 시간 + 실행 시간) CPU 사용률, 처리량은 계산이 어렵기 때문에 나머지 4가지 기준을 계산한다. 그리고 알고리즘 성능 평가에는 주로 평균 대기 시간을 이용한다. 그러나 이 기준도 알고리즘의 절대적인 성능을 보여주는 지표는 아니다.\ 알고리즘 평가용 예시 도착 순서 도착 시간 작업 시간 P1 0 30..
-
다중 큐(multiple queue)운영체제 2022. 3. 24. 12:40
준비 상태의 다중 큐 여러 우선순위를 가진 프로세스들을 한 큐에 넣는 경우, 매번 가장 높은 우선순위의 프로세스를 찾아서 실행해야 하지만, 우선순위 별로 큐를 만들어 놓는 경우 그럴 필요가 없어서 편리하다. 우선순위 배정 방식 고정 우선순위 방식 프로세스에게 처음에 우선순위를 부여하면 끝까지 바뀌지 않는 방식이다. 구현이 쉽지만 시스템의 변화에 대응이 어려워 작업 효율이 떨어진다. 변동 우선순위 방식 작업 중간에도 우선순위가 변하는 방식이다. 구현이 어렵지만 시스템의 효율성을 높일 수 있다. 반전 우선순위(priority invasion) 프로세스가 기존에 가지던 낮은 우선순위를 높은 우선순위로 바꾸는 것이다. 중요한 자원을 사용하는 프로세스에게 높은 우선순위를 부여하여 빨리 실행을 마치게 하면, 해당 ..
-
스케줄링 개요운영체제 2022. 3. 22. 21:07
스케줄링 단계 고수준 스케줄링(high-level scheduling) 전체 시스템의 상황, 부하를 고려하여 작업을 시작할지 말지를 결정함으로써, 전체 작업의 수를 결정하는 것을 말한다. 작업은 운영체제에서 다루는 일의 단위로, 1개 혹은 여러 개의 프로세스로 구성된다. 이를 통해 시스템 내에서 동시에 실행 가능한 프로세스의 총 개수가 결정되는데, 이를 멀티프로그래밍 정도(degree of multiprogramming)라 한다. 중간 수준 스케줄링(middle-level scheduling) 프로세스가 이미 시작된 후에도 여러 가지 사정에 의해 시스템이 과부하가 걸릴 수 있다. 이러한 경우, 보류(활성 상태 -> 보류 상태)와 활성화(보류 상태 -> 활성 상태)를 통해 활성화된 프로세스의 수를 조절하는..
-
스레드운영체제 2022. 3. 21. 21:26
스레드(thread)의 개념 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위이다. CPU 스케줄러는 프로세스가 해야 할 일을 CPU에 전달하고 CPU는 작업을 수행한다. CPU가 전달받는 일 하나하나가 스레드인 것이다. 관련 용어 정리 멀티스레드(multi-thread) 하나의 프로세스 안에 여러 스레드를 만들어 실행하는 기법이다. 멀티태스킹(multi-tasking) 하나의 CPU에서 여러 스레드가 운영체제의 스케줄링에 의해 짧은 시간 단위로 번갈아가며 실행되게 하는 기법이다. 멀티프로세싱(multi-processing) CPU를 여러 개, 혹은 하나의 CPU에 여러 개의 코어를 사용하여 여러 스레드를 동시에 처리하는 작업 환경을 말한다. 멀티스레드 구조 한 프로세스 내의 스..
-
프로세스의 연산운영체제 2022. 3. 20. 16:43
프로세스의 구조 프로세스는 크게 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 구성된다. 힙 영역과 스택 영역은 동적으로 크기가 변하는 영역이기 때문에 충돌 방지를 위해 서로 반대편에 위치하여 크기가 변한다. 코드 영역(code area) 프로그램 코드가 들어있는 영역으로, 텍스트 영역(text area)이라고도 한다. 프로그램이 자기 자신을 수정해서는 안되므로 읽기 전용으로 처리된다. 데이터 영역(data area) 변수, 파일 등의 각종 정적 떼이터(선언할 때 그 크기가 결정됨)를 모아놓은 꼿이다. 읽기와 쓰기 모두 가능하다. 힙 영역(heap area) 동적으로 할당되는 변수들의 영역이다. 프로세스가 실행되는 동안 크기가 변화하는 영역이다. 스택 영역(stack area) 프로세스를 실행하기 ..
-
프로세스 개요운영체제 2022. 3. 18. 22:11
프로세스 개념 프로그램이 실행을 위해 메모리에 올라온 동적인 상태를 말한다. 프로세스 실행 방식 일괄 작업 방식 한 번에 하나의 프로세스만 처리하는 방식으로, 실행 중인 프로세스를 끝마쳐야 다음 프로세스를 실행할 수 있다. 시분할 방식 CPU가 시간을 쪼개어 여러 프로세스에 적당히 실행하는 방식이다. 이를 통해 여러 프로세스가 동시에 실행하는 것과 같은 효과를 낼 수 있다. 프로세스 제어 블록(Process Control Block, PCB) 프로세스를 처리하는 데 필요한 다양한 정보를 담은 자료구조이다. 프로그램이 프로세스가 되려면 메모리에 올라오는 동시에 PCB가 생성되어야 한다. 프로세스가 종료되면 PCB도 폐기된다. PCB는 운영체제가 프로세스를 관리하기 위해 사용하는 자료구조이기 때문에 메모리 ..