본문 바로가기

운영체제

방통대 2021 운영체제 중간과제물- 운영체제란? 그리고 스케쥴링에 관해

방통대에 들어온 첫 학기라 어떻게 과제를 해야할지 감이 대충 안왔는데 나와 같은 기분을 느끼는 사람들에게 대략의 reference를 제공한다. 참고로 표절 검사를 하기 때문에 참고만 바람. 과제 점수는 30점 만점에 30점이 나왔으나 내용상으로 충실한지는 확신 없음.

 


 

1. (1) 운영체제의 역할을 설명하시오.

 

=> 컴퓨터의 RAM이나 CPU등 하드웨어 자원이 한정적이므로, 이 한정된 자원을 관리하고 제어하는 역할. 컴퓨터의 하드웨어 (기계)가 사람이 쓴 프로그램 파일을 이해할 수 있게 해주고 프로그램 파일이 프로세스가 될 수 있도록 메모리에 올려주는 등의 역할을 한다. 메모리에 얼마나 자원이 남았는지를 체크하여 새로운 프로세스가 들어오면 할당도 해주고 때로는 스케쥴링 방식에 따라서 다시 회수도 하며 메모리 관리를 한다. 또한 프린트나 키보드 마우스 등 컴퓨터에 연결되어 있는 장치들의 작동도 관리하며 파일의 권한 등도 설정할 수 있게 한다. 비유를 하자면, 프로그램을 만드는 PD사이와 연예인 사이의 소통을 도와주기도 하고 연예인의 스케쥴 관리를 통해 하게 될 일을 받아주는 매니저와 비슷한 역할이라고 할 수 있다. 우리가 실제로 일상에서 접하는 대표적인 운영체제는 컴퓨터에서는 윈도우, os, 리눅스 등 이 있으며 각각의 장단점이 있다. 또한 휴대폰에서의 운영체제로는 안드로이드와 ios 등이 있다. 우리는 컴퓨터의 기계적인 부분 (RAM, CPU, GPU, 하드 등) 과 직접적으로 소통하는 기계어를 모르더라도 이러한 운영체제들을 통하여 컴퓨터의 자원과 파일들을 효과적으로 관리할 수 있다.

 

1. (2) 학생 본인이 사용하는 휴대폰의 운영체제에 대해 이름, 버전 등 찾을 수 있는 정보는 모두 찾아 쓰시오.

 

=> 사용하는 핸드폰의 운영 체제는 안드로이드 버전9이다. 안드로이드 버전 9의 이름은 파이(Pie) 8버전인 오레오(Oreo)에서 멀티 스크린 기능이 강화되고 배터리의 사용시간도 개선되었으며 구글 어시스턴트가 통합된 것이 업데이트 내용이다. 또한 밝기 역시 환경에 따라 자동적으로 설정되는 업데이트가 되었다고 한다. Pie 버전이 처음 출시된 것은 2018 8 6일이며, 최신 버전(pie버전내에서)의 업데이트 날짜는 2020 1 6일이다.

안드로이드 버전9, 마지막 업데이트 날짜가 2020 6 7일이였습니다. 덕분에 업데이트 했습니다. 감사합니다 교수님

 

2. (1) FCFS 스케쥴링 알고리즘과 RR 스케쥴링 알고리즘을 각각 설명하시오.

 

=> 먼저 FCFSFirst Come, First Serve의 약자로 FIFO(First In, First Out) 스케쥴링이라고도 불린다. 일반적으로 일을 할당할 때 가장 쉽게 떠올릴 수 있는 알고리즘으로, 일상생활에서는 식당에서 오는 순서대로 주문을 받고 음식을 내어주는 과정을 떠올리면 쉽다. 준비 큐에 올라온 순서대로 디스패치해주고, 비선점 방식의 스케쥴링이기 때문에 준비 큐에 올라온 순서대로 차례로 프로세서가 되고 선행 프로세스가 끝나야지 다음 프로세스가 시작된다.

RR 스케쥴링은 Round Robin의 약자이다. 이 방식은 준비 큐에 도착한 순서대로 일단 디스패치를 하지만, 정해진 시간만큼만 실행한 후에 다음 순서의 준비 큐에 있던 프로세스에게 실행을 넘겨준다. 그렇게 정해진 시간만큼만 실행하고 완료되지 못하여도 일단 다음 프로세스에게 실행을 넘겨주고 본래 실행되던 프로세스는 준비 큐의 맨 뒤에 가서 자신의 차례를 다시 기다린다. TV에서 방영했던 동고동락이라는 퀴즈예능에서 시간이 되면 뛰어와서 먼저 온 순서대로 주어진 시간 안에 노래를 다 부르면 끝나고 노래를 해당 시간 안에 부르지 못하면 대기줄의 맨 뒤로 가는 형식과 같다.

 

2. (2) 두 알고리즘의 공통점과 차이점을 각각 설명하시오.

 

=> 일단 두 방식 모두 일단 준비 큐에 온 순서대로 그 순위를 바꾸지 않고 (SJH이나 SRT 스케쥴링 방식 등은 준비 큐에 들어온 프로세스를 기준에 맞게 다시 줄세움) 준비 큐 순서대로 차례 차례 디스패치를 해준다는 점이 공통점이다. 다만 FCFS는 비선점 방식이므로 일단 실행된 프로세스는 끝나야 다음 프로세스의 실행으로 넘어가지만 RR은 선점 방식이므로 정해진 시간을 채우면 실행이 다 완료되지 않아도 다음 프로세스의 실행으로 넘어간다는 점이 차이점이다. 따라서 FCFS는 문맥 교환에 따른 오버헤드가 발생하지 않지만 RR은 문맥 교환에 따른 오버헤드가 발생한다는 점도 다르다. 그러나 RR 스케쥴링에서 시간 할당량이 너무 많으면 결국 FCFS와 같게 작동하고 너무 시간 할당량을 작게 하면 문맥 교환이 잦아져 스케쥴링의 효율이 떨어지므로 적당한 시간 할당량을 설정하는 것이 중요하다.

 

2. (3) 프로세스별 도착시간과 필요한 CPU 사이클이 표와 같고 RR 스케쥴링 알고리즘을 이용할 때, 시간할당량이 2인 경우와 10인 경우 각각에 대해 프로세스가 실행되는 순서를 시간과 함께 표시하고, 평균 대기시간과 평균 반환시간도 각각 구하시오.

도착시간 0 1 3 4 7
프로세스 A B C D E
CPU 사이클 7 2 4 1 2

 

=>

codarchive그림

 

이와 같이 그림도 나름 그려가면서 작성하였다. 참고로 방통대 과제는 분량따라 점수가 많이 갈리는 것 같으니 중간에 공백 너무 두는 식으로 겨우 분량을 채우면 여백 제외하고 분량이 모자란다는 이유로 감점이 될 수 있다. 다들 건승하시길.