Microsoft Word doc
|
|
- 병선 송
- 5 years ago
- Views:
Transcription
1 工學碩士學位請求論文 인터럽트지연시간의감소를통한 BrickOS 의실시간성강화에관한연구 A Study on Enhancement of BrickOS s Real ealtime Cha hara racteristic by Reducing Interrupt Latency 2007 年 2 月 仁荷大學校大學院 情報通信工學科 河正大
2 工學碩士學位論文 인터럽트지연시간의감소를통한 BrickOS 의실시간성강화에관한연구 A Study on Enhancement of BrickOS s Realtime Characteristic by Reducing Interrupt Latency 2007 年 2 月 指導敎授吳範渙 이論文을碩士學位論文으로提出함 仁荷大學校大學院 情報通信工學科 河正大
3 이論文을河正大의碩士學位論文으로認定함 年 2 月日 主審 副審 委員 印 印 印
4 요 약 임베디드시스템인 RCX에탑재된 BrickOS(Brick Operating System) 는실시간태스크수행중두가지의지연요소를가진다. 첫번째지연은실시간태스크가생성되어실제수행에들어가는과정중에발생한다. 이는실시간태스크는실행할준비가되어있지만라운드로빈방식에의해다음타임퀀텀까지기다려야하는지연이다. 두번째지연은스케줄링알고리즘에의해발생한다. 실시간태스크가수행중일때호출되는스케줄러는특별한경우를제외하고는의미가없다. 때문에실시간태스크의수행중호출되는스케줄러는그자체로지연시간이된다. 이에본논문에서는위의두지연을해소하기위해스케줄러의호출방식에변화를주었다. 매일정한타임간격마다스케줄러를호출하는대신타이머인터럽트가발생할때마다스케줄러의호출여부를결정한다. 이를통해첫번째지연을감소시킬수있다. 그리고두번째지연을해결하기위해매순간마다실시간태스크의생성여부와실행여부를체크하도록하였다. 이는스케줄러의필요성을판별하기위한방법으로이를통해스케줄러의호출을제한함으로서두번째지연을감소시킬수있다. 본논문에서는위에서제안하는알고리즘을 BrickOS의커널분석과수정, 추가등을통해구현하는과정을보인다. 그리고비교실험을통해제안된알고리즘에서동작하는실시간태스크의수행에약 8% 의성능향상이있음을보인다. i
5 Abstract BrickOS(Brick Operating System) on top of RCX system has two latency factors against real-time characteristic. The first one happens between the real-time task s creating and beginning. When the operating system tries to start real-time job it couldn t start instantly. Because it has to wait until next time tick is over. So the latency can happen. Next lantency happens by BrickOS s scheduling algorithm. BrickOS tries to call the scheduler every time tick. But it is useless to call the scheduler while the real-time task is running. The reason is that it is impossible for any normal task to take CPU when the real-time task is running. Therefore, in that case calling the scheduler can be latency. To solve this latency problem, this paper suggests new scheduler calling method. Timer interrupt handler checks if new real-time task is made or not. If it is, they call the scheduler. This method calls the scheduler faster than original calling way. Timer handler also checks if there is a running real-time task. And it has any actions if there is. This means that there is no scheduler calling if any real-time task is running. So we can save more time to process the realtime task. This paper shows the process of implementation this algorithm in BrickOS through the kernel analysis and modification. And it also shows that the real-time task in the implemented system is 8% faster than the origin one by experiments. ii
6 목 차 제 1 장서론...1 제 2 장관련연구 MindStorm 및 RCX의소개 BrickOS kernel Kernel의시작 kernel의동작구조 메모리관리 Networking 실시간스케줄링 실시간스케줄링알고리즘의개념 정적우선순위스케줄링 동적우선순위스케줄링 제 3 장 BrickOS 스케줄링의문제점과개선방안 BrickOS의스케줄링기법 라운드로빈스케줄링기법 우선순위기반의선점형스케쥴링 기존스케줄링의문제점 태스크생성부터선점사이의지연 불필요한스케줄러의호출에따른지연 개선된실시간스케줄링 개선된실시간스케줄링알고리즘 개선된실시간스케줄러의구현 제 4 장실험및결과 실험환경 실험및결과 제 5 장결론 iii
7 제 1 장서론 오늘날다양한임베디드시스템에서실시간처리기능에대한요구가날로높아지고있다. 임베디드시스템인 RCX의기본펌웨어를대체하는 BrickOS(Brick Operating System) 역시실시간서비스를제공하기위해우선순위기반의라운드로빈방식의스케줄링방식을채택하고있다 [1,2]. 라운드로빈스케줄링방식은태스크의기아상태 (starvation) 을해소해주지만완료시간에대한고려를전혀하지않기때문에태스크의작업완료에있어최선의노력을해야하는실시간시스템에는적합하지않은알고리즘이다. 실시간태스크를수행하는데있어 BrickOS의스케줄링방식에는두가지의지연요소가생긴다. 첫번째지연은실시간태스크의생성에서실제수행에들어가는과정중에발생한다. 실시간태스크가생성되어실행할준비를끝마친상황에서태스크선점을하기위해다음스케줄러의호출까지기다려야한다. 이는최대타임간격만큼실시간태스크의수행이지연될수있다는것을의미한다. 매일정한간격으로호출되는스케줄러역시그자체로지연이될수있다. 실시간태스크는항상최우선순위를가지고수행이된다. 따라서수행중인실시간태스크가다른일반태스크에의해선점이되거나스위칭이되는경우는실제스케줄러의호출횟수만큼빈번하게일어나지않는다. 따라서기존알고리즘에의해호출되는스케줄러는특별한경우를제외하고는의미가없기때문에주기적으로호출되는스케줄러자체가태스크수행의지연을의미한다. 이에본논문에서는위의두지연을해소하기위해스케줄러의호출방식에 변화를주었다. 매일정한타임간격마다스케줄러를호출하는대신타이머 1
8 인터럽트가발생할때마다스케줄러의호출여부를결정하도록하였다. 이는태스크의시작시간을앞당길수있기때문에첫번째지연을감소시킬수있다. 두번째지연을해소하기위해서매타이머인터럽트마다실시간태스크의생성여부와실행여부를체크하도록하였다. 이는스케줄러의필요성을판별하기위한방법으로이를통해스케줄러의호출을제한함으로써두번째지연을감소시킬수가있다. 본논문은위에서제안하는알고리즘이 BrickOS의커널분석과수정, 추가등을통해구현되는과정을보이고실험결과를통해본논문에서제안한실시간시스템이기존의시스템에비해향상된실시간태스크수행능력을가지고있다는것을보여준다. 본논문의구성은다음과같다. 제2장에서는관련연구들을소개한다. 우선 BrickOS의커널에대해소개하고, 그다음으로현재연구되고있는실시간스케줄링에대해알아본다. 제3장에서는 BrickOS의스케줄링에서발생하는지연과그에따른문제점을알아보고이를해결하는대안을제시, 구현한다. 제4장에서는실험을통해제안된알고리즘의성능향상결과를보이며, 마지막제5장에서는결론및향후연구방향에대해설명하고끝을맺는다. 2
9 제 2 장관련연구 BrickOS의커널에대해알아보기전에실제구현에사용되었던통합개발킷인 MindStorm과그중 BrickOS를탑재할수있는임베디드시스템인 RCX 에대해간략하게알아본다. 2.1 MindStorm 및 RCX 의소개 Lego MindStorm Kit은여러가지레고 (Lego) 블록들과바퀴, 기어, 모터, 터치 (Touch) 센서, 빛센서, 적외선통신이가능한컴퓨터블록 (RCX) 을포함하고있는통합개발킷이다. RCX에는프로그래밍이가능하여, 사고 ( 思考 ) 가가능하다. 즉, 여러가지레고블럭들을컴퓨터블록 (RCX) 과연결하고적당한프로그래밍만해준다면, 로봇이된다 [1,2]. MindStorm은기본적으로 window 환경에서동작하는로봇개발환경을제공하며이는 GUI형식의프로그래밍으로, 아주쉽고, 간단하며, 신속하게 RCX를제어할수있는프로그래밍을할수있도록되어있다 [3]. 그렇지만 MindStorm에서제공하는프로그래밍환경에선가장기본적인제어만제공하기때문에 RCX를보다세밀하고자유롭게활용할수없다. 모터의세밀한조정및빛센서의세밀한감지도불가능하며, RCX의적외선통신도제어가불가능하다. 따라서, RCX를좀더완벽하게활용할수있도록, 많은사람들이 RCX 개발환경을개발하기시작했다. 현재까지개발된 RCX 개발툴로는프리소프트웨어 (Free Software) 인 NQC(Not Quite C) 나 C언어를통해 RCX를개발할수있는 RCXCC와 legos, 그리고 brickos가있다.[3] NQC나 RCXCC는 RCX에들어있는순정펌웨어 (Firmware) 를바탕으로동작하기때문에, 순정펌웨어의능력을넘는제어는불가능하다. 이에비해 legos와그차기버전인 brickos는운영체제로, RCX 펌웨어를교체한다. 따라서운영시스템자체가변경되고, 개발환경 (gcc) 이나 3
10 동작환경이모두바뀌어, RCX 는개선된성능을보인다 [4]. 또한, 자체통신 프로토콜을사용하여적외선통신을자유롭게구현할수있어, RCX 간의통신 도가능해진다. 본연구에사용된하드웨어인 RCX는 Hitachi H8/3292 마이크로컨트롤러칩이 RCX제어의대부분을담당하는데, 이칩에내장되어있는구성요소는크게 H8/300 CPU와 MEMORY, Input/Output으로나눌수있다. H8/300 CPU 는 10Mhz의 system clock으로동작하며 8bit와 16bit 연산을지원한다. RCX 에는총 8개의 16bit레지스터 (R0,R1, R7) 와 16bit 프로그램카운트레지스터 (PC), 8 bit condition code 레지스터 (CCR) 를가지고있다.[2] RCX에사용되는메모리는마이크로컨트롤러칩에내장되어있는 16Kbyte mask programmable ROM과 512byte RAM 그리고 128byte의온칩레지스터필드가있으며이와별도로 32Kbyte의외부 RAM이있다. 그외로 16bit 타이머와 2개의 8bit 타이머채널, A/D 컨버터와 I/O 포트들이있다. 2.2 BrickOS kernel Kernel 의시작 Kernel은 ROM에의해 kmain 함수가호출되면서시작한다. 이함수는싱글태스킹이나멀티태스킹모드로들어가기전 kernel의초기화를진행한다. 만약 task manager가 kernel에포함되어있지않다면오직싱글태스크모드로만작동하며동적프로그램로딩은불가능하게된다. 이논문에서는 task manager가동작하며멀티태스킹모드와동적프로그램로딩을지원하도록하였다. kernel이초기화되는동안시작되는태스크는 3개이다. 첫번째는아 4
11 무런동작도하지않는 idle 태스크이며나머지두개는동적프로그램로딩을위한 packet_consumer 태스크와 key_handler 태스크이다. packet_consumer 태스크는 IR-port의움직임을제어하는태스크로서패킷의송수신에관한일을한다. 그리고 key_handler 태스크는 RCX brick의버튼에대한제어권을가진태스크로버튼의움직임에대한행동을결정한다. 이세가지태스크가생성된후 task manager가실행되며태스크스위칭을시작한다 kernel 의동작구조 kernel은가장먼저메모리를초기화하며, 그외의필요한장치들을초기화한다. 시스템타임을초기화힐때는 16비트타이머에 1ms 마다 timer interrupt이발생하도록하고, ROM 은 timer interrupt가발생했을경우 ocia_vector가가리키는 systime_handler 함수를호출한다. systime_handler 함수는다양한서브시스템들의핸들러를차례로폴링하면서실제적으로 BrickOS를조종한다. 그리고이러한시스템은 BrickOS가각각의장치환경들과의통신수단으로인터럽트를쓰지않고폴링방식을사용한다는것을말한다. systime_handler는각각의핸들러를호출하는일이외에도일정한타임퀀텀이지나면 tm_switcher라는스케줄러를호출하는일을통해멀티태스킹을가능하게한다 메모리관리 BrickOS 는메모리관리에있어순차적인메모리할당방식을사용하고있다. 페이징이나세그멘테이션과같은고급메모리관리기법은하드웨어에서제공 5
12 해주지않고있다. 만약제공된다고해도매우부족한메모리공간때문에고 급메모리관리방식은오히려더많은오버헤드를발생시킨다 [5]. 메모리는커널부분과유저부분으로나누어저있으며커널코드와 static 커널데이터는 0x8000부터 mm_start 주소사이에위치한다. 메모리관리자는 mm_start 부터 0xFFFF까지의모든메모리를관리한다. 기본적인메모리구조는 [ 그림 2-1] 과같다. [ 그림 2-1] 메모리구조 6
13 2.2.3 Networking BrickOS는 usb IR tower를이용하여외부와통신을한다. 통신프로토콜로 LNP(LegOS Networking Protocol)[4] 를사용하며 Broadcast 성격의 Integrity 패킷과특정주소에만전달하는 Addressing 패킷으로나눌수있다. 패킷을수신하게되면, Receive Shift Register로수신데이터가도착하게되고, 수신된데이터가이상없다면, Receive Data Register로수신데이터가옮겨진다. Receive Data Register로수신데이터가옮겨지면, RDR-FULL Flag의 Flip으로인하여인터럽트처리기 (ISR) 가발생해, Receive-end interrupt(rxi) vector인 rx_handler를호출하게된다. rx_handler는 collision, checksum등을계산하고, 패킷의종류에따라, Integrity 또는 Addressing Handler를호출하여, User에게수신된데이터를전달한다. 패킷의송신은버퍼로송신할패킷을복사한후, Serial Control Register를변경하여, Send interrupt vector인 tx_handler를호출하여, 버퍼의내용을전송하게된다. BrickOS는자신의패킷이아닐경우에는버리도록되어있으므로, 다른 RCX로부터의패킷중계 (Routing) 가불가능하다. 2.3 실시간스케줄링 실시간스케줄링알고리즘의개념 실시간스케줄링알고리즘의정의는어떠한자극에대해처리할수있는시간이예측가능하고또한완료시간이지켜져야하는일에대해서완료시간에대한보장을해줄수있는스케줄링알고리즘을의미한다. 여기서중요한사항은 예측가능 해야된다는것과 완료시간에대한보장 이가능해야된 7
14 다는것인데일반적인리눅스나윈도우즈같은범용 OS 는이러한예측가능 성과완료시간에대한보장을해주지못하기때문에실시간 OS 로써적합하 지않다 [6]. 여기에는 soft real-time과 hard real-time으로다시분류될수있는여지가있므며, 대부분의 real-time class process들은상용시스템에서완벽히 hard real-time을지원해주고있지는못하다 [7]. 완전한 hard real-time보다는 soft real-time을지원한다는말은반드시어떤주어진시간안에는마치지못하더라도그연산의결과가받아들일만하다고여긴다는말이다. 이논문에서제안하는알고리즘은지연시간의감소를통한 best effort service를제공한다. 즉 hard real-time 보다는 soft real-time의요구를만족시킨다. 또다른실시간스케줄링알고리즘의분류방법으로정적우선순위스케줄링 (Static Priority Scheduling) 알고리즘과동적우선순위스케줄링 (Dynamic Priority Scheduling) 알고리즘으로나누는방법이있다 [8]. 정적우선순위스케줄링알고리즘은우선순위가한번정해지면변하지않는방식이며, 동적우선순위스케줄링알고리즘은상황에따라서우선순위가변할수가있다. 동적우선순위스케줄링알고리즘은스케줄링당시의상황에따라매번우선순위를계산하여야하기때문에구현이복잡하고정적스케줄링알고리즘에비해많은시간을요구한다는단점이있으나실제모든태스크의실시간제약을만족시키는데에있어서는정적스케줄링알고리즘보다보다효율적이다 정적우선순위스케줄링 정적우선순위 (Static Priority) 는태스크가생성될때, 최초로정해지게되고, 8
15 태스크수행중에는바뀌는경우가생기지않는다. 보통은컴파일시에고정 된값으로주게된다. 정적우선순위방식을사용하는스케줄링에는 Rate Monotonic (RM) 과 DeadLine Monotonic (DM) 이있다. Rate Monotonic (RM) Rate Monotonic 방식은각각의태스크중생성주기가가장짧은태스크가가장높은우선순위를가지는스케줄링방식이다. [ 그림 2-1] 은 RM 스케줄링방식에대하여설명한것으로그림의세개의태스크는모두일정한간격으로생성되고있다. 그리고가장빠른생성주기를가지고있는태스크 1은스케줄링알고리즘에따라선점의최우선권을가지며태스크 2와태스크 3은그뒤를따르고있다. [ 그림 2-1] 의마지막라인은이세개의태스크들이서로선점되는과정을보여주며 violation of deadline 지점에서태스크 3의수행시간이데드라인을넘어가는것을알수있다. [ 그림 2-1] RM 으로스케줄링한예 9
16 Deadline Monotonic (DM) Deadline Monotonic 스케줄링은말그대로데드라인이가장짧은태스크에게가장높은우선순위를준다. [ 그림 2-3] 을보면태스크 2가가장짧은데드라인을가지고있다는것을알수있다. 그리고정적스케줄링방식이기때문에태스크의종료까지이순위는변하지않는다. 따라서태스크 2는다른태스크보다우선해서실행된다. [ 그림 2-3] DM 으로스케줄링한예 동적우선순위스케줄링 동적우선순위 (Dynamic Priority) 는수행중에언제든지태스크의우선순위 를바꾸는것이가능한경우를말한다. 동적우선순위방식을사용하는스케 10
17 줄링에는 Earliest DeadLine First (EDF) 와 Time Driven Scheduler (TDS), Least Laxity First (LLF), Shortest Remaining Time (SRT) 등이있다. Earlist Deadline First (EDF) DM(Deadline monotonic) 스케줄링방식과마찬가지로가장짧은데드라인을가지고있는태스크에가장높은우선순위를준다. 그러나동적으로할당되기때문에이우선순위는시간의경과에따라바뀔수있다. [ 그림 2-4] 에서보면처음에는가장짧은데드라인을가지고있는태스크 2가가장높은우선순위를가지고선점이되는것을볼수있으나태스크 3의데드라인에가까워질수록태스크 3에게우선권을뺏기고있는것을알수있다. 따라서모든태스크의실시간요구를만족시키는데적합한스케줄링방식이라는것을알수있다. [ 그림 2-4] 에서도지금까지와는다르게태스크 3의데드라인역시지켜짐을볼수있다. [ 그림 2-4] EDF 로스케줄링한예 11
18 제 3 장 BrickOS 스케줄링의문제점과개선방안 3.1 BrickOS 의스케줄링기법 brickos는표면적으로실시간오퍼레이팅시스템임을표방한다. 그이유로 brickos가라운드로빈스케줄링방식과우선순위기반의선점형스케줄링방식을혼합하여사용한다는것을들수있다 라운드로빈스케줄링기법 라운드로빈스케줄링은각태스크에게 CPU 실행시간을골고루나눠준다. 각태스크는라운드로빈이라는이름이뜻하는것처럼지정된시분할시간만큼번갈아가면서수행된다 [9]. 런타임카운터는클럭틱 (clock tick) 마다각태스크의남아있는수행시간을점검한다. 태스크가지정된시분할을모두소모하면카운터를지운뒤태스크를라운드로빈사이클의마지막에둔다. 새로추가된같은우선순위의태스크역시라운드로빈사이클의마지막에놓여진다. 이때태스크의런타임카운터는 0으로초기화된다. 아래의 [ 그림3-1] 은라운드로빈스케줄링방식을그림으로표현하였다. [ 그림 3-1] 라운드로빈스케줄링기법 12
19 BrickOS 에서의라운드로빈스케쥴링 [ 그림 3-2] 는 task_switch_handler 함수의일부분으로라운드로빈 스케줄링에직접적인영향을미치는부분이다. [ 그림 3-2] task_switch_handler 함수 task_switch_handler 함수는타이머인터럽트가발생할때마다호출되는함수이다. RCX에서타이머인터럽트는매 1ms마다발생하기때문에빠른수행을위해어셈블리어로작성되었으며매수행시마다각각의외부장치들의핸들러를호출하여동작여부를결정한다. 이러한것으로미루어볼때 BrickOS는외부장치와의통신수단으로인터럽트방식대신폴링 13
20 방식을사용한다는것을알수있다. [ 그림 3-2] 는그중라운드로빈스케줄링을하는부분으로매호출시마다 tm_current_slice값을감소시킨후 0이되었을때 tm_switcher_vector가가리키는곳으로 jump하는것을볼수있다. tm_switcher_vector에는현재동작하고있는스케줄러의주소가담겨있으므로즉일정한시간이지나면스케줄러를호출시킨다. 현재 brickos의 default tick값은 20으로되어있기때문에매 20msec마다스케줄러의호출이일어난다 우선순위기반의선점형스케쥴링 [ 그림 3-3] 과같이우선순위기반의선점형스케줄링알고리즘을사용할경우, 임의의시점에수행중인태스크는항상시스템에서실행가능상태에있는태스크중우선순위가가장높은태스크이다 [9,10]. 우선순위기반의선점형스케줄러는각태스크별로우선순위를매긴후가장높은우선순위를가진태스크를수행시킨다. 현재실행중인태스크보다우선순위가높은태스크가실행가능상태가되면커널은즉시현재태스크의문맥을 TCB에저장하고우선순위가더높은태스크로실행권을넘긴다. [ 그림 3-3] 우선순위기반의선점형스케줄링 14
21 BrickOS 에서의우선순위기반의선점형스케줄링 BrickOS 에서는 [ 그림 3-4] 에서보듯이 3 가지의서로다른우선순위를제공 하고있다. [ 그림 3-4] brickos 에서제공하는우선순위 그리고각태스크의상태를아래와같이 4 가지 [10] 로분리해놓고있다. task Running task 가실행되고있는상태를의미한다. 해당태스크는 Round Robin 스케줄링이아닌이상언제든지자신보다우선순위가높은태스크가없다면 수행될수있다. 라운드로빈스케줄링에서는차례대로수행된다. task Wating 해당태스크가어떠한이벤트를기다리면서대기하는상태이다. 이러한 이벤트에는 signal, irq, io request, semaphore 자원등이있을수있다. task Sleeping 해당태스크는 IDLE 상태이나언제든지실행할준비가되어있다. task Zombie 해당태스크는수행이종료되어있는상태이다. 그러나메모리스택이아직 반환되지않았기때문에태스크정보가메모리에남아있다. 15
22 BrickOS 는 [ 그림 3-4] 의우선순위정보와해당태스크들의상태에대한 정보를바탕으로선점이가능한스케줄링서비스를제공해주고있다 [ 그림 3-5] 는 brickos 의스케줄링알고리즘을보여준다. [ 그림 3-5] brickos 의스케줄링알고리즘 16
23 스케줄러가호출될때현재수행중인태스크의스택포인터 (old_sp) 를인자로가지고온다 [5]. 이는태스크의스택에실제태스크의수행코드의시작위치가저장되어있기때문이다. [ 그림 3-6] 을보면태스크의종료위치와시작위치가태스크스택의맨상단에위치해있음을알수있다. 스케줄러실행중현재태스크를수행시킬필요가있을때인자로가져온스택포인터를활용한다. Address of interrupted task s next instruction ROM callee saved data &rom_ocia_return &systime_tm_return saved context of current task, R1...R5 [ 그림 3-6] SLEEPING 태스크의스택구조 BrickOS는우선순위기반의선점형서비스를지향하고있기때문에스케줄링시가장높은우선순위를찾아야한다. BrickOS는이를위해두개의리스트를이용하여스케줄링을하고있다. 그림 [3-7] 을보면각각의우선순위노드에태스크노드들이달려있는것을볼수있다. 그리고가장높은우선순위노드는항상 P_HEAD로지정되어있다. 스케줄러가호출되면가장먼저 P_HEAD 를찾는다. 이는다음수행할태스크를찾을때항상가장높은우선순위를가지는노드에서부터시작한다는것을의미한다. 또한그우선순위노드의태스크들이모두종료되지않으면다음우선순위의태스크는실행될수없다. 예를들어그림 [3-7] 에서가장높은우선순위인 20에달려있 17
24 는 3개의태스크들의상태가모두 task_waiting 이거나 task_jombie가아니면다음우선순위인 10과 1의태스크들은실행되지않는다. 더불어매 20mec마다스케줄러의호출이일어나는라운드로빈방식이기때문에새로운상위우선순위의태스크가생성되면스케줄러호출시태스크스위칭, 즉태스크선점이일어나게된다. 이를종합해볼때 BrickOS는우선순위기반의선점형서비스를지원한다. [ 그림 3-8] 은이를그림으로나타내고있다. [ 그림 3-7] 우선순위리스트와태스크리스트의관계 [ 그림 3-8] 선점형스케줄링과라운드로빈스케줄링의사용 18
25 3.2 기존스케줄링의문제점 태스크생성부터선점사이의지연 실시간서비스가필요한태스크는수행중의불필요한시간의지연을최소화해야한다 [11,12]. BrickOS는태스크간에우선순위에의거하여선점을허용하지만즉각적인태스크의교환을지원하지는않는다. 따라서라운드로빈스케쥴링방식을사용하고있는 BrickOS는선점을유도할다음스케쥴러의호출까지지연을생성시킬수있다. [ 그림 3-9] 에서보듯이태스크1의수행중실시간태스크인태스크2가실행큐에들어왔을때실제수행까지지연이생긴다. 즉실시간서비스를원하는태스크가실행큐에들어왔을때다음스케쥴러호출까지최대시분할간격만큼의불필요한시간을소모하게된다. [ 그림 3-9] 태스크생성시발생하는지연시간 19
26 3.2.2 불필요한스케줄러의호출에따른지연 BrickOS의스케쥴러에서발생시키는또다른지연으로스케줄러호출자체를들수있다. 우선순위기반의선점형알고리즘은해당우선순위목록에수행될태스크가존재하면더높은우선순위를가지는태스크가우선순위리스트에새로이추가되는경우와해당우선순위리스트에수행중인태스크가모두제거되거나 WAITING상태에빠지지않는한하위우선순위목록에있는태스크를수행시키지않는다 [5]. 이는만약가장높은우선순위리스트에태스크가하나만존재하면이후반복되는스케줄러가그태스크가종료할때까지계속하여현재수행중인태스크를선택한다는말이된다. 따라서하나의실시간태스크가가장최상위우선순위를가질경우에스케줄러는다른태스크를실행시키지않는다. 결과적으로최우선순위를가진실시간태스크가있을때스케줄러는호출할때마다실시간태스크를선택한다. 그러므로실시간태스크가수행중에는호출되는스케쥴러의필요성은상실되게된다. 따라서불필요한스케줄러의호출을제한할경우 [ 그림 3-10] 에서보듯이전체태스크수행시간에서태스크교환에따른부가적인동작시간과스케줄러자체의수행시간만큼을줄일수가있다. [ 그림 3-11] 의윗그림은일반적인태스크수행시중간중간수행되는스케줄러를보여주고있다. [ 그림 3-11] 의아래그림은태스크수행시스케줄러의호출을제한한모습이다. 그림에서보듯이지속적인태스크수행시스케줄러의호출을제한하면태스크수행시간의지속적인감소효과를낼수가있다. 그러나이처럼스케줄러의호출을제한하면여러가지문제점을야기시키게된다 [13,14]. 따라서이러한문제점을보완하면서수행속도를향상시키는방법이필요하다. 이는다음장에서다루도록한다 20
27 [ 그림 3-10] 스케쥴러호출시소요시간 [ 그림 3-11] 태스크수행시간비교 21
28 3.3 개선된실시간스케줄링 개선된실시간스케줄링알고리즘 전장에서언급한문제점들은일정한타이머틱을두고스케줄러를호출하는라운드로빈스케줄러이기에발생되는문제이다. 라운드로빈방식은모든프로세스에게고른 CPU 시간을주기때문에프로세스의기아현상을해결하고동시에여러일을처리하기에는효율적이나일의중요도에따라작업이할당되야하는실시간시스템에는부적합하다. BrickOS는이를보완하기위해우선순위에따른선점형서비스를제공하였으나 3.2절에서언급했던것과같이몇가지미흡한점이있다. 따라서이를해결하기위해서는라운드로빈방식을포기하여야하나실시간태스크를제외한일반태스크의스케줄링을위해서는라운드로빈방식이필요하다. 그러므로기존의스케줄러와새로설계될실시간스케줄러는서로공존하면서필요에따라번갈아호출되어야한다. 이는이전에연구가되었던이중실시간스케줄링방식 [12] 과기본적인컨셉은같지만스케줄링호출에있어 BrickOS의 kernel에맞게변형이되었다. [ 그림 3-12] 는새로제안하는알고리즘을위해커널상에서수정되어야하는타이머인터럽트핸들러와새로운실시간스케줄러의동작과정을보여주고있다. 매 20sec마다스케줄러를호출하는기존의방식과는달리매 1ms마다호출되는타이머인터럽트핸들러에서스케줄러의호출여부를매번판단한다. 이때호출여부의판단시간을최대한으로줄이기위해단순히플래그의세팅여부에따라이를판단하도록하였다. 새로운실시간태스크가생성되면다음타임틱까지기다리지않고즉시스케줄러를호출한다. [ 그림 3-12] 에서보듯이새로이생성된실시간태스크가있으면기존의스케줄러호출 22
29 시스템을정지시킨다. 실시간태스크가수행중일때는일반태스크의수행이필요가없기때문이다. 그런다음실시간스케줄러를호출한뒤태스크가종료할때까지실시간스케줄러를호출하지않는다. 이를통해새로운실시간태스크가생성시생기는지연과불필요한스케줄러의호출에의해야기되는지연을줄일수있다. [ 그림 3-12] 타이머인터럽트핸들러와실시간스케줄러의동작과정 개선된실시간스케줄링알고리즘에는실시간태스크를정지시키고스케줄링을해야할예외상황이있는데 [ 그림 3-12] 에나와있듯이크게 3가지로나눌수가있다. 첫번째는실시간태스크의수행중또다른실시간태스크가들어왔을때두실시간태스크간의중요성여부를판단하기위해서다. 그러나이논문에서는실시간태스크수행중발생하는지연시간을줄이는것에중점을두고있으며실시간태스크간에우선순위에는차이를주지않기때문에실시간태스크간의스케줄링은고려하지않았다. 따라서새로운실시간태스크는단순히실시간태스크의실행큐에가장뒤에위치하도록하였다. 두번째예외사항은실시간태스크를생성하는데 23
30 필요한일반태스크의수행이요구될때이다. 현재 BrickOS에서는실시간태스크수행중패킷송수신작업은불가능하다. 그러나어떤실시간서비스를요구하는패킷이전송되었거나전송될필요가있을때이를처리해주는작업이필요하다. 마지막은실시간태스크가어떠한이벤트를기다리고있을상황이다. 이때는이벤트의발생까지자원의효율성을위해일반태스크를실행하는것이바람직하다. 따라서이벤트가일어나기전까지기존의스케줄링방식으로복귀한다. [ 그림 3-13] 은이러한모든상황을고려한최종스케줄링알고리즘을순서도로보여준다. [ 그림 3-13] 개선된실시간스케줄링알고리즘에대한순서도 24
31 3.3.2 개선된실시간스케줄러의구현 위에서제시한알고리즘을구현하기위해서는크게타이머인터럽트핸들러 와태스크생성함수의수정그리고실시간스케줄러함수가필요하다. 타이머인터럽트핸들러 [ 그림 3-14] 는수정된타이머인터럽트핸들러의코드의일부로서타이머인터럽트가발생할때스케줄러의호출을담당하는부분이다. 실시간태스크의생성여부와현재수행중인실시간태스크의존재여부를알기위해 f_new_rtask, f_run_rtask 두개의플래그가사용되었다. 새로운실시간태스크가생성되면크리티컬섹션을체크한뒤실시간스케줄러를호출한다. 만약새로운실시간태스크가생성되지않았지만현재수행중인실시간태스크가존재하면스케줄러를호출하지않는다. 만약위의조건에모두만족되지않으면기존의스케줄링알고리즘에따라태스크의동작여부가결정된다. [ 그림 3-14] 의코드에대한설명은다음과같다. A : 새로운실시간태스크의생성여부를판별, 만약새로이생성된실시간태스크가있으면실시간스케줄러의호출을위해크리티컬섹션을체크한다. 크리티컬섹션체크에실패하면다음인터럽트발생때다시시도한다. 크리티컬섹션체크에성공하면실시간스케줄러의호출을위해 rt_switch로분기한다. B : rt_switcher_vector 값으로분기, 즉실시간스케줄러함수로분기한다. C : 현재수행중인실시간태스크가있는지를확인한다. 있을경우스케줄러의 호출을제한한다. D : 기존의스케줄링알고리즘에따라동작한다. 25
32 [ 그림 3-14] 수정된타이머인터럽트핸들러함수 26
33 수정된태스크생성함수 ( new_execi() execi() ) 기존의 BrickOS에서 execi() 함수는메모리할당과태스크구조체생성등태스크생성에필요한일반적인작업을한뒤새로생성한태스크를할당받은우선순위에따라실행리스트 (RUN QUEUE) 에삽입해주는작업을했다. 수정된생성함수는실행리스트에삽입하기전까지는전과동일한작업을한다. 그러나기존에있는실행리스트와는별도로있는실시간실행리스트에새로생성된태스크를삽입한뒤 f_new_rtask를세팅하여타이머인터럽트핸들러에이를알린다. 만일실행리스트에다른실시간태스크가존재하면새로운태스크는기존의태스크리스트의가장뒤에붙는다. [ 그림 3-15] 는 new_execi() 의코드중이에관련된부분을보여준다. [ 그림 3-15] 수정된 execi() 함수 27
34 실시간스케줄러함수 (realtime realtime_tm_scheduler) 현재실행중인실시간태스크의상태를확인한후다음실행할태스크를찾는역할을한다. 실시간태스크의스케줄링만을관할하기때문에실시간태스크가없을시에는호출되지않는다. 실시간태스크간의우선순위를두지않았기때문에단순히다음실시간태스크로의전환만이주된임무이다. 전환이일어나는상황은새로운실시간태스크의생성에관련한일반태스크의작업이필요할때와현재수행중이실시간태스크가새로운이벤트를위해대기하고있을때이다. 실시간태스크간에도우선순위를두어작업의경중을조절할수있지만본논문에서지향하는지연시간감소와큰관련이없기때문에차후에구현하도록한다. [ 그림 3-16] 은실시간스케줄러함수의코드중중요부분을보여준다. [ 그림 3-16] 실시간스케줄러함수 28
35 제 4 장실험및결과 4장에서는본논문에서구현한실시간시스템을대상으로, 실시간태스크를생성하고이를처리하는과정에대한실험및결과를보여준다. 또한기존의스케줄링방식과비교하여본논문에서제안한실시간스케줄링방식의성능을평가한다. 4.1 실험환경 본논문에서제안한실시간시스템은리눅스커널 2.6.8버전의데비안 리눅스 시스템에서 h8300-hitachi-hms-gcc 버전의 크로스 컴파일러를이용하여구현하였다. host 컴퓨터의시스템사양은 Pentium III 800MHz의 PC를 사용하였고, firmdl3와 dll 프로그램을 업로드용으로 사용하였다. 실험데이터를판별하기위해 RCX의외부출력장치중하나인 lcd를고려하였으나표현가능한숫자가 4자리를넘지못하기때문에정상적인결과데이터출력이불가능하였다. 이에호스트컴퓨터와의통신을통해결과데이터를 host 컴퓨터에서확인하는방법을채택하였다. 이를위해 lnphost 프로그램을사용하였으며 lnphost[15] 는 host 컴퓨터가받은패킷중 lnp 프로토콜을사용하는모든데이터를화면에출력하는프로그램이다. 본논문에서제한하는실시간시스템의성능향상정도를측정하기위해태스크의수행속도를측정하여야했다. 그리고이를위해시스템에서제공하는 get_system_up_time 함수를사용하였다. get_system_up_time 함수는현재의시스템타임값인 sys_time값을반환하는함수이다. 29
36 4.2 실험및결과 실험은총 3가지로분류하여시행되었다. 첫번째는단일실시간태스크의생성부터시행까지의과정중발생하는지연을줄이는알고리즘의성능을평가하기위한실험이며, 두번째는실시간태스크수행시불필요한스케줄러의호출을막아태스크수행속도의향상을도모하는알고리즘을평가하는실험이다. 3번째실험은위의두가지알고리즘을모두적용시켰을시즉, 본논문에서제안한실시간시스템을사용했을시단일실시간태스크의수행속도향상정도를측정하였다. 모든실험은하나의단일실시간태스크를사용하였다. 이단일실시간태스크는하나의 LOOP만을가지고있는더미태스크다. 그리고각각의실험은 LOOP의횟수를변경하면서수행된다. 이는실시간태스크의작업량에따른수행시간의변화를보기위해서이다. 그외에수행중인태스크는 BrickOS가서비스하는 3개의일반태스크가있다. 이태스크들은가장높은우선순위를가지고실행중이며모두외부장치의이벤트를기다리고있다. 본실험에서는실시간태스크의실행중야기되는지연을해소함으로서얻을수있는시간의이익을아는것이목적이기때문에일반태스크의이벤트가일어나지않도록하였다. 따라서실험태스크는필요한자원이나이벤트를요구하지않으며태스크수행중이벤트상태에빠지지않도록하였다. 모든실험에서의데이터값은태스크의생성에서부터종료까지걸린총시간이며그사이에수행속도에영향을줄수있는타이머인터럽트를제외한외부인터럽트를발생시키지않았다. 또한새로운일반태스크의생성및종료와같은이벤트역시수행되지않으며외부와의통신역시실험태스크의수행중이아닐때만가능하다. 30
37 < 실험 1> [ 표 4-1] 은실시간태스크생성부터수행까지의지연을없애는알고리즘을적용한후실험한결과이다. 결과에서보듯이개선된스케줄링을사용할경우태스크수행시간의감소를보이고있다. 그렇지만전체태스크속도에있어크게영향을미치는수준은아니며태스크의작업량에따라감소되는양의변화는미미하기때문에작업량이많아질수록줄어드는시간의비율은점점감소한다. [ 표 4-1] 태스크생성시발생하는지연감소 loop 횟수기존스케줄링개선된스케줄링수행시간의차이 ms 9394 ms -166 ms (1.73%) ms ms -168 ms (1.14%) ms ms -166 ms (0.86%) ms ms -168 ms (0.70%) ms ms -169 ms (0.59%) < 실험 2> 두번째실험은실시간태스크의수행시불필요한스케줄러의호출을 제한하는알고리즘을적용하였다. [ 표 4-2] 에서보듯이이알고리즘을 적용하면전체실시간태스크의수행시간이감소한다는것을알수있다. 31
38 게다가기존스케줄링방식에서의태스크수행시간과개선된스케줄링방식에서의태스크수행시간의차이는선형적으로증가한다. 이는태스크의작업량이많아지는것에비례하여줄어드는시간역시증가한다는것을의미한다. 따라서일정한비율만큼의수행시간감소효과를낼수있다. [ 표 4-2] 스케줄러호출제한에따른태스크수행시간의변화 loop 횟수기존스케줄링개선된스케줄링수행시간의차이 ms 8796 ms -774 ms (8.09%) ms ms -924 ms (6.43%) ms ms ms (6.52%) ms ms ms (5.95%) ms ms ms (6.39%) < 실험 3> 이번실험에서는위의두알고리즘을복합하여구현한실시간시스템에서태스크의수행시간을측정하였다. 측정결과기존스케줄링방식을사용했을때보다개선된실시간스케줄링알고리즘을적용했을시확실한수행시간의감소가나타남을알수있었다. 감소의폭또한위의두알고리즘을적용했을때보다컸으며차이또한지속적으로증가하였다. 이를통해본논문에서제안한시스템에서의실시간태스크수행이기존의시스템에서보다빠르게완료됨을확인할수있었다. [ 표 4-3] 은실험결과를표로, [ 그림 32
39 4-1] 은결과값을그래프로나타내고있다. [ 표 4-3] 기존시스템과실시간시스템사이의태스크수행시간비교 loop 횟수기존시스템실시간시스템수행시간의차이 ms 8793 ms -758 ms (7.93%) ms ms ms (8.08%) ms ms ms (8.28%) ms ms ms (8.09%) ms ms ms (7.80%) 작업량이늘어나도일정한비율을유지하며수행시간의감소가일어남을알 수있다. 이는작업량이증가하면지연시간의감소역시늘어난다는것을 의미한다. 밑의그래프는이러한선형적인차이를그래프로보여준다 수행시간의차이 loop 횟수 [ 그림 4-1] 기존시스템과실시간시스템간의태스크수행시간차이 33
40 제 5 장결론 BrickOS는기존의 RCX 펌웨어를능가하는임베디드오퍼레이팅시스템이다. 이오퍼레이팅시스템은기존펌웨어보다보다더많은서비스를 RCX에제공하기위해다양한기능을구현하였다. 우선순위기반의선점형스케줄링방식은그중에하나로써 BrickOS는이스케줄링방식을통해실시간서비스의지원을도모하였다. 그러나실제실시간서비스를제공하기에는몇가지문제점이있다. 실제 BrickOS는실시간태스크의수행을위한어떠한자료구조도지원하고있지않다. 뿐만아니라실시간서비스인점을고려해서기존의스케줄링방식은몇가지의지연시간을가지고있기때문에 Best Effort Service를지원해야하는실시간오퍼레이팅시스템에서이러한스케줄링방식은적합하지않다. 이에본논문에서는 BrickOS가실시간태스크를처리할수있도록기본자료구조를추가하였다. 그리고기존시스템에서실시간태스크를처리할때일어나는지연시간을보완할수있는새로운실시간스케줄링알고리즘을제안하였다. 또한제안한알고리즘을실제로구현하기위해 BrickOS의커널을분석하였으며, 커널중태스크의생성과스케줄링에관련된부분들을수정, 추가하였다. 그리고제안된알고리즘의성능향상을평가하기위한실험은본논문에서제안한알고리즘에서의실시간태스크수행이기존의스케줄링방식보다약 8% 정도빠르게진행되었다는것을보여주었다. 이는제안한실시간시스템이지연시간의감소를통해기존의시스템보다향상된 best effort service를해준다는것을의미하며더불어보다향상된실시간성을가지고있다는것을말한다. 하지만본논문에서제안한실시간태스크에는보완해야할점이있다. 서로 34
41 다른실시간태스크간에스케줄링알고리즘이정의되어있지않다는점이다. 단일의실시간태스크만이동작할때는문제가없지만동시에여러개의실시간태스크가작업을요구할때는단순히 FIFO의법칙에의해태스크가동작하므로나중에들어온태스크의실시간성을지켜주는데문제가생길수있다. 이를위해서는향후에따로분리된실시간스케줄러에 EDF 나 LLF 방식을적용하여서로다른실시간태스크들간의스케줄링도고려해야주어야한다. 35
42 참고문헌 [1] Ole Caprani, "RCX Manual", Manual.dir/RCXManual.html, Last updated [2] Kekoa Proudfoot, RCX Internals, stanford CA-LAB, graphics.stanford.edu/~kekoa/rcx, 1998,1999 stig. [3] Stephen M Moraco, Installing legos on Debian GNU/Linux Systems, 8 October, [4] 이호익, 이대성, 김기창, legos(lego Operating Systme) 의커널분석 및수정을통한 RCX 간의 Routing 구현, 제 29 회한국정보과학회추계학술 발표회논문집 (I), pp , [5] stig Nielsson, Introduction to the legos kernel, sourceforge.net/docs/kerneldoc.ps, September 27, [6] 김성민, 김윤수, 신동준, 송재각, 김주용, 고건 FreeBSD 상에서의 실시간스케줄러의설계및구현, 한국정보과학회학술발표논문집 Vol.21, No.2, [7] William Wong, Embedded/systems/Software Editor, BASICS of Design REAL-TIME OPERATING SYSTEMS, A Supplement to Element to Electronic Design, September 1. [8] 최영호, 백창우, 조경민, Real Time OS for Ubiquitous Computing,
43 [9] Qung Li Caroline Yao, RTOS 를이용한실시간임베디드시스템디자인, CMPBOOKS, 2004, 2, 6. [10] 김남윤, 신혁식, 김일석, 김연철, 내장형시스템을위한실시간커널의 설계및구현, 한국정보과학회가을학술발표논문집 Vol, 20, No. 2, 1993 [11] 한대만, 최만억, 구용완, 주기태스크의종료시간을보장하기위한 확장된혼합실시간스케줄링알고리즘, 한국정보과학회가을 학술발표논문집 Vol.26.No.2, [12] 인치호, 실시간제약커널환경하에서의이중실시간스케줄링설계, 전력전자학회논문지제 6 권제 4 호 Toby Miller, "Detecting Loadable Kernel Modules", org/docs/lkm.htm, [13] 최정훈, 김경화, 김두상, " 실시간리눅스에서선택알고리즘을이용한 스케줄링성능평가, 한국정보과학회가을학술발표논문집 Vol. 29. No. 2, [14] Andreas Gerstlauer, Haobo Yu, Daniel D.Gajski, RTOS Modeling for System Level Design, Proceedings of the Design, Automation and Test in Europe Conference and Exhibition, IEEE, 2003 [15] Stephan Hohrmann, sourceforge.net, Lnphost project, lnphost.sourceforge.net,
<4D F736F F F696E74202D20322DBDC7BDC3B0A320BFEEBFB5C3BCC1A6>
컴퓨터시스템구성 2. 실시간운영체제 1 2 운영체제의주요기능 프로세스관리 (Process management) 메모리관리 (Memory management) 인터럽트핸들링 (Interrupt handling) 예외처리 (Exception handling) 프로세스동기화 (Process synchronization) 프로세스스케쥴링 (Process scheduling)
More information저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할
저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할수없습니다. 변경금지. 귀하는이저작물을개작, 변형또는가공할수없습니다. 귀하는, 이저작물의재이용이나배포의경우,
More information(2002).hwp
工學碩士學位論文 광대역육각형평판모노폴안테나 A Wideband Hexagonal Plate Monopole Antenna 忠北大學校大學院 電波工學科電波通信工學專攻 李相吉 2006 年 2 月 工學碩士學位論文 광대역육각형평판모노폴안테나 A Wideband Hexagonal Plate Monopole Antenna 指導敎授 安炳哲 電波工學科電波通信工學專攻 李相吉
More information<4D F736F F F696E74202D20BBE7BABB202D204F DC7C1B7CEBCBCBDBA20BDBAC4C9C1D9B8B528BAF1BCB1C1A12CBCB1C1A1292E707074>
. 프로세스스케줄링 (= CPU 스케줄링 ) [ 출제빈도 상 ] - 정의 : 컴퓨터시스템의성능을높이기위해그사용순서를결정하기위한정책 - 목적 ( 성능평가 ) : 처리율증가, CPU 이용률증가, 우선순위제도, 오버헤드 ( 부하 ) 최소화, 응답시간 / 반환시간 / 최소화, 균형있는자원의사용, 무한연기회피. 프로세스스케줄링기법 ) 비선점스케줄링 (Non Preemptive)
More information저작자표시 - 비영리 - 동일조건변경허락 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 이차적저작물을작성할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비
저작자표시 - 비영리 - 동일조건변경허락 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 이차적저작물을작성할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할수없습니다. 동일조건변경허락. 귀하가이저작물을개작, 변형또는가공했을경우에는,
More informationuntitled
Embedded System Lab. II Embedded System Lab. II 2 RTOS Hard Real-Time vs Soft Real-Time RTOS Real-Time, Real-Time RTOS General purpose system OS H/W RTOS H/W task Hard Real-Time Real-Time System, Hard
More information학습목표 ü 01_ 소개 ü 02_ 스케줄링수준 ü 03_ 선점형 / 비선점형스케줄링 ü 04_ 우선순위 ü 05_ 스케줄링목적 ü 06_ 스케줄링기준 ü 07_ 스케줄링알고리즘 ü 08_ 데드라인스케줄링 ü 09_ 실시간스케줄링 ü 10_ 자바스레드스케줄링 2/23
Ch08_ 프로세서스케줄링 운영체제론 학습목표 ü 01_ 소개 ü 02_ 스케줄링수준 ü 03_ 선점형 / 비선점형스케줄링 ü 04_ 우선순위 ü 05_ 스케줄링목적 ü 06_ 스케줄링기준 ü 07_ 스케줄링알고리즘 ü 08_ 데드라인스케줄링 ü 09_ 실시간스케줄링 ü 10_ 자바스레드스케줄링 2/23 01_ 소개 o 프로세서스케줄링정책 주어진시간에시스템이실행할프로세스를선택하는작업
More information<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>
뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationMicrosoft PowerPoint - Introduction.pptx
Introduction to Embedded Linux 임베디드시스템 정의 어떤특정한기능을위해 Microprocessor/Microcontroller 가내장된시스템 특징 제한된하드웨어자원 ( 최소한의필요한자원 ) Processor, RAM, Flash memory, interfaces 경량의 OS 및 Real-Time OS 사용 WinCE, Vxworks,
More informationChapter #01 Subject
Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned
More informationESP1ºÎ-04
Chapter 04 4.1..,..,.,.,.,. RTOS(Real-Time Operating System)., RTOS.. VxWorks(www.windriver.com), psos(www.windriver.com), VRTX(www.mento. com), QNX(www.qnx.com), OSE(www.ose.com), Nucleus(www.atinudclus.
More information<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F E687770>
2.4 스케줄링 (1) 스케줄링의개요스케줄링은프로세스가생성되어실행될때필요한시스템의여러자원을해당프로세스에할당하는작업을의미 1) 작업스케줄링 (Job Scheduling) 1 어떤프로세스가시스템의자원을차지할수있는지를결정하여준비상태큐로보내는작업을의미 2 작업스케줄러 (Job Scheduler) 에의해수행 2) 프로세서스케줄링 (Processor Scheduling)
More information<4D F736F F F696E74202D C465F4B6F F6E662DB8AEB4AABDBABFA1BCADC0C7BDC7BDC3B0A3C1F6BFF8>
Korea Tech Conference 2005 년 5 월 14 일, 서울 2005 년 5 월 14 일 CE Linux Forum Korea Tech Conference 1 리눅스에서의실시간지원 정영준 / 임용관 2005 년 5 월 14 일 CE Linux Forum Korea Tech Conference 2 1. 개요 2. 스케줄러 목차 I. 고정스케줄링시간지원
More information工學碩士學位請求論文 실시간프로세스의최악응답시간 Predicting RT Process s Worst Case Response Time 2008 年 2 月 指導敎授崔源益 이論文을碩士學位請求論文으로提出함 仁荷大學校大學院 情報通信工學科 李東植
工學碩士學位請求論文 실시간프로세스의최악응답시간예측 Predicting RT Process s Worst Case Response Time 2008 年 2 月 仁荷大學校大學院 情報通信工學科 李東植 工學碩士學位請求論文 실시간프로세스의최악응답시간 Predicting RT Process s Worst Case Response Time 2008 年 2 月 指導敎授崔源益
More information저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할
저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할수없습니다. 변경금지. 귀하는이저작물을개작, 변형또는가공할수없습니다. 귀하는, 이저작물의재이용이나배포의경우,
More information슬라이드 1
마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***
More information<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>
SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......
More informationIP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1
IP 심화 º 각 P 의게이트웨이는해당네트워크의마지막주소를사용한다. - P1 (210.220.10.1/26) 의게이트웨이 (5의 Fa0/0) : 210.220.10.63 /26 = 255.255.255.192 호스트비트수 : 32-26 = 6 비트 => = 64 그러므로 P1의 IP 210.220.10.1 중서브넷마스크에의거 26비트는변함이없고, 나머지 6비트가호스트비트로변하므로
More informationMicrosoft Word _whitepaper_latency_throughput_v1.0.1_for_
Sena Technologies 백서 : Latency/Throughput Test September 11, 2008 Copyright Sena Technologies, Inc 2008 All rights strictly reserved. No part of this document may not be reproduced or distributed without
More informationMicrosoft PowerPoint - 30.ppt [호환 모드]
이중포트메모리의실제적인고장을고려한 Programmable Memory BIST 2010. 06. 29. 연세대학교전기전자공학과박영규, 박재석, 한태우, 강성호 hipyk@soc.yonsei.ac.kr Contents Introduction Proposed Programmable Memory BIST(PMBIST) Algorithm Instruction PMBIST
More information제11장 프로세스와 쓰레드
제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드
More informationSequences with Low Correlation
레일리페이딩채널에서의 DPC 부호의성능분석 * 김준성, * 신민호, * 송홍엽 00 년 7 월 1 일 * 연세대학교전기전자공학과부호및정보이론연구실 발표순서 서론 복호화방법 R-BP 알고리즘 UMP-BP 알고리즘 Normalied-BP 알고리즘 무상관레일리페이딩채널에서의표준화인수 모의실험결과및고찰 결론 Codig ad Iformatio Theory ab /15
More information6주차.key
6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running
More information<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>
뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)
More informationFrama-C/JESSIS 사용법 소개
Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More information커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서
커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드
More informationA Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
More informationChapter 4. LISTS
C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or
More information경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P
Duplicator 는기본적으로원본하드디스크를빠르게복사본하드디스크에복사하는기능을하는것입니다.. 복사본 하드디스크가원본하드디스크와똑같게하는것을목적으로하는것이어서저용량에서고용량으로복사시몇 가지문제점이발생할수있습니다. 하드디스크는사용하려면, 디스크초기화를한후에포맷을해야사용가능합니다. Windows PC는 MBR과 GPT 2 개중에 1개로초기화합니다. -Windows
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More information이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론
이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN
More information슬라이드 제목 없음
2006-09-27 경북대학교컴퓨터공학과 1 제 5 장서브넷팅과슈퍼넷팅 서브넷팅 (subnetting) 슈퍼넷팅 (Supernetting) 2006-09-27 경북대학교컴퓨터공학과 2 서브넷팅과슈퍼넷팅 서브넷팅 (subnetting) 하나의네트워크를여러개의서브넷 (subnet) 으로분할 슈퍼넷팅 (supernetting) 여러개의서브넷주소를결합 The idea
More information임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 시스템호출개요 리눅스에서는사용자공간과커널공간을구분 사용자프로그램은사용자모드, 운영체제는커널모드에서수행 커널공간에대한접근은커널 ( 특권, priviledged) 모드에서가능 컴퓨팅자원 (CPU, memory, I/O 등 ) 을안전하게보호 커널수행을안전하게유지
More information사용자수준의스레드 : 사용자의라이브러리에의해운영, 속도는빠르나, 구현이복잡하다. 커널수준의스레드 : 운영체제커널에의해운영, 속도는느리나, 구현이단순하다. 스케줄링 (Scheduling) 1) 스케줄링의정의 프로세스가생성되어실행될때필요한시스템의여러자원을해당프로세스에게할당
프로세스 (Process) 1) 프로세스의개념 프로세서에의해처리되어지는사용자프로그램및시스템프로그램을의미한다. 현재실행중인프로그램이며 Job(=Task) 이라고도한다. PCB를가지는프로그램으로비동기적인행위를일으키는주체이며실제주기억장치에저장된프로그램이다. 운영체제가관리하는실행단위이며프로시저 ( 프로그램내의하위프로그램 ) 가활동중인것을의미한다. 2) 프로세스의상태전이과정
More informationiii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.
Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:
More informationMicrosoft PowerPoint - polling.pptx
지현석 (binish@home.cnu.ac.kr) http://binish.or.kr Index 이슈화된키보드해킹 최근키보드해킹이슈의배경지식 Interrupt VS polling What is polling? Polling pseudo code Polling 을이용한키로거분석 방어기법연구 이슈화된키보드해킹 키보드해킹은연일상한가! 주식, 펀드투자의시기?! 최근키보드해킹이슈의배경지식
More information7 프로시저가활동중인것 8 실행중인프로시저의제어궤적 9 CPU가할당되는실체 운영체제가관리하는최소단위작업 (2) 프로세스상태전이도 (3) 주요프로세스상태 1 준비 (Read) 상태 : 실행하기위해준비하고있는상태 2 실행 (Run) 상태 :
3 신뢰도 (Reliability) 작업의결과를얼마나정확하고믿을수있는가의요인 4 이용가능도 (Availability) 시스템의전체운영시간중에서실제가동하여사용중인시간의비율 ( 오류없이작동된시간의비율 ) (2) 다중프로그래밍에서의시간 (Time) 대기시간 기다림 A 작업 B 작업 A 작업 B 작업 A 작업 요청시간응답시간실행시간 반환시간 1 응답시간 (Response
More information슬라이드 1
프로세스 (Process) (1) Chapter #5 Process 정의 Process 구조 Process Context Process Scheduling 강의목차 Unix System Programming 2 Program( 프로그램 ) Process 정의 (1) 기계어명령어와데이터를모아놓은실행파일 C 언어등프로그램언어로작성된소스파일을컴파일링하여생성 COFF(Common
More information리눅스 프로세스 관리
프로세스 (Process) Process 프로그램이나명령어를실행하면메모리에적재되어실제로실행되고있는상태를의미 이러한프로세스들은프로세스가시작하면서할당받는프로세스식별번호인 PID(Process ID), 해당프로세스를실행한부모프로세스를나타내는 PPID(Parent Process ID), UID 와 GID 정보를통해해당프로세스가어느사용자에속해있는지, 프로세스가파일에대해갖는권한및프로세스가실행된터미널,
More information1_12-53(김동희)_.hwp
본논문은 2012년전력전자학술대회우수추천논문임 Cascaded BuckBoost 컨버터를 이용한 태양광 모듈 집적형 저전압 배터리 충전 장치 개발 472 강압이 가능한 토폴로지를 이용한 연구도 진행되었지만 제어 알고리즘의 용의성과 구조의 간단함 때문에 BuckBoost 컨버터 또는 Sepic 컨버터를 이용하여 연구 가 진행되었다[10][13]. 태양광 발전
More informationexample code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for
2003 Development of the Software Generation Method using Model Driven Software Engineering Tool,,,,, Hoon-Seon Chang, Jae-Cheon Jung, Jae-Hack Kim Hee-Hwan Han, Do-Yeon Kim, Young-Woo Chang Wang Sik, Moon
More information운영체제
2017 운영체제 CHAPTER 02 프로세스와스레드관리 SEOKRAE KIM 내용 I. 프로세스와스레드관리... 1 1. 개요... 1 1) 중앙처리장치 (CPU)... 1 2) 중앙처리장치스케줄링... 1 2. 프로세스관리... 1 1) 프로세스의정의... 1 3. 프로세스구성요소... 2 4. 프로세스의상태... 2 1) 실행상태 (running)...
More information일반적인 네트워크의 구성은 다음과 같다
W5200 Errata Sheet Document History Ver 1.0.0 (Feb. 23, 2012) First release (erratum 1) Ver 1.0.1 (Mar. 28, 2012) Add a solution for erratum 1, 2 Ver 1.0.2 (Apr. 03, 2012) Add a solution for erratum 3
More informationAPOGEE Insight_KR_Base_3P11
Technical Specification Sheet Document No. 149-332P25 September, 2010 Insight 3.11 Base Workstation 그림 1. Insight Base 메인메뉴 Insight Base Insight Insight Base, Insight Base Insight Base Insight Windows
More informationLIDAR 데이터와 디지털 항공영상을 이용한 건물의 자동추출에 관한 연구
A Study on Automatic Extraction of Buildings Using LIDAR with Aerial CCD Image 2005 年 2 月 仁荷大學校大學院 地理情報工學科 ( 地理情報專攻 ) 鄭宰旭 工學碩士學位請求論文 A Study on Automatic Extraction of Buildings Using LIDAR with Aerial
More information<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>
뻔뻔한 AVR 프로그래밍 The 6 th Lecture 유명환 ( yoo@netplug.co.kr) 1 2 통신 관련이야기 시리얼통신 관련이야기 INDEX 3 ATmega128 시리얼통신회로도분석 4 ATmega128 시리얼통신컨트롤러 (USART) 분석 5 ATmega128 시리얼통신관련레지스터분석 6 ATmega128 시리얼통신실습 1 통신 관련이야기 동기
More information인문사회과학기술융합학회
Vol.5, No.5, October (2015), pp.471-479 http://dx.doi.org/10.14257/ajmahs.2015.10.50 스마트온실을 위한 가상 외부기상측정시스템 개발 한새론 1), 이재수 2), 홍영기 3), 김국환 4), 김성기 5), 김상철 6) Development of Virtual Ambient Weather Measurement
More informationDBPIA-NURIMEDIA
게스트운영체제의실시간성지원을위한타이머하이퍼콜 게스트운영체제의실시간성지원을위한타이머하이퍼콜 박미리 홍철호 유시환 유혁 가상화환경에서는여러개의게스트운영체제가자원을공유하고있는데특히 는시간분할방식에의해분배된다 따라서각가상머신은모든물리시간을점유하지못하고 이는 를점유하지못한시간에동작해야하는태스크실행이보장되지못하는결과를야기시킨다 이와같은응답성의저하는기존의서버가상화에서치명적인문제가되지않으나임베디드시스템에서동작하는실시간태스크측면에서는중요하게다루어져야하는요구사항이된다
More informationMicrosoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse
More information구리 전해도금 후 열처리에 따른 미세구조의 변화와 관련된 Electromigration 신뢰성에 관한 연구
工學碩士學位論文 Electromigration-resistance related microstructural change with rapid thermal annealing of electroplated copper films 2005 年 2 月 仁荷大學校大學院 金屬工學科 朴賢皒 - 1 - 工學碩士學位論文 Electromigration-resistance related
More informationChap 6: Graphs
5. 작업네트워크 (Activity Networks) 작업 (Activity) 부분프로젝트 (divide and conquer) 각각의작업들이완료되어야전체프로젝트가성공적으로완료 두가지종류의네트워크 Activity on Vertex (AOV) Networks Activity on Edge (AOE) Networks 6 장. 그래프 (Page 1) 5.1 AOV
More informationKEY 디바이스 드라이버
KEY 디바이스드라이버 임베디드시스템소프트웨어 I (http://et.smu.ac.kr et.smu.ac.kr) 차례 GPIO 및 Control Registers KEY 하드웨어구성 KEY Driver 프로그램 key-driver.c 시험응용프로그램 key-app.c KEY 디바이스드라이버 11-2 GPIO(General-Purpose Purpose I/O)
More informationAPI 매뉴얼
PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations
More informationDBPIA-NURIMEDIA
논문 09-34-06-11 한국통신학회논문지 '09-06 Vol. 34 No. 6 임베디드시스템을위한개선된예측동적전력관리방법 준회원김상우 *, 정회원황선영 * An Improved Predictive Dynamic Power Management Scheme for Embedded Systems Sang-Woo Kim* Associate Member, Sun-Young
More informationDE1-SoC Board
실습 1 개발환경 DE1-SoC Board Design Tools - Installation Download & Install Quartus Prime Lite Edition http://www.altera.com/ Quartus Prime (includes Nios II EDS) Nios II Embedded Design Suite (EDS) is automatically
More information비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2
비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,
More informationMicrosoft PowerPoint - chap06-5 [호환 모드]
2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.
More information슬라이드 1
CHAP 2: 순환 (Recursion) 순환 (recursion) 이란? 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로 되어있는경우에적합한방법 순환 (recursion) 의예 팩토리얼값구하기 피보나치수열 1 n! n*( n 1)! fib( n) 0 1 fib( n 2) n n 0 ` 1 fib( n 1) if n 0 if
More informationChapter ...
Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준
More informationMicrosoft PowerPoint - chap01-C언어개요.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information<31352DB0ADB9AEBCB32E687770>
레고 마인드스톰 로봇을 이용한 프로그래밍 입문 교육의 효과 측정 Measuring the Effectiveness of Teaching Introductory Programming Using LEGO Mindstorms Robots 김 태 희 * 강 문 설 ** Tae-Hee Kim Moon-Seol Kang 요 약 대학 생활을 시작하는 프로그래밍 초보자들에
More informationMicrosoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx
OOPT Stage 2040 - Design Feesual CPT Tool Project Team T8 Date 2017-05-24 T8 Team Information 201211347 박성근 201211376 임제현 201411270 김태홍 2017 Team 8 1 Table of Contents 1. Activity 2041. Design Real Use
More information< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>
Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More information05(533-537) CPLV12-04.hwp
모바일 OS 환경의 사용자 반응성 향상 기법 533 모바일 OS 환경의 사용자 반응성 향상 기법 (Enhancing Interactivity in Mobile Operating Systems) 배선욱 김정한 (Sunwook Bae) 엄영익 (Young Ik Eom) (Junghan Kim) 요 약 사용자 반응성은 컴퓨팅 시스템에서 가장 중요 한 요소 중에 하나이고,
More informationPowerPoint Presentation
GPU-based Keylogger Jihwan yoon 131ackcon@gmail.com Index Who am I Keylogger, GPU GPU based Keylogging - Locating the keyboard buffer - Capturing KEYSTROKES Demo About me Who am I 윤지환 CERT-IS reader BOB
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More information지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월
지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., 2004 5 2009 12 KOSPI200.,. * 2009. 지능정보연구제 16 권제 1 호 2010 년 3 월 김선웅 안현철 社 1), 28 1, 2009, 4. 1. 지능정보연구제 16 권제 1 호 2010 년 3 월 Support
More informationMicrosoft Word - NAT_1_.doc
NAT(Network Address Translation) 1. NAT 개요 1 패킷의 IP 헤더의수신지주소, 발신지주소또는그주소를다른주소로변경하는과정 2 NAT기능을갖는장치를 NAT-BOX라함 ( 시스코라우터, 유닉스시스템, 윈도우의호스트혹은몇개의다른시스템일수있기때문에이렇게지칭하기도함 ) 3 NAT 기능을갖는장치는일반적으로스텁도메인 (Stub-domain)
More information놀이동산미아찾기시스템
TinyOS를이용한 놀이동산미아찾기시스템 윤정호 (mo0o1234@nate.com) 김영익 (youngicks7@daum.net) 김동익 (dongikkim@naver.com) 1 목차 1. 프로젝트개요 2. 전체시스템구성도 3. Tool & Language 4. 데이터흐름도 5. Graphic User Interface 6. 개선해야할사항 2 프로젝트개요
More informationMicrosoft Word - release note-VRRP_Korean.doc
VRRP (Virtual Router Redundancy Protocol) 기능추가 Category S/W Release Version Date General 7.01 22 Dec. 2003 Function Description VRRP 는여러대의라우터를그룹으로묶어하나의가상 IP 어드레스를부여해마스터로지정된라우터장애시 VRRP 그룹내의백업라우터가마스터로자동전환되는프로토콜입니다.
More informationPowerPoint 프레젠테이션
공개 SW 솔루션설치 & 활용가이드 시스템 SW > 가상화 제대로배워보자 How to Use Open Source Software Open Source Software Installation & Application Guide CONTENTS 1. 개요 2. 기능요약 3. 실행환경 4. 설치및실행 5. 기능소개 6. 활용예제 7. FAQ 8. 용어정리 - 3-1.
More information04-다시_고속철도61~80p
Approach for Value Improvement to Increase High-speed Railway Speed An effective way to develop a highly competitive system is to create a new market place that can create new values. Creating tools and
More information08 KRS R1.hwp
292 Journal of Korea Robotics Society (2012) 7(4):292-298 http://dx.doi.org/10.7746/jkros.2012.7.4.292 ISSN: 1975-6291 / eissn: 2287-3961 실시간임베디드리눅스에서다양한주기적타스크의실시간메커니즘성능분석 On Benchmarking of Real-time
More information[Brochure] KOR_TunA
LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /
More informationPowerPoint Presentation
오에스아이소프트코리아세미나세미나 2012 Copyright Copyright 2012 OSIsoft, 2012 OSIsoft, LLC. LLC. PI Coresight and Mobility Presented by Daniel Kim REGIONAL 세미나 SEMINAR 세미나 2012 2012 2 Copyright Copyright 2012 OSIsoft,
More informationⅡ. Embedded GPU 모바일 프로세서의 발전방향은 저전력 고성능 컴퓨팅이다. 이 러한 목표를 달성하기 위해서 모바일 프로세서 기술은 멀티코 어 형태로 발전해 가고 있다. 예를 들어 NVIDIA의 최신 응용프 로세서인 Tegra3의 경우 쿼드코어 ARM Corte
스마트폰을 위한 A/V 신호처리기술 편집위원 : 김홍국 (광주과학기술원) 스마트폰에서의 영상처리를 위한 GPU 활용 박인규, 최호열 인하대학교 요 약 본 기고에서는 최근 스마트폰에서 요구되는 다양한 멀티미 디어 어플리케이션을 embedded GPU(Graphics Processing Unit)를 이용하여 고속 병렬처리하기 위한 GPGPU (General- Purpose
More information[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트
3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트워크주소와 브로드캐스트주소를설명할수있다. 학습내용 1 : IP 헤더필드구성 1. Network Layer Fields 2. IP 헤더필드의구성 1)
More informationMDS 08.indd
Computing EMBEDDED NEOS 시작하기 : 기본이해 설치 첫번째실행 이번글에서는프로젝트옵션에서 hex 또는 binary 형식으로실행코드를생성하는방법과 command line의명령어들을빌드시사용하는방법등에대해알아보고 Static Analysis와 Runtime Checking 기능도함께살펴보도록하겠습니다. 글 : 장재형책임연구원 / NT 개발실 /
More informationADP-2480
Mitsubishi PLC 접속 GP 는 Mitsubishi FX Series 와통신이가능합니다. 시스템구성 6 7 8 GP-80 RS- Cable RS-C Cable FXN--BD FXN--BD 6 FX Series(FXS,FXN,FXN,FXNC, FXU) 7 FXS, FXN 8 FXN FX Series 는기본적으로 RS- 통신을하며, RS-/ converter
More information<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>
8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의
More informationMicrosoft PowerPoint - 03-Development-Environment-2.ppt
개발환경 2 임베디드시스템소프트웨어 I 차례 부트로더의기능, 컴파일방법 커널의기능, 컴파일방법 파일시스템의기능, 생성방법 Host-KIT 네트워크연결방법 (Bootp, TFTP, NFS) 개발환경 2 2 부트로더의기능 하드웨어초기화 CPU clock, Memory Timing, Interrupt, UART, GPIO 등을초기화 커널로드 커널이미지를 flash
More information6.24-9년 6월
리눅스 환경에서Solid-State Disk 성능 최적화를 위한 디스크 입출력요구 변환 계층 김태웅 류준길 박찬익 Taewoong Kim Junkil Ryu Chanik Park 포항공과대학교 컴퓨터공학과 {ehoto, lancer, cipark}@postech.ac.kr 요약 SSD(Solid-State Disk)는 여러 개의 낸드 플래시 메모리들로 구성된
More informationT100MD+
User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+
More informationVisual Basic 반복문
학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For
More information°í¼®ÁÖ Ãâ·Â
Performance Optimization of SCTP in Wireless Internet Environments The existing works on Stream Control Transmission Protocol (SCTP) was focused on the fixed network environment. However, the number of
More informationAbstract View of System Components
Operating System 4 주차 - System Call Implementation - Real-Time Computing and Communications Lab. Hanyang University jtlim@rtcc.hanyang.ac.kr yschoi@rtcc.hanyang.ac.kr shpark@rtcc.hanyang.ac.kr Contents
More information04 Çмú_±â¼ú±â»ç
42 s p x f p (x) f (x) VOL. 46 NO. 12 2013. 12 43 p j (x) r j n c f max f min v max, j j c j (x) j f (x) v j (x) f (x) v(x) f d (x) f (x) f (x) v(x) v(x) r f 44 r f X(x) Y (x) (x, y) (x, y) f (x, y) VOL.
More informationMicrosoft PowerPoint - additional01.ppt [호환 모드]
1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능
More information<4D6963726F736F667420576F7264202D202832303131C3DFB0E820BFECBCF6B9DFC7A5B3EDB9AE2920C4C4C7BBC6C3C0C720BDC7C1A620B9D720B7B9C5CD2D496E2D53746F726167652050726F63657373696E67C0BB20C0A7C7D12053534420BCD2C7C1C6AEBFFEBEEE20C7C3B7A7C6FB20BDC3B9C4B7B
정보과학회논문지 : 컴퓨팅의 실제 및 레터 제 XX 권 제 X 호(2011.XX) 338 (2011추계 우수발표논문) In-Storage Processing을 위한 SSD 소프트웨어 플랫폼 시뮬레이터 설계 및 구현 (A Design and Implementation of SSD Software Platform Simulator for In-Storage Processing)
More information1. 기술배경 NFV는 Consortium of Service Provider들에의해서만들어졌다. 현재 Network Operation은규모가큰전용 Hardware appliances가계속해서증가하고있다. 새로운 Network Service를 Launching할때마다에
Network Function Virtualization 기술동향 2013 년 7 월 29 일 경북대학교통신프로토콜연구실 김우주 kachukun@gmail.com 요약 오늘날네트워크기술은다양한분야에서널리쓰이고있다. 그에따라상황에맞춘전용기술이빠르게개발되고있으며그에필요한전문화된 Network Device들이증가하고있다. 하지만이런현상이가속화되면서전용 Network
More information슬라이드 1
강력한성능! 인터넷 / 업무용데스크탑 PC NX-H Series Desktop PC NX1- H700/H800/H900 NX2- H700/H800/H900 NX1-H Series 사양 Series 제품설명 ( 모델명 ) NX1-H Series, 슬림타입 기본형모델중보급형모델고급형모델 NX1-H800:112SN NX1-H800:324SN NX1-H800:534MS
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More informationMicrosoft PowerPoint - o8.pptx
메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit)
More information1 1. INTRODUCTION 2 2. DOWNLOAD Windows Desktop & Server Max OS X, Linux, Windows CE 2 3. API REFERENCE CAN_OpenVcp CAN_Op
USB2CAN USB2CAN-VCP USB2CAN-FIFO API Reference Manual ver. 1.00 Updated in November 2013 1 1. INTRODUCTION 2 2. DOWNLOAD 2 2-1. Windows Desktop & Server 2 2-2. Max OS X, Linux, Windows CE 2 3. API REFERENCE
More informationMicrosoft PowerPoint 자동설치시스템검증-V05-Baul.pptx
DMSLAB 자동설치시스템의 HW 정보 및사용자설정기반설치 신뢰성에대한정형검증 건국대학교컴퓨터 정보통신공학과 김바울 1 Motivation Problem: 대규모서버시스템구축 Installation ti Server 2 Introduction 1) 사용자가원하는 이종분산플랫폼구성 대로 2) 전체시스템 들의성능을반영 3) 이종분산플랫폼을지능적으로자동구축 24
More informationMicrosoft PowerPoint - 26.pptx
이산수학 () 관계와그특성 (Relations and Its Properties) 2011년봄학기 강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계
More information