컴퓨터언어(271)
-
비선점형 프로세스 스케줄링 - FIFO, SJF, HRN, 우선순위, 기한부
👊 FIFO(First Input First Output) = FCFS(First Come First Service) 먼저 온 순서대로 프로세스를 처리하므로 "공정하다"는 것 말고는 별 볼일 없다. 소요시간이 짧거나 중요한 작업이더라도 늦게 기다렸다가 실행되어야 하는 불상사가 생긴다. 다른 계획 없이 대기 큐에 그냥 줄줄이 받으므로 평균반환시간이 굉장히 길다. FIFO 평균 반환시간 계산 작업 실행시간(실행시간의 추정치) 도착시간(제출시간) A 24 0 B 6 1 C 3 2 반환시간 = 실행시간 + 대기시간 실행시간평균 = (24+6+3) / 3 = 11 대기시간평균 = [(0) + (24-1) + (30-2)] / 3 = 17 ∴ 반환시간평균 = 28 👊 SJF(Short Job First) 짧은 작업..
2020.07.07 -
프로세스 스케줄링
👍 프로세스 스케줄링 제한된 자원을 효율적으로 사용하기 위한 운영체제(소프트웨어)의 전략 컴퓨터를 켜면 ROM 내의 부트로더가 디스크에서 운영체제 핵심파일을 RAM에 적재시킴으로써 운영체제가 모든 통제권을 갖게 된다. RAM 내 보호구역에 자리잡은 운영체제는, 다른 프로그램들이 실행될 수 있도록 프로세스를 적재한다. 그런데 다중프로그래밍에서는 프로세스가 엄청 많은 것에 비해 컴퓨터가 가진 자원은 매우 한정되어 있다. 따라서 운영체제는 수많은 프로세스들이 자원을 효율적으로 사용할 수 있도록 CPU할당과 문맥교환에 머리를 잘 굴려야 하는데, 이를 프로세스 스케줄링이라고 한다. 👍 프로세스 스케줄링과 비슷한 용어이지만 다른 개념 👊 장기(상위) : Job 스케줄링 프로세스가 자원을 사용하는 시기를 결정하여 대..
2020.07.07 -
문맥교환
👍 문맥교환이란? 다중프로그래밍에서는 여러 프로세스가 메모리에 적재되어 있는데, 그 안에서도 CPU가 현재 처리중인 것과 그렇지 않은 것으로 구분된다. 하나의 CPU는 하나의 프로세스만 전담할 수 있기 때문이다. 그렇다면 CPU는 여러 프로세스를 엄청 짧은 순간에 갈아끼면서 연산한다는 것인데, 그 과정에서 당연히 프로세스마다 가진 정보를 제대로 저장해야 할 것이다. 그래서 운영체제는 PCB를 만들어서 프로세스의 모든 정보를 기록해놓는다. 문맥교환은 말그대로 현재의 흐름을 교환한다는 뜻으로, 지금 처리되고 있는 프로세스의 상태정보(준비/실행/보류)를 PCB에 저장하고 새로운 프로세스의 상태정보를 설정하고 실행시키는 과정을 말한다. 그리고 문맥교환이 일어난다는 것은 다음 프로세스로 이동하기 위해 현재 프로세..
2020.07.06 -
PCB(Process Control Block)
👍 PCB란? 운영체제가 다중프로그래밍에서 프로세스들을 관리하기 위하여 관련 정보를 저장해 놓는 곳 👊 PCB의 항목 각 프로세스의 식별자 주소(포인터) : 프로세스가 적재된 기억장치 부분, 프로세스에 할당된 자원(프로세스가 필요로 하는 자원의 주소를 담은 포인터), CPU의 각종 레지스터 상태(하나의 CPU는 오직 하나의 프로세스만을 집중하므로, 다른 프로세스 실행 시에는 기존 프로세스에 대한 처리 정보를 저장해 놓은 뒤 이후에 다시 불러와서 사용) 현재상태(준비/실행/대기) 우선순위 : 대부분의 프로그램은 하나로 구성되어 있기보다는 여러 파일의 조립으로 구성되어 있는데, 상위에 해당하는 프로그램이 우선순위가 더 높다 중앙처리장치(CPU, 처리기) 레지스터 정보 계정정보(시간 할당량) : 각 프로세스에..
2020.07.06 -
인터럽트
👍 인터럽트란? Interrupt : 중단하다, 끊다 인터럽트란 프로세스를 잠시 중단하는 것을 말한다. 그럼 프로세스를 갑자기 왜 중단해야 할까? 프로그램을 한번에 하나만 실행하는 단일프로그래밍방식에서는 필요없지만, 여러 프로그램을 동시에 실행하는 다중프로그래밍 방식에서 인터럽트는 필수과정이다. 다중프로그래밍, 즉 멀티태스킹은 엄밀히 말하면 동시에 실행하는 것이 아니라 동시인 것처럼 보일 뿐이다. 메모리에 적재된 여러 프로세스들을 짧은 시간씩 돌아가면서 처리하기 때문이다. 2020/07/05 - [컴퓨터언어/운영체제] - 운영체제의 발전 벌써 답이 나왔다. 여러 프로세스들을 돌아가면서 처리해야 하기 때문에, B가 실행되고 있는 동안에는 A가 잠시 멈춰야 하는 것이다. 이러한 일시중지 뿐만 아니라 입출력연..
2020.07.06 -
프로세스 메모리 영역 - Text, Data, Heap, Stack
👍 프로세스가 사용하는 메모리 영역의 구분 보조기억장치에 저장된 프로그램을 실행시키면 주기억장치의 한 "프로세스"로서 적재된다. 프로세스는 이전 포스팅에서 다룬 상태전이를 거치며 실행된다. 2020/07/06 - [컴퓨터언어/운영체제] - 프로세스 상태 전이 그리고 프로세스를 세밀히 살펴보면, 다음 4가지 영역으로 메모리를 사용한다. 👊 텍스트(Text, Code) 영역 프로그램 명령 코드 자체를 저장하는 메모리 영역으로, Hex(16진수) 파일이나 BIN(2진수) 파일이 저장되는 영역 👊 데이터(Data) 영역 전역변수, 정적변수, 배열, 구조체 등이 저장되는 영역 👊 힙(Heap) 영역 malloc(), new() 같은 동적인 메모리를 할당할 때 위치하는 메모리 영역 👊 스택(Stack) 영역 지역변..
2020.07.06