Journal of the Korea Institute of Information and Communication Engineering 한국정보통신학회논문지 (J. Korea Inst. Inf. Commun. Eng.) Vol. 19, No. 7 : 1653~1659 Jul. 2015 웹기반의교육용 CPU 스케줄링시뮬레이터의설계및구현 고정국 * Design and Implementation of a Web-based educational CPU Scheduling Simulator Jeong-Gook Koh * Department of Computer Engineering, Tongmyong University, Busan 608-711, Korea 요약 운영체제는추상적개념과기법들을다루고있지만, 대부분이론수업위주로진행되고있다. 이론수업은강의내용에대한이해와집중력저하를유발하므로학습내용의이해를돕고흥미를유발하는다양한방법들이시도되었다. 본논문에서는 CPU 스케줄링알고리즘들의이해를돕기위해학습자가언제, 어디서나웹브라우저나스마트폰을사용하여다양한상황을설정하고알고리즘의스케줄링과정을모의실험해볼수있는웹기반의교육용 CPU 스케줄링시뮬레이터를설계하고구현하였다. 구현된시뮬레이터를수업에활용한후 2014 학년도수강생들을대상으로구현된시뮬레이터의사용편의성과유용성에대한만족도설문조사를통해시뮬레이터가학습내용에대한이해도증진과문제해결능력을배양하는교육용도구로유용함을확인할수있었다. ABSTRACT Operating Systems is a discipline which handles abstract concepts and techniques. However, most of OS courses have been textbook-oriented theoretical classes. Theoretical classes lead to the decline in the understanding of a lecture and hurt their concentration. Many instructors have tried various ways to help students understand lectures and arouse interests. This paper describes the design and implementation of a web-based educational CPU scheduling simulator which enables learners to set up various situations and simulate scheduling processes using a web browser or a smart-phone. After utilizing the implemented simulator for the class, the survey result for 2014's students shows that it is useful as an educational tool which enhances the understanding of a lecture and develops their problem solving skills. 키워드 : 운영체제, CPU 스케줄링알고리즘, 교육용도구, 시뮬레이터 Key word : Operating System, CPU Scheduling Algorithm, Educational tool, Simulator Received 20 May 2015, Revised 09 June 2015, Accepted 23 June 2015 * Corresponding Author Jeong-Gook Koh(E-mail:jgkoh@tu.ac.kr, Tel:+82-51-629-1171) Department of Computer Engineering, Tongmyong University, Busan 608-711, Korea Open Access http://dx.doi.org/10.6109/jkiice.2015.19.7.1653 print ISSN: 2234-4772 online ISSN: 2288-4165 This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(http://creativecommons.org/li-censes/ by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited. Copyright C The Korea Institute of Information and Communication Engineering.
한국정보통신학회논문지 (J. Korea Inst. Inf. Commun. Eng.) Vol. 19, No. 7 : 1653~1659 Jul. 2015 Ⅰ. 서론컴퓨터분야의교육에서실습은이론수업에서학습한내용의이해를돕고활용능력을배양하기위해필요하다. 수업현장에서도이론적인내용만설명하는것보다실습이추가되면학습자의이해도가훨씬높아진다 [1]. 이론수업은시간이경과할수록집중도가저하되고지루함이증가하지만, 실습을병행하면집중도를유지할수있다 [2]. IEEE Computer Society와 ACM의합동태스크포스팀은 컴퓨터분야의교육과정은이론과실습을병행하도록편성해야한다. 라고권고한다 [3]. 한편운영체제는컴퓨터시스템의자원들을효율적으로관리하고편리한사용환경을제공하는시스템소프트웨어이다. 운영체제수업에서는구성요소의동작원리와개념, 기법등을다루지만운영체제의동작을직접확인하기어려워대부분이론위주로진행한다. 새로운개념이나내용을학습할때조작가능한도구의활용이바람직한데, 이론강의는학습내용에대한이해도와집중력저하를초래하여재미없다고인식하는경향이나타난다 [4]. 따라서멀티미디어자료나교육용도구를활용하여흥미를유발하고강의내용에대한이해도증진을위한다양한시도가이루어지고있다 [5]. 본논문에서는학부운영체제수업에서다루는 CPU 스케줄링알고리즘들에대한이해를돕기위해프로세스스케줄링과정을시각적으로보여주는웹기반의 CPU 스케줄링시뮬레이터를설계하고구현하였다. 본논문의구조는다음과같다. 2장에서는운영체제교과목의강의방법개선시도와교육용시뮬레이터의필요성을설명한다. 3장에서는 CPU 스케줄링시뮬레이터의기능설계에대해기술한다. 4장에서는시뮬레이터의구현내역과기존 CPU 스케줄링시뮬레이터들과본논문에서구현한시뮬레이터의특징을비교한다. 마지막으로 5장에서는본논문의결론및향후연구방향을제시한다. Ⅱ. 관련연구 2.1. 강의방법개선시도운영체제수업에서복잡하고추상적인개념과처리기법등을학습하지만대부분이론위주로진행되면서 학습자들의관심과흥미가저하되는문제를해결하기위해다양한강의개선방법들이시도되었다. 대표적인사례로는개인이나팀단위로운영체제의일부기능을구현하는단기프로젝트수행, 교육용운영체제나실제운영체제에특정기능을구현하는소스코드수정, 그리고추상적인개념에대한이해를돕는교육용시뮬레이터활용이있다 [6]. 교육용시뮬레이터는활용범위에따라다양한체험이가능한범용시뮬레이터와특화된기능을제공하는단일용도시뮬레이터로구분할수있다. 범용시뮬레이터는활용도는높지만개발기간이길고개발비용도많이소요되는단점이있다. 그러나단일용도시뮬레이터는범용시뮬레이터에비해활용범위는제한되지만, 개발기간이짧고비용도적게소요되는장점이있다. 대표적인범용시뮬레이터로는 OSP[3], SOsim[6], RCOS.java[7] 등이있으며, 단일용도시뮬레이터에는 BACI[8], MOSS[9], Alg_OS[10], OSM[11], Robbins [12], CPUSim[13] 등이있다. 한편, 다양한웹기반 e-learning 시스템과교육용도구들이학습자들에게시간적, 공간적제약이없는학습환경제공을위해개발되었다. 컴퓨터분야에서는자료구조나알고리즘, 운영체제등의효과적인학습을위해활용되고있으며, 대표적사례로는 Alg_OS[10], PageRepSim[15], WebGeneOS[16] 등이있다. 2.2. 교육용시뮬레이터의필요성이론수업에서는교수자가학습자들에게지식을일방적으로전달하는방식이많이사용된다. 이방식은학습자들의독립적인사고와상호작용을저해하여흥미와강의내용이해도를저하시키는문제가있다 [5]. 특히운영체제처럼추상적인개념을많이다루는교과목에서는상황이더욱악화될수있다. 문제의해결책은수업의중심을교수자에서학습자로옮기는것이다 [14]. 예들들어, 교수자는학습자들에게 CPU 스케줄링알고리즘들을설명한후교육용시뮬레이터를활용하여처리과정을시연한다. 학습자들은시뮬레이터를이용하여다양한상황을설정하고알고리즘의동작방식과실행결과를확인하고이들을비교함으로써알고리즘에대한올바른이해가가능해진다. 따라서이러한용도로사용할수있는교육용시뮬레이터를개발할필요가있다. 1654
웹기반의교육용 CPU 스케줄링시뮬레이터의설계및구현 Ⅲ. CPU 스케줄링시뮬레이터의설계 3.1. CPU 스케줄링시뮬레이터의기능설계이전연구 [13] 에서 CPU 스케줄링알고리즘교육을위해교육용도구 (CPUSim) 를구현하였다. CPUSim은자바로구현한설치형프로그램이며, 프로그램이설치된 PC에서만사용할수있어서활용시간과장소에제약이있었다. 본논문에서는이러한단점을보완하여언제, 어디서나 CPU 스케줄링알고리즘의동작을모의실험할수있도록하면서학습내용이해를돕는기능을추가적으로제공하고는웹기반의 CPU 스케줄링시뮬레이터 (CPUSim2) 를제안한다. 그리고스마트폰의보급추세와편리함을감안하여스마트폰에서도구동되도록한다. 본논문에서제안하는시뮬레이터는그림 1 과같이클라이언트, 웹서버와 CPU 스케줄링프로그램으로구성된다. 시뮬레이터의역할을담당하는 CPU 스케줄링프로그램은환경설정부와결과출력부로구성된다. 수를콤보박스에서설정한후정보생성방법을선택한다. 수동입력 을선택하면학습자가직접정보를입력하며, 자동입력 을선택하면설정된개수만큼정보들이생성된다. 매개변수설정이완료되면 6가지종류 (FCFS, HRN, SJF, SRT, 우선순위, 라운드로빈 ) 의스케줄링알고리즘을선택할수있다. 학습자가라운드로빈알고리즘을선택할때에는프로세스에게할당될 CPU 시간 (Time quantum) 설정기능이활성화된다. 그리고시뮬레이터는시간단위로 ms를사용한다. 한편, 시뮬레이터는 2가지종류의실행방식을지원한다. 학습자가 일괄실행 을선택하면스케줄링결과가간트차트에표시되며, 스케줄링결과를기법별로비교할수있도록간트차트가스택차트에표시된다. 그리고 단계별실행 을선택하면해당버튼을클릭할때마다스케줄링결과가간트차트에 1ms마다출력되며, 프로세스의잔여실행시간이도넛차트로표시된다. 그밖에프로세스가실행됨에따라준비큐의변화과정이그래픽으로표시되며, 학습자가기설정된매개변수들을변경할수있도록 재설정 기능도제공한다. 그림 1. CPU 스케줄링시뮬레이터의시스템구조 Fig. 1 The system architecture of CPU scheduling simulator 3.1.2. 결과출력부결과출력부는설정된프로세스정보들에근거하여스케줄링결과를간트차트로출력하고해당알고리즘의성능수치 ( 평균대기시간과평균반환시간 ) 를보여준다. 그리고동일한상황에서실행된알고리즘들의성능수치가화면에누적되어표시되므로알고리즘간성능비교도가능하다. 학습자는 PC의웹브라우저나스마트폰을활용하여웹서버에접속한후시뮬레이터를사용한다. 웹서버는클라이언트와 CPU 스케줄링프로그램사이에서중계자역할을담당한다. 학습자가시뮬레이션매개변수들을설정하고알고리즘을선택하면 CPU 스케줄링프로그램이해당알고리즘의스케줄링결과와성능수치를보여준다. 3.1.1. 환경설정부환경설정부는시뮬레이션매개변수설정과알고리즘선택기능을제공한다. 학습자는프로세스개수 (2~10개) 와프로세스관련정보들 ( 도착시간, 서비스시간, 우선순위 ) 의생성방법을선택한다. 즉프로세스개 Ⅳ. CPU 스케줄링시뮬레이터의구현 4.1. 구현환경본논문에서는 CPU 스케줄링시뮬레이터를구현하기위해개발언어로 C# 과 ASP.NET을선정하고, 개발도구로 Visual Studio 2008을사용하였다. IIS 7을사용하여웹서버를구축하였고, 구현된시뮬레이터가웹브라우저뿐만아니라스마트기기들에서도정확하게동작하는지확인하기위해대표적인스마트기기인스마트폰을대상으로 3가지종류의단말기 ( 갤럭시 S3, 갤럭시노트 3, 옵티머스 G Pro) 를선정하고기능시험을실시하였다. 1655
한국정보통신학회논문지 (J. Korea Inst. Inf. Commun. Eng.) Vol. 19, No. 7 : 1653~1659 Jul. 2015 4.2. 구현내역 4.2.1. 사용자인터페이스학습자가웹브라우저나스마트폰을이용하여웹서버에접속하면그림 2의시작화면이나타난다. 시작화면의용도는다음과같다. 화면왼쪽은환경설정부로서, 상단에서는시뮬레이션매개변수설정과알고리즘선택, 스케줄러의동작을제어하며하단에는설정된프로세스관련정보들이표시된다. 화면오른쪽은결과출력부로서, 상단에는스케줄링결과와스케줄링기법별로프로세스들의실행시간이스택차트로표시된다. 하단에는스케줄링기법별성능수치가표시된다. 4.2.3. 결과출력부프로세스관련정보를생성한후 실행 버튼을클릭하면스케줄링결과가그림 4와같이간트차트로표시되며, 스케줄링기법별프로세스들의작업처리시간은그림 5와같이스택차트로표시된다. 그림 4. 프로세스스케줄링결과 Fig. 4 The result of process scheduling 그림 5. 스케줄링기법별프로세스의작업처리시간 Fig. 5 The job processing times of processes based on scheduling algorithms 그림 2. 시뮬레이터의시작화면 Fig. 2 The starting of a simulator 단계별실행 버튼을클릭하면스케줄링결과가단위시간마다출력되며, 준비큐의변화과정, 실행중인프로세스의총실행시간및잔여실행시간은그림 6과같이표시된다. 결과출력부의하단에는스케줄링기법별로그림 7과같이 2가지종류의성능수치가출력된다. 학습자가성능수치산출내역확인과성능비교를할수있도록 자세히 버튼과 차트 버튼을제공한다. 자세히 버튼을클릭하면성능수치산출과정이표시되며, 차트 버튼을클릭하면성능수치표가그림 8의성능비교차트로변경된다. 그림 3. 프로세스관련정보설정화면 Fig. 3 The for process related information setting 4.2.2. 환경설정부환경설정부에서프로세스관련정보설정화면은그림 3과같다. 설정된정보들은프로세스 ID를기준으로정렬된후우선순위, 도착시간과서비스시간이표시된다. 한편학습자가 우선순위 기법을선택한경우에는프로세스의우선순위정보가표시된다. 그림 6. 준비큐의변화, 프로세스의실행시간정보 Fig. 6 The change of ready queue and execution information of a process 1656
웹기반의교육용 CPU 스케줄링시뮬레이터의설계및구현 표 1. 기존시뮬레이터들과 CPUSim2 의비교 Table. 1 Comparison between the previous simulators and CPUSim2 그림 7. 스케줄링기법별성능수치 Fig. 7 Performance values of scheduling algorithms 그림 8. 성능비교차트 Fig. 8 A chart for Performance comparison 4.2.4. 스마트기기지원스마트폰의보급속도를고려할때스마트기기에서도시뮬레이터를사용할수있다면활용도가더욱높아질것이다. 본논문에서는스마트기기에서시뮬레이터를활용할수있도록웹서버접속에사용된기기의해상도를인식한후해당기기에적합한시뮬레이터를구동하도록구현하였다. 학습자가스마트폰을이용하여웹서버에접속하면그림 9의화면이나타난다. 스마트기기는 PC용웹브라우저에비해화면크기가작기때문에모바일버전에서는프로세스개수를최대 5개로제한하는점외에는웹버전과동일한기능을제공한다. 4.3. 기존연구사례와의비교기존의 CPU 스케줄링시뮬레이터들과본논문에서구현한 CPUSim2의특징비교결과는표 1과같다. 그림 9. 스마트기기용시뮬레이터의화면 Fig. 9 A screen of a simulator for smart devices Item Sort Running form Range of use Number of Algorithms Setting up a situation Information offering Screen composition Difficulty of using Performance comparison Execution environment Construction Provision of learning process SOsim Robbins OSM CPUSim2 Standalone +Web browser DB interlock Two Six Four Six Manual Manual Manual Standalone Generalpurpose Singlepurpose Singlepurpose Stanalone+ Web browser/sm art device Singlepurpose Processoriented Single Resultoriented Multiple Processoriented Multiple Automatic/ Manual Processoriented Single Low High Medium Low Easy Easy Difficulty Easy SOsim[6] 은다중프로그래밍, 프로세스관리, 스케줄링, 메모리관리기능을제공하는독립실행형범용시뮬레이터이다. 2가지유형의알고리즘 ( 비선점형, 선점형 ) 을지원하며, 로그저장기능을제공한다. 그러나프로세스스케줄링에한정하면지원알고리즘수와제공기능이미약하다. Robbins[12] 는웹브라우저와독립실행이가능한단일용도시뮬레이터로서 6가지알고리즘 (FCFS, SJF, 선점형 SJF, SJFA, RR, 우선순위 ) 을지원한다. 메인화면에서메뉴를선택하면실행결과가별도화면으로제공된다. 매개변수설정과스케줄링결과저장기능을제공하지만, 화면구성이복잡하고사용이어려운편이다. 스케줄링정보는결과위주로제공한다. OSM[11] 은 DB를활용하는단일용도시뮬레이터로서, 4가지알고리즘 (FCFS, SJF, 우선순위, RR) 을지원한다. CPU 스케줄러에대한이론적설명을포함한 3단계학습과정을제공하며, 알고리즘의처리과정을시각적으로보여준다. 처리결과를 DB에저장하며결과 1657
한국정보통신학회논문지 (J. Korea Inst. Inf. Commun. Eng.) Vol. 19, No. 7 : 1653~1659 Jul. 2015 값을이용하여알고리즘간성능을비교한다. DB를활용하므로실행환경구축과시뮬레이터의독립실행은어렵다. CPUSim2는독립실행형프로그램인 CPUSim 의개량형으로 PC용웹브라우저와스마트폰에서도동작한다. CPUSim의제공기능외에도실행방식선택기능, 스케줄링결과비교용스택차트와성능비교차트를제공한다. 또한프로세스실행에따른준비큐의변화과정과프로세스의잔여실행시간을그래픽으로보여준다. 한편, CPUSim은매개변수설정방법을알려주는도움말기능을제공하였으나 CPUSim2에서는입력란을콤보박스로대체하여입력오류도줄이고사용의편리성도제공한다. 4.4. 만족도조사 CPUSim2를 2014학년도수강생 22명에게제공한후설문조사를통해사용편의성과유용성에대한만족도조사를실시하였다. 편의성과유용성에대한 3가지항목을분석대상으로선정하고항목당 5점척도로측정하였다. 조사결과는표 2와같으며, - 표시는해당항목에대한응답이없음을표시한다. 조사결과를살펴보면우선사용편의성평가에서는 정보습득의편의성 을높게평가했다. 이것은학습자가다양한상황설정과스케줄링기법의동작방식, 스케줄링결과, 성능수치등을손쉽게산출할수있기때문이라고판단된다. 다음으로제공기능들에대한유용성평가에서는 성능비교기능의유용성 이높게나타났다. 이것은스케줄링기법들에대한성능수치와산출내역이표시되고, 성능비교표 / 차트를활용한기법별성능비교가가능했기때문이라고판단된다. Ⅴ. 결론본논문에서는운영체제교과목의주요학습주제인 CPU 스케줄링기법들에대한학습자의이해도증진을위해언제, 어디서나웹브라우저나스마트기기를사용하여다양한상황을설정하고알고리즘의동작을모의실험해볼수있는웹기반의 CPU 스케줄링시뮬레이터를설계하고구현하였다. 구현된시뮬레이터를운영체제수업에적용한후수강생을대상으로설문조사를통해시뮬레이터의사용편의성과유용성에대한만족도조사를실시하였다. 조사결과구현된시뮬레이터가사용하기편리하며, 학습내용에대한이해도증진과문제해결능력배양에매우유용함을확인하였다. 향후연구로는학습자가 CPU 스케줄링시뮬레이터를사용할때스케줄링알고리즘의스케줄링과정과결과, 성능수치등을입력하면정오를확인할수있는자기주도학습및평가기능을추가할것이다. 그리고평가결과를저장하고저장된결과들을분석하여학습자의내용이해도와학업성취도변화이력을보여줌으로써활용효과를극대화시킬예정이다. ACKNOWLEDGMENTS This Research was supported by the Tongmyong University Research Grants 2013. REFERENCES 표 2. 만족도조사결과 Table. 2 The satisfaction survey result convenience usability Evaluation item Too much Enough Some Average Layout 6 14 2 4.18 Functional operation 14 6 2 4.55 Information acquisition 20 2-4.91 Chart 16 2 4 4.55 Performance Comparison 18 4-4.82 Simulator 16 6-4.73 [ 1 ] Jae-Chun Kim, Jae-Yool Boo, Kyung-Hee So, Sun-Hee Chae, Curriculum and Educational Evaluation, 3rd ed. KyoyookBook, 2005. [ 2 ] Gyu-Hyuk Lim, Ung Lim, Educational Psychology for School Learing Effect, 2nd ed. HAKJISA corp., 2010. [ 3 ] M. Kifer and S. Smolka, "OSP: An Environment for Operating System Projects," Operating Systems Review, vol. 24, no. 4, pp. 98-100, Apr. 1992. [ 4 ] Jung-Eun An, Young-Bong Kim, A Web-Based Courseware for 3D Bicycle Museum on the basis of Constructivism Learning theory, Proc. of the 2007 Spring Conference of the Korea Contents Association, vol. 5, no. 1, pp. 19-23, 1658
웹기반의교육용 CPU 스케줄링시뮬레이터의설계및구현 2007. [ 5 ] Sung-Ik Park, Cheol-Il Lim, Jae-Kyung Lee, Jeong-Im Choi, Educational technology understanding of the teaching methods, KyoyookBook, 2007. [ 6 ] L. Maia and A. Pacheco, "A simulator supporting lectures on operating systems," Proc. of 33rd Annual Frontiers in Education, vol. 2(F2C), pp. 13-17, 2003. [ 7 ] D. Jones and A. Newman, "RCOS.java: A simulated operating system with animations," Proc. of Computer- Based Learning in Science Conference, 2001. [ 8 ] B. Bynum and T.Camp, Alfonse: A Mutual Exclusion Toolkit, Available: http://inside.mines.edu/~tcamp/baci/ baci_index.html. [ 9 ] R. Ontko, MOSS Memory Management Simulator User Guide, Available: http://www.ontko.com/moss/memory/ user_guide.html. [10] A. Garmpis, "Design and Development of a Web-based Interactive Software Tool for Teaching Operating Systems," Journal of Information Technology Education, vol. 10, no. 10, pp. 1-17, Oct. 2011. [11] Seong-Kyun Jeong, Samuel Sangkon Lee, "Design and Implementation of Simulation Program for CPU Scheduling in Operating Systems," Journal of Korea Multimedia Society, vol. 14, no. 6, pp. 449-461, Jun. 2011. [12] S. Robbins and K.A. Robbins, "Empirical Exploration in Undergraduate operating systems," Proc. of the 30th SIGCSE technical symposium on Computer Science Education, vol. 30, no. 1, pp. 311-315, 1999. [13] Jeong-Gook Koh, CPUSim: A Simulator supporting the education of CPU Scheduling Algorithm, Journal of the Korea Institute of Information and Communication Engineering, vol. 16, no. 4, pp. 835-842, Apr. 2012. [14] M. Ben-Ari, "Constructivism in Computer Science Education," Proc. of the 29th SIGCSE technical symposium on Computer Science Education, vol. 29, no. 1, pp. 257-261, 1998. [15] Jeong-Gook Koh, Design and Implementation of a Web-based Simulator for Educating Page Replacement Algorithms, Journal of Korea Multimedia Society, vol. 15, no. 4, pp. 552-559, Apr. 2012. [16] Buendia, F. and Cano, J.C., WebGeneOS: A Generative and Web-based Learniing Architecture to Teach Operating System in Undergraduate Courses, IEEE Transactions on Education, vol. 49, no. 4, pp. 464-473, Apr. 2006. 고정국 (Jeong-Gook Koh) 1992 년 2 월부산대학교컴퓨터공학과 ( 공학사 ) 1994 년 2 월부산대학교컴퓨터공학과 ( 공학석사 ) 1999 년 2 월부산대학교컴퓨터공학과 ( 공학박사 ) 1999 년 3 월 ~ 8 월위덕대학교컴퓨터공학과전임강사 1999 년 9 월 ~ 현재동명대학교컴퓨터공학과부교수 관심분야 : 운영체제, 컴퓨터활용교육, 인터넷응용 1659