인터럽트(3)
-
임계구역(위험지구)과 상호배제
👍 임계구역, 그리고 그것을 지키기 위한 상호배제 다중프로그래밍 방식이 되면서 운영체제는 여러 프로세스가 제한된 공유자원에 동시접근하는 것을 막아야 하는 의무가 생겼다. 여기서 공유자원이라는 것은 CPU, 메모리, 주변장치 같은 물체도 될 수 있고, 프로그램 내 변수도 될 수 있다. 즉 여러 프로세스가 동시에 프린터를 쓸 수 없는 것처럼, 커 다란 프로그램은 여러 프로세스로 분할되어 동작하기 때문에 같은 변수를 참조하는 프로세스끼리는 반드시 코드를 순차실행해야 null이 발생하지 않을 것이다. 이처럼 동시에 사용될 수 없는 공유자원(파일)을 "임계구역(Critical Section)"이라고 한다. 그리고 임계구역을 지키기 위한(동시참조를 막기 위한) 해결방안을 "상호배제"라고 한다. 만약 상호배제로도 문..
2020.07.07 -
문맥교환
👍 문맥교환이란? 다중프로그래밍에서는 여러 프로세스가 메모리에 적재되어 있는데, 그 안에서도 CPU가 현재 처리중인 것과 그렇지 않은 것으로 구분된다. 하나의 CPU는 하나의 프로세스만 전담할 수 있기 때문이다. 그렇다면 CPU는 여러 프로세스를 엄청 짧은 순간에 갈아끼면서 연산한다는 것인데, 그 과정에서 당연히 프로세스마다 가진 정보를 제대로 저장해야 할 것이다. 그래서 운영체제는 PCB를 만들어서 프로세스의 모든 정보를 기록해놓는다. 문맥교환은 말그대로 현재의 흐름을 교환한다는 뜻으로, 지금 처리되고 있는 프로세스의 상태정보(준비/실행/보류)를 PCB에 저장하고 새로운 프로세스의 상태정보를 설정하고 실행시키는 과정을 말한다. 그리고 문맥교환이 일어난다는 것은 다음 프로세스로 이동하기 위해 현재 프로세..
2020.07.06 -
인터럽트
👍 인터럽트란? Interrupt : 중단하다, 끊다 인터럽트란 프로세스를 잠시 중단하는 것을 말한다. 그럼 프로세스를 갑자기 왜 중단해야 할까? 프로그램을 한번에 하나만 실행하는 단일프로그래밍방식에서는 필요없지만, 여러 프로그램을 동시에 실행하는 다중프로그래밍 방식에서 인터럽트는 필수과정이다. 다중프로그래밍, 즉 멀티태스킹은 엄밀히 말하면 동시에 실행하는 것이 아니라 동시인 것처럼 보일 뿐이다. 메모리에 적재된 여러 프로세스들을 짧은 시간씩 돌아가면서 처리하기 때문이다. 2020/07/05 - [컴퓨터언어/운영체제] - 운영체제의 발전 벌써 답이 나왔다. 여러 프로세스들을 돌아가면서 처리해야 하기 때문에, B가 실행되고 있는 동안에는 A가 잠시 멈춰야 하는 것이다. 이러한 일시중지 뿐만 아니라 입출력연..
2020.07.06