본문 바로가기

computer science/운영체제13

[운영체제] 인터럽트 인터럽트 대부분의 시스템에서 하나의 CPU를 두고 여러 프로세스들이 경쟁을 하면서 자신의 작업을 수행합니다. 여기서 각 프로세스는 정해진 시간만큼 CPU를 사용할 수 있으며 이 시간이 지나면 타이머 인터럽트에 의해 다른 프로세스에게 CPU가 이양 됩니다. CPU가 A프로세스에게 할당되어 있는데 급하게 처리해야할 작업이 발생하면 어떻게 될까요 ? 물론 급한 작업을 먼저 처리해주어여 하며 이런 경우를 인터럽트 라고 합니다. 하드웨어 입출력 장치의 사용이나 프로그램에서 0으로 나누는 경우, 커널 함수를 사용하는 시스템 콜 등 우리가 시스템을 사용함에 있어 대부분이 인터럽트 입니다. 사전적 interrupt는 "방해"를 의미하는데, 컴퓨터의 세계에서는 방해보다는 "우선순위가 더 높은 작업을 우선적으로 처리한다".. 2020. 2. 21.
[운영체제] 커널 모드, 사용자 모드 이번 시간에는 커널 모드, 사용자 모드에 대해 공부해 보겠습니다. 우리가 흔히 사용하는 운영체제는 여러 프로그램이 동시에 실행될 수 있는 다중 프로그래밍 환경에서 동작합니다. 그러므로 각 프로그램들이 다른 프로그램의 실행을 방해하거나 프로그램 간에 서로 충돌을 일으키는 문제를 막기 위해 하드웨어에 대한 각종 보안 기법이 필요합니다. 하드웨어 적인 보안을 유지하기 위해 운영체제는 기본적으로 두가지 모드를 제공하는데 커널모드(kernel mode, system mode), 사용자 모드(user mode)가 이에 해당합니다. 커널 모드는 운영체제가 CPU의 제어권을 가지고 운영 체제 코드를 실행하는 모드로서, 이 모드에서는 모든 종류의 명령을 다 실행할 수 있습니다. 반면에 사용자 모드에서는 일반 사용자 프로.. 2020. 2. 17.
[운영체제] 문맥교환(Context Switching) 문맥교환 컴퓨터에는 여러 프로세스들이 실행되고 있습니다. 카카오톡을 켜놓고 유튜브로 노래를 들으면서 웹서핑을 하는 것은 사용자 입장에서 동시에 일어나는 일 처럼 보이지만 실제로는 그렇지 않습니다. 각 프로세스가 일을 처리하기 위해서는 CPU를 필요로 아주 짧은 시간에 CPU를 할당받아 일을 처리합니다. 위에서 처럼 여러 프로세스가 존재하는 경우 각 프로세스는 CPU를 차지하기 위해 서로 경쟁하며 아주 짧은 시간 동안 CPU의 제어권이 바뀝니다. 여기서 "어떤 프로세스에게 CPU를 할당할까 ?"는 저번 시간에 알아 보았습니다. 이번시간에 다룰 문맥교환은 "현재 CPU를 사용중인 프로세스의 CPU 제어권이 다른 프로세스로 이양되는 과정"을 의미합니다. 현재 프로세스 A가 CPU를 사용하고 있는 상황에서 CP.. 2020. 2. 16.
[운영체제] CPU 스케줄링 이번 시간에는 CPU스케줄링에 대해 공부해 보겠습니다. 단순히 CPU 스케줄링 알고리즘에 뭐가 있는지 보다는 왜 CPU가 필요하며 CPU의 스케줄링의 정의, 그리고 스케줄링 알고리즘과 I/O바운드 프로세스, CPU바운드 프로세스에 대해 알아보겠습니다. 프로세스의 CPU사용 CPU는 프로그램의 기계어 명렁을 실제로 수행하는 컴퓨터 내의 중앙 처리장치 입니다. 프로그램이 시작되어 메모리에 올라가면, 프로그램 카운터(Program Counter)라는 이름의 레지스터가 현재 CPU에서 수행할 코드의 메모리 주소값을 가지고 CPU는 프로그램 카운터가 가리키는 주소의 기계어 명렁을 하나씩 수행하게 됩니다. CPU는 일반적인 시스템내에 하나밖에 없으므로 여러 프로그램이 동시에 수행되는 시분할 환경에서 CPU를 매우 .. 2020. 2. 15.