본문 바로가기
반응형

OS5

운영체제 인터럽트 처리 개요 인터럽트는 기본적으로 필요에 의해 진행됩니다. 인터럽트는 하드웨어나 소프트웨어에서 내는 즉각적인 처리를 위하여 발생합니다. 인터럽트 처리에 대해서는 운영체제, CPU 아키텍처마다 다른 전략을 사용할 수 있으며 여기서는 인터럽트에 대한 기초적인 이론을 설명합니다. 인터럽트는 지금 사용하고 있는 컴퓨터에서도 굉장히 많이 발생합니다. 가만히 유지해도 1초 동안 최소한 1000개가 넘습니다. 인터럽트 인터럽트는 주요 예외처리나 우선순위가 높은 처리해야 할 때 진행 중이던 프로세스를 잠시 중단하고 인터럽트를 발생시키는 방식으로 진행됩니다. 주요 예외 상황이 이미 정해져 있으며 인터럽트가 발생하게 되면 인터럽트 서비스 루틴을 진행하게 됩니다. 이미 인터럽트를 처리하기 위한 루틴이 프로그램되어있고 인터럽트가 발.. 2022. 4. 25.
메모리 할당 기법, 페이징 메모리 관리 프로세스의 수행을 위해서 메인 메모리에 파일들을 적재해야 합니다. 이를 위한 기법들이 존재하고 각 방법들의 장단점이 존재합니다. 프로세스의 실행을 위해 메모리에는 연산자와 피연산자를 적재하고 필요에 따라 보조 저장장치에서 불러오기도 합니다. 주소 공간 현재 대부분의 운영체제에서 인식하는 메모리는 선형적이지만 실제 메모리 상에서는 전혀 다르게 할당되어 있습니다. 메모리 관리 장치(MMU)에 의해 가상 논리 주소와 물리 주소 간에 변환을 수행합니다. 단편화 메모리 할당과 제거가 일어나다 보면 메모리 공간들이 여러 작은 조각들로 나뉠 가능성이 높아집니다. 이 작은 공간들을 모으면 하나의 큰 메모리가 되어 사용할 수 있지만 나뉘게 되면 버려지는 공간이 됩니다. 외부 단편화 선형적으로 프로세스에게 필.. 2021. 12. 12.
운영체제 다중처리 실시간 CPU 스케줄링 (OS scheduling 2) 다중처리 스케줄링 다중처리가 가능한 CPU의 경우 단일처리와 다르게 스케줄링 알고리즘의 보완이 필요합니다. 프로세스 큐의 부하 공유가 필요합니다. 다중 처리를 위해 대칭 다중처리가 일반적이고 그중에서 공통 준비 큐, 각각의 준비 큐를 할 수 있는 두 가지 방법이 존재합니다. 각 전략별 중점은 공통 준비 큐의 경우 경쟁 조건을 방지해야 합니다. 프로세서간 동일한 스레드를 스케줄 해서는 안됩니다. 코어당 실행 큐의 경우 부하를 적절히 나눠야 합니다. 대부분의 운영체제, cpu들은 대칭 다중 처리(SMP, symmetric multiprocessing)를 지원합니다. 로드 밸런싱 Load balancing 다중 처리기에서는 부하를 처리기마다 균등하게 배분하는 것이 문제입니다. 자칫하면 어떤 처리기는 놀게 되고.. 2021. 10. 17.
단일처리 CPU 스케줄링 개념과 종류 (OS Scheduling 1) 스케줄링 다중 프로세스 처리를 위해 꼭 필요한 기본 개념입니다. 여기서는 단일처리의 경우 스케줄링 개념을 설명합니다. 스케줄링은 CPU를 프로세스들이 번갈아면서 좀 더 효율적으로 동작하게끔 합니다. 스케줄링의 목적은 CPU의 이용을 최대화 하는데 있습니다. 코어는 하나의 프로세스만 처리하는 것이 당연한 일입니다. (CMT 제외 ,CMT 칩 수준 스레딩 : 코어당 여러개의 스레드를 두어 메모리 스톨로 인한 이용률 저하를 막는데 있음) 그런데 프로세스가 I/O 요청으로 대기하고 있다면 CPU는 그저 쉬게 됩니다. 이는 성능에 있어서, 효율에 있어서 좋지 않습니다. 다른 밀려있는 수많은 프로세스를 수행하지 못하고 낭비됩니다. 때문에 스케줄링 작업을 하여 이를 방지합니다. CPU, I/O 버스트 CPU 스케줄링.. 2021. 10. 8.
스레드 Thread 현대의 프로세서들은 보통 다중 스레드를 지원합니다. 프로세서의 이용률을 높이기 위해 병렬 처리의 기회를 잡는 것인데 커널 수준의 스레드와 사용자 수준의 스레드로 나뉩니다. 스레드에 대한 기초와 개념에 대해서 설명합니다. 스레드 TRHEAD 스레드는 프로세서에서 아주 작은 단위이며 프로세스 실행 흐름에 아주 작은 단위이기도 합니다. 스레드의 구성은 TID, PC, 레지스터, 스택을 가집니다. 스레드는 단일, 다중 스레드일 수 있으며 단일의 경우 하나의 코어와 같습니다. 다만 뒤에서 설명하겠지만 사용자 수준에서 다중 스레드는 구현할 수 있습니다. 스레드를 이용하여 하나의 응용프로그램이 여러 가지 작업을 할 수 있도록 돕습니다. 다중 스레드의 경우 어느 정도 오버헤드를 감수해야 합니다. 그럼에도 다중 스레드는.. 2021. 9. 5.
반응형