OSTEP-KOR

Size: px
Start display at page:

Download "OSTEP-KOR"

Transcription

1 23 페이징 : 더작은테이블 페이징의두번째문제점은페이지테이블의크기이다. 페이지테이블이크면많은 메모리공간을차지한다. 배열형태를가지는선형페이지테이블 (linear page table) 을예로들어보자. 전술한바와같이 1 선형페이지테이블은상당히커질수가있다. 페이지크기가 4 KB(2 12 바이트 ) 이고, 페이지테이블의각항목은 4 바이트인 32 비트 주소공간 (2 32 바이트 ) 을가정해보자. 주소공간에는대략백만서 ( ) 의가상페이지가존재할것이다. 여기에페이지테이블항목의크기를곱하면 (4 바이트 x 백만서 ), 페이지 테이블의크기가된다. 하나의페이지테이블크기가약 4 MB 가된다. 또하나잊으면 안되는사실이있다! 일반적으로각프로세스는자기자신의페이지테이블을갖는다. 백서의프로세스가실행중이라면 ( 현대시스템에 드물지않다 ), 페이지테이블이 100 서존재하며, 400 MByte 의메모리가필요하다. 이런 청난메모리부담을해결할수 있는기술을모색해보자. 다양한해법들이존재한다. 핵심질문은아래와같이요약될 수있다. 핵심질문 : 페이지테이블을어떻게더작게만들까단순한배열기반의페이지테이블은 ( 흔히선형페이지테이블이라고불림 ) 크기가크며일반적인시스템에 메모리를과도하게차지한다. 어떻게페이지테이블의크기를줄일수있을까? 주요서념들로는무 이있는가? 새로운자료구조들은어떤비효율성을갖는가? 23.1 간단한해법 : 더큰페이지페이지테이블의크기를간단하게줄일수있는방법이한가지있다. 페이지크기를증가시키면된다. 32비트주소공간에, 이번에는 16 KB 페이지를가정해보자. 이제는 18비트의 VPN과 14비트의오프셋을갖게된다. 각 PTE (4바이트) 의크기가모두 1) 기억못할수도있다. 페이징이라는것이통제가잘안되지않는가? 해법을찾아보기전에문제가무 인지제대로이해하고있는지확인을해야한다. 문제를이해하면스스로해법도유도해낼수가있다. 여기 다루는문제는명확하다. 간단한선형 ( 배열기반의 ) 페이지테이블은너무크다는것이다.

2 제 23 장페이징 : 더작은테이블 여담 : 멀티페이지크기많은컴퓨터구조들 ( 예, MIPS, SPARC, x86-64) 이멀티크기페이지를지원한다는것을기억하자. 일반적으로, 작은 (4 KB 또는 8 KB) 페이지크기가사용된다. 하지만, 만약 똑똑한 응용프로그램이페이지를요청할경우, 가상주소공간의특정부분을대형페이지 ( 예, 4 MB 의크기 ) 에할당하고, 그프로그램이자주사용되는대형자료구조를해당페이지에위치시키는것을가능케할수있다. 대형페이지를사용하므로 TLB 에 하나의항목만사용한다. 이러한대형페이지는데이터베이스관리시스템과고성능프로그램에 흔히사용된다. 멀티페이지크기를사용하는주요이유는페이지테이블의공간을절약하려는것은아니다. TLB 미스를줄이면 프로그램이주소공간을접근할수있도록하기위해 이다. 그러나연구진들이발표한것과같이 [Nav+02], 하드웨어가다수의페이지크기를지원할경우, 운영체제의가상메모리관리모듈이매우복잡해진다. 대형페이지를간단히사용하는방법으로, 추가인터페이스를정의하여, 응용프로그램이대형페이지를직접요청할수있도록할수있다. 동일하다면, 페이지테이블에 2 18 서의항목이있으며, 페이지테이블의총크기는 1 MB 가된다. 기존페이지테이블대비크기가 1/4로감소된다 ( 당연하다. 테이블의크기가 1/4로감소한것은페이지크기가정확히 4배증가했기때문이다 ). 페이지크기의증가는부작용을수반한다. 가장큰문제는페이지내부의낭비공간이증가하는것이다. 이를내부단편화 (internal fragmentation) 라한다 ( 할당된페이지내부에 낭비가발생하기때문이다 ). 응용프로그램이여러페이지를할당받았지만, 할당받은페이지의일부분만사용하는터에, 결국컴퓨터시스템의메모리가금방고레되는현상이발생한다. 이런연유에, 많은컴퓨터시스템들이비교적작은페이지들을사용한다. 일반적으로 4 KB (x86) 또는 8 KB (SPARCv9) 를사용한다. 페이지테이블크기를감소시키는우리의당면문제는그리쉽게해결되지않을것이다 하이브리드접근방법 : 페이징과세그멘트인생의어떤일을함에있어좋은방법이두가지있다면, 그두방법을잘조합하여, 장점만을취할수는 는지도검토해보아야한다. 두가지방법을조합하는것을하이브리드 (hybrid) 라고부른다. 예를들면, 초콜릿과피넛버터를 어만든 Reese 사의 Peanut Butter Cup [M28] 이있는데, 사람들은왜피넛버터와초콜릿중하나만먹을까? 2 Multics의창시자 Jack Dennis는 Multics 가상메모리시스템을구축하는데있어, 비슷한아이디어가떠올랐다 [M07]. Dennis는페이징과세그멘테이션을결합하여페이지테이블크기를줄이는아이디어를내 다. 선형페이지테이블의동작을면밀히분 해보면, 페이징과세그멘테이션을효과적으로결합할수있다는사실을발견할수있다. 힙과스택에 실제로전체공간중작은부분만사용되는경우를생각해보자. 2) 역자주 : 체중이불기는하겠다. 2 운영체제 : 아주쉬운세가지이야기 [V.0.90]

3 23.2 하이브리드접근방법 : 페이징과세그멘트 그림 KB 페이지들로이루어진 16 KB 주소공간 PFN valid prot present dirty 10 1 r-x rw rw rw- 1 1 그림 KB 주소공간을위한페이지테이블 1 KB 크기의페이지를갖는 16 KB의주소공간을예로들겠다 ( 그림 23.1). 이주소공간을위한페이지테이블은그림 23.2에나타나있다. 이예제에 한서의코드페이지 (VPN 0) 가물리페이지 10번, 그리고한서의힙페이지 (VPN 4) 가 23번물리페이지에매핑되어있다. 가상주소공간의끝부분에두서의스택페이지 (VPN 14와 15) 가물리페이지 28번과 4번에매핑되어있다. 그림에 보는바와같이, 페이지테이블대부분이비어있다. 청난낭비가발생한다. 16 KB 크기의아주작은주소공간에 발생한상황이다. 32비트주소공간용페이지테이블에 비슷한상황이발생할것을상상해보자. 골치아픈일이다. 결합방식을생각해보자. 프로세스의전체주소공간을위해하나의페이지테이블을두는대신, 논리세그멘트마다따로페이지테이블을두면어떨까? 이예제에 는세서의페이지테이블이있을수있다. 코드, 힙그리고스택세그멘트에대해페이지테이블을각각두는것이다. 원유집, 박민규, 이성진역 ; 3

4 제 23 장페이징 : 더작은테이블 세그멘테이션에 는세그멘트의물리주소시작위치를나타내는베이스 (base) 지스터, 그리고크기를나타내는바운드 (bound) 또는리미트 (limit) 지스터가있다. 우리의결합방식에 도 MMU에비슷한구조를사용한다. 베이스 지스터는세그멘트시작주소를가리키는것이아니라세그멘트의페이지테이블의시작주소를갖는다. 바운드 지스터는페이지테이블의끝을나타내기위해 사용한다. 명확하게하기위해간단한예를들어보자. 4 KB 페이지를갖는 32비트가상주소공간이 4서의세그멘트로나뉘어있다고가정하자. 이예제에 는세서의세그멘트만사용하도록하겠다. 하나는코드를위해, 다른하나는힙을위해 그리고또하나는스택을위해 사용한다. 소속세그멘트를나타내기위해상위두비트를사용한다. 미사용세그멘트는 00 으로, 01은코드를그리고 10은힙, 스택은 11을나타낸다고가정하자. 가상주소는다음과같이표현될수있다. 하드웨어에세서의베이스 / 바운드 지스터쌍이코드와힙그리고스택을위해 존재한다고가정한다. 실행중인프로세스에, 각세그멘트의베이스 지스터는각세그멘트페이지테이블의시작물리주소를갖게된다. 이시스템에 모든프로세스들은세서의페이지테이블을갖는다. 문맥교환시, 이 지스터들은새로실행되는프로세스의페이지테이블의위치값으로변경된다. TLB 미스가발생하면 ( 하드웨어기반 TLB를가정한다. 즉, TLB 미스를하드웨어가처리한다 ), 하드웨어는세그멘트비트 (SN) 을사용하여어떤베이스와바운드쌍을사용할지결정한다. 하드웨어는그 지스터에들어있는물리주소를 VPN과다음과같은형식으로조작하여페이지테이블항목 (PTE) 의주소를얻는다. SN = (VirtualAddress & SEG_MASK) >> SN_SHIFT VPN = (VirtualAddress & VPN_MASK) >> VPN_SHIFT AddressOfPTE = Base[SN] + (VPN * sizeof(pte)) 동작순 가눈에익숙하다. 앞에 살펴보았던선형페이지테이블의작동과거의동일하다. 유일한차이가있다면하나의페이지테이블베이스 지스터를사용하는대신세서중의하나의세그멘트베이스 지스터를사용하는것이다. 하이브리드기법에 핵심은세그멘트마다바운드 지스터가따로존재한다는것이다. 각바운드 지스터의값은세그멘트의최대유효페이지의서수를나타낸다. 예를들어, 첫세서의페이지들 (0, 1, 그리고 2) 을코드세그멘트로 사용중이라면, 코드세그멘트페이지테이블은세서의항목만할당을받을수있을것이고바운드 지스터는 3으로설정된다. 해당세그멘트의범위가넘어가는곳에대한메모리접근은예외를발생시키고, 해당프로세스는종료될것이다. 이와같은방식으로, 하이브리드기법은선형페이지테이블에비해메모리사용을서선시킬수있다. 스택과힙사이의할당되지않은페이지들은페이지테이블상에 ( 유효하지않다는것을표시하기위해 ) 더이상공간을차지하지않는다. 4 운영체제 : 아주쉬운세가지이야기 [V.0.90]

5 23.3 멀티 벨페이지테이블 팁 : 하이브리드를사용하자두서의괜찮은그리고상반되는아이디어가있다면, 두방식의장점을모두가져레수있도록두방식을혼합하는하이브리드를만들수있는지늘살펴보아야한다. 하이브리드옥수수종을예로들면자연적으로자라나는종에비해좀더강인하다고알려져있다. 물론, 모든하이브리드기법들이좋은아이디어는아니다. 지돈크 (Zeedonk), 또는존키 (Zonkey) 는얼룩말과당나귀사이에 태어난동물이다. 그런생물이존재하는지믿지못하겠다면찾아보자. 놀랄것이다. 하지만, 이기법역시문제가 는것은아니다. 첫째, 여전히세그멘테이션을사용해야한다 ; 이전에언급했듯이, 세그멘테이션은주소공간의사용에있어특정패턴을가정하기때문에우리가원하는만큼은유연하지가못하다. 큰공간을커버하지만, 드문드문사용되는 (sparsely used) 힙의경우에는여전히페이지테이블의낭비를면치못할수가있다. 둘째로, 하이브리드기법은외부단편화를유발한다. 하이브리드방식에 는페이지테이블크기에제한이 으며다양한크기를갖는다. 물론, 페이지테이블의크기는페이지테이블항목크기의정수배가되어야한다. 때문에, 메모리상에 페이지테이블용공간을확보하는것이더복잡하다. 이런이유로, 페이지테이블크기를감소시키는더나은방법을찾는노력들이지속되 다 멀티레벨페이지테이블세그멘테이션을사용하지않고페이지테이블크기를줄이는방법에대해 생각해보자. 어떻게하면사용하지않는주소공간을페이지테이블에 제거할수있을까? 이번에소서할기법은멀티레벨페이지테이블이다. 멀티레벨페이지테이블에 는선형페이지테이블을트리구조로표현한다. 매우효율적이기때문에많은현대시스템에 사용되고있다 ( 예, x86 [BO10]). 이기법을좀더상세히설명하도록하겠다. 멀티 벨페이지테이블의기본서념은간단하다. 먼저, 페이지테이블을페이지크기의단위로나눈다. 그다음, 페이지테이블의페이지가유효하지않은항목만있으면, 해당페이지를할당하지않는다. 페이지디렉터리 (page directory) 라는자료구조를사용하여페이지테이블각페이지의할당여부와위치를파악한다. 페이지디 터리는페이지테이블을구성하는각페이지의존재여부와위치정보를가지고있다. 그림 23.3의예제를보자. 좌측그림은전형적인선형페이지테이블이다. 페이지테이블의중앙부에해당하는주소공간은사용되고있지않다. 그러나페이지테이블에 항목들이할당되어있다 ( 페이지테이블의가운데두페이지 ). 우측은동일한주소공간을다루는멀티 벨페이지테이블이다. 페이지디 터리에는두서의유효한페이지가있다 ( 첫번째와마지막 ). 유효페이지두서는메모리에존재한다. 이예를통해멀티 벨페이지테이블의동작을좀더쉽게알수있다. 선형페이지테이블에 사용되 던페이지들이더이상필요 고, 페이지디 터리를이용하여페이지테이블의어떤페이지들이할당되 는지를관리한다. 원유집, 박민규, 이성진역 ; 5

6 제 23 장페이징 : 더작은테이블 그림 23.3 선형 ( 좌 ) 그리고멀티레벨 ( 우 ) 페이지테이블간단한 2단계테이블에, 페이지디 터리의각항목은페이지테이블의한페이지를나타낸다. 페이지디 터리는페이지디렉터리항목 (page directory entries, PDE) 들로구성된다. 각항목 (PDE) 의구성은페이지테이블의각항목 (Page Table Entry) 과유사하다. 유효 (valid) 비트와페이지프레임번호 (page frame number, PFN) 를갖고있다. 실제구현에따라추가구성요소가존재할수있다. 하지만, PTE 의유효비트와 PDE의유효비트는약간다르다. PDE 항목이유효하다는것은, 그항목이가리키고있는 (PFN을통해 ) 페이지들중최소한하나가유효하다는것을의미한다. 즉, PDE가가리키고있는페이지내의최소한하나의 PTE의 valid bit가 1 로설정되어있다. 만약 PDE의항목이유효하지않다면 ( 즉, 0이라면 ), PDE는실제페이지가할당되어있지않은것이다. 멀티 벨페이지테이블은이제까지언급된다른기법들에비해몇가지장점이있다. 첫째, 멀티 벨테이블은사용된주소공간의크기에비례하여페이지테이블공간이할당된다. 그 기때문에, 보다작은크기의페이지테이블로주소공간을표현할수있다. 두번째, 페이지테이블을페이지크기로분할함으로써메모리관리가매우용이하다. 페이지테이블을할당하거나확장할때, 운영체제는 free 페이지풀에있는빈페이지를가져다쓰면된다. 멀티 벨페이징을단순한선형페이지테이블방식과비교해보자. 선형페이지테이블의각항목은해당가상페이지의물리페이지주소를가지고있다 ( 즉, 디스크로스왑되지않는다 ). 선형페이지테이블은연속된물리메모리공간을차지한다. 큰페이지테이블 (4 MB라고하자 ) 의경우, 해당크기의연속된빈물리메모리를찾는것이쉽지않다. 멀티 벨페이징에 는페이지디 터리를사용하여각페이지테이블페이지들의위치를파악한다. 페이지테이블의각페이지들이물리메모리에산재해있더라도페이지디 터리를이용하여그위치를파악할수있으므로, 페이지테이블을위한공간할당이매우유연하다. 6 운영체제 : 아주쉬운세가지이야기 [V.0.90]

7 23.3 멀티 벨페이지테이블 팁 : 시간과공간간의절충점에대해이해하자자료구조설계시, 구현에 시간과공간의소요시간을적절히절충 (time-spacetrade-ofs) 해야한다. 일반적으로자료구조에접근속도를향상시키려면, 해당구조를위해공간을더사용해야한다. 한가지유의해야할사항이있다. 멀티 벨테이블에는추가비용이발생한다. TLB 미스시, 주소변환을위해두번의메모리로드가발생한다 ( 페이지디 터리와 PTE 접근을위해각각한번씩 ). 선형페이지테이블에 는한번의접근만으로주소정보를 TLB로탑재한다. 멀티 벨테이블은시간 ( 페이지테이블접근시간 ) 과공간 ( 페이지테이블공간 ) 을상호절충 (time-space-trade-ofs) 한예라할수있다. 페이지테이블크기를줄이는데성공하였으나, 대신메모리접근시간이증가했다. TLB 히트시 ( 대부분메모리접근은 TLB 히트이다 ) 성능은동일하지만, TLB 미스시에는두배의시간이소요된다. 또하나의단점은복잡도이다. 페이지테이블검색이단순선형페이지테이블의경우보다더복잡해진다. 검색을하드웨어로구현하느냐혹은운영체제로구현하느냐여부와는무관하다. 대부분의경우, 성능서선이나부하경감을위해, 우리는보다복잡한기법을도입한다. 멀티 벨페이지테이블의경우에는메모리자원의절약을위해, 페이지테이블검색을좀더복잡하게만들 다. 멀티레벨페이징예제멀티 벨페이지테이블의서념을이해하기위해 예제를하나살펴보자. 64바이트페이지를갖는 16 KB 크기의작은주소공간을생각해보자. 14비트가상주소공간이다. VPN에 8비트, 페이지오프셋에 6비트가필요하다. 선형페이지테이블은 2 8 (256) 서엔트리로구성된다. 주소공간에 작은부분만사용된다하더라도, 선형페이지테이블의크기는변하지않는다. 그림 23.4는이구조를갖는주소공간의예시를나타낸다. 이예제에 는, 가상페이지 0과 1은코드, 가상페이지 4와 5는힙그리고가상페이지 254와 255는스택으로사용된다. 주소공간의나머지페이지들은미사용중이다. 이주소공간을 2단계페이지테이블로구성해보자. 선형페이지테이블을페이지단위로분할한다. 전체테이블은 ( 이예제에 ) 총 256서의항목을갖고있다는것을상기하자. 각 PTE는 4바이트라가정한다. 페이지테이블의크기는 1 KB (256 4 바이트 ) 이다. 페이지가 64바이트라고하면 1 KB의페이지테이블은 16서의 64바이트페이지들로분할된다. 각페이지에는 16서의 PTE가있다. 이제 VPN으로부터페이지디 터리인덱스를추출하고, 페이지테이블의각페이지위치를파악하는법을살펴보자. 페이지디 터리, 페이지테이블의페이지들모두항목의배열이라는것을기억해야한다. VPN을이용하여인덱스를구성하는법만찾으면된다. 먼저페이지디 터리의인덱스를만들어보자. 예제의작은페이지테이블은 256 원유집, 박민규, 이성진역 ; 7

8 제 23 장페이징 : 더작은테이블 그림 바이트페이지들로이루어진 16 KB 주소공간 팁 : 복잡도를주의하자시스템설계자들은시스템복잡도의증가를주의해야한다. 좋은시스템서발자는주어진작 을처리하기위한최소한의복잡도를갖는시스템을만든다. 예를들어, 디스크공간이풍부하다면공간사용을최소화하기위한파일시스템을설계해 는안된다. 마찬가지로, 프로세 가빠르다면어떤작 을처리하기위해운영체제내에이해하기쉬운모듈을작성하는것이 CPU 에최적화되어있고치밀하게짜여진코드를사용하는것보다더좋다. 너무성급하게최적화한코드는다른형태에 불필요한복잡도를추가하지않도록예의주시하자. 그러한시스템은더이해하기어려우며관리와디버깅을어렵게만든다. 앙투안드생텍쥐페리 (Antoine de Saint-Exupery) 는이런유명한말을남겼다. 완벽함은무 인가더추가할것이 을때얻어지는것이아니라더이상뺄것이 을때마침내얻어진다. 그가기록하지않은부분은 완벽함에대해 이야기하는것이실제로달성하는것보다더쉽다. 는것이다. 서의항목으로 16서의페이지로나뉘어있다. 페이지디 터리는페이지테이블의각페이지마다하나씩있어야하기때문에총 16서의항목이있어야한다. 결과적으로 VPN 의 4서의비트를사용하여디 터리를구성하며, 여기 는 VPN의상위 4비트를다음과같이사용한다. VPN 에 페이지 - 디렉터리인덱스 (page-directory index, 짧게 PDIndex 라고하 8 운영체제 : 아주쉬운세가지이야기 [V.0.90]

9 23.3 멀티 벨페이지테이블 자 ) 를추출하고나면 PDEAddr = PageDirBase + (PDIndex * sizeof(pde)) 라는간단한식을사용하여페이지-디 터리항목 (page-directory entry, PDE) 의주소를찾을수있다. 이 게페이지디 터리가구성이되며, 이것을활용하여계속해 주소변환과정을분 하도록한다. 페이지-디 터리의해당항목이무효 (invalid) 라고표시되어있으면, 이주소접근은유효하지않다. 예외가발생한다. 해당 PDE가유효하다면추가작 을해야한다. 구체적으로살펴보자. 이페이지디 터리항목이가리키고있는페이지테이블의페이지에 원하는페이지테이블항목 (page table entry, PTE) 을읽어들이는것이목표다. 이 PTE를찾기위해 VPN의나머지비트들을사용한다. 이페이지-테이블인덱스 (page-table index, 짧게 PTIndex라고하자 ) 는페이지테이블자체인덱스로사용된다. PTE의주소를다음과같이계산한다. PTEAddr = (PDE.PFN << SHIFT) + (PTIndex * sizeof(pte)). PTE의주소를생성하기위해 는페이지-디 터리항목에 얻은페이지-프 임번호 (page-frame number, PFN) 를먼저좌측쉬프트연산하고그값을페이지테이블인덱스에합산한다. 이모든것이제대로작동하는지를보기위해, 멀티 벨페이지테이블에실제값들을넣은후에하나의가상주소를변환해보자. 이예제를위해페이지디렉터리에 부터시작해보자 ( 그림 23.5의좌측 ). 이그림에 각페이지디 터리항목 (PDE) 은주소공간의페이지테이블의페이지에대해무 인가를기술하고있다. 이예제에 는주소공간에두서의유효한영역이있으며 ( 처음과끝에 ), 그리고그사이는무효한매핑들이존재한다. 물리페이지 100에 ( 페이지테이블의 0번째페이지의물리프 임번호 ), 페이지테이블의첫 16서항목이존재한다. 이항목들은가상주소공간의첫 16서페이지에대한물리주소를가진다. 그림 23.5의가운데열이해당페이지의내용이다. 페이지테이블의첫번째페이지에는첫 16서의 VPN과물리페이지주소가있다. 이예제에 는 VPN 0과 1이유효하고 ( 코드세그멘트 ), 4와 5도유효하다 ( 힙 ). 그러므로테이블에는각페이지들의매핑정보가있다. 그외의나머지엔트리들은무효로표기되어있다. PFN 101에다른유효페이지들에대한정보가들어있다. 이페이지에는가상주소공간의마지막 16서의 VPN에대한매핑이담겨있다. 그림 23.5의우측에상세내용이있다. 이예제에 는, VPN 254와 255가유효페이지이다. 이들은스택에해당한다. 이예제를통해 멀티 벨인덱스구조가공간을얼마큼절약할수있는지를확인할수 원유집, 박민규, 이성진역 ; 9

10 제 23 장페이징 : 더작은테이블 페이지디렉터리 PT의페이지 (@PFN:100) PT의페이지 (@PFN:101) PFN 유효한가? PFN 유효 prot PFN 유효 prot r-x r-x rw rw rw rw- 그림 23.5 페이지디렉터리와페이지테이블의일부있다. 선형페이지테이블의열여섯서의페이지들을모두할당하는대신단지세서만할당하였다. 페이지디 터리를위해 한페이지, 그리고유효한매핑정보를갖고있는페이지테이블내의두부분을위해두페이지를할당하였다. 더큰 (32비트또는 64비트 ) 주소공간에 는더많은공간이절약된다. 마지막으로최종주소변환을해보자. VPN 254의 0번째바이트를가리키는주소는다음과같다. 0x3F80 또는이진수로 이다. 페이지디 터리내에 각항목을가르키기위해 VPN의상위 4비트를사용하였다. 1111은페이지디 터리의마지막엔트리다 (0부터시작했다면 15번째가된다 ). 페이지디 터리의 15번째엔트리에는물리프 임주소 101이저장되어있다. VPN의다음의 4비트를 (1110) 을인덱스로사용하여, 페이지테이블의해당페이지에 원하는 PTE를찾는다. 1110는 101번페이지의 16서항목중에마지막에 두번째항목이다. 여기에 55가저장되어있다. 종합하면가상주소페이지 254 ( ) 는물리페이지 55에존재한다. 오프셋 과 PFN 55( 또는헥사로 0x37) 를결합하여다음과같이물리주소를구할수있으며, 해당메모리를접근하는데사용된다. PhysAddr = (PTE.PFN << SHIFT) + offset = = 0x0DC0. 이제페이지디 터리를사용하여페이지테이블의페이지를가리키는 2단계페이지테이블에대한서념이어느정도이해되 을것이다. 곧구체화하겠다. 2단계페이지테이블이충분하지않을때가있다! 10 운영체제 : 아주쉬운세가지이야기 [V.0.90]

11 23.3 멀티 벨페이지테이블 2단계이상사용하기지금까지는멀티 벨페이지테이블은페이지디 터리와페이지테이블의 2서단계를가정하였다. 경우에따라 트리의단계를더증가시키는것도가능하다 ( 그리고사실, 그래야할필요가있다 ). 간단한예제를통해 2단계이상의멀티 벨테이블에대해알아보자. 이예제에 는 512바이트페이지와 30비트가상주소공간을가정한다. 가상주소는 21비트의가상페이지번호와 9비트의오프셋을갖게된다. 멀티 벨페이지테이블의목적은페이지테이블의모든분할된부분들이단일페이지크기에맞도록하는것이다. 만약페이지디 터리가너무커지면, 어떻게될까? 멀티 벨테이블에 몇단계를둘지정하기위해 는먼저한페이지에몇서의페이지테이블항목을저장할수있을지를계산해야한다. 페이지크기가 512바이트이고 PTE의크기가 4바이트라고가정하면한페이지에 128서의 PTE를넣을수있다. 페이지테이블의페이지를인덱스로쓰려면, VPN의하위 7비트 (log 2 128) 가필요하다. 페이지디 터리를위해 몇서의비트가남았는지를이그림에 알수있다. 14 서의비트가남는다. 2단계페이지를사용한다면, 페이지디 터리에 2 14 서의항목이있게된다. 페이지디 터리를위해 128 페이지분량의연속된메모리가필요하다. 페이지테이블을페이지단위로나누어배치할수있도록하는멀티 벨페이지테이블의근본취지가훼손된셈이다. 이문제를해결하기위해, 페이지디 터리자체를멀티페이지들로나누어 트리의단계를늘리도록한다. 그리고페이지디 터리의페이지들을가리킬수있도록그위에새로운페이지디 터리를추가한다. 결과적으로다음과같이가상주소를분할할수있다. 이제가상주소의최상위비트들을 ( 그림에 PD Index 0) 사용하여상위단계의페이지디 터리에 엔트리를찾는다. 이인덱스를사용하여상위단계페이지디 터리에 페이지디 터리항목을가져온다. 만약유효하다면, 상위단계페이지디 터리에 얻은물리주소와두번째단계의페이지디 터리인덱스 (PD Index 원유집, 박민규, 이성진역 ; 11

12 제 23 장페이징 : 더작은테이블 1) 를결합하여페이지테이블인덱스가존재한물리페이지를구한다. 해당페이지가유효할경우, 최종적으로, PTE 주소는 2번째단계의페이지디 터리항목에 얻은페이지테이블의물리주소와페이지테이블인덱스를결합하여구한다. 실제주소를구하는데드는작 이상당하다. 멀티 벨페이지테이블사용시수반되는작 이기도하다. 변환과정 : TLB를기억하자 2단계페이지테이블사용시, 전체주소변환과정을알고리즘형태로요약정리해보자 ( 그림 23.6). 이그림은모든메모리참조에대해하드웨어가어떤식으로동작하는지를나타낸다 ( 하드웨어기반 TLB를가정 ). 그림에 볼수있듯이, 복잡한멀티 벨페이지테이블접근을거치기전에, 우선 TLB를검사한다. 히트가되면페이지테이블을참조 이물리주소를직접구성한다. TLB 미스시에만, 멀티 벨페이지테이블의모든단계를거쳐물리주소를구하게된다. 이알고리즘을통해 TLB 미스발생시, 전통적인 2단계페이지테이블의주소계산비용을볼수있다. 주소변환을위해두번의추가메모리접근이발생한다 역페이지테이블 좀더획기적인공간절약방법으로역페이지테이블 (inverted page table) 이있다. 이방법에 는여러서의페이지테이블 ( 시스템의프로세스당하나씩 ) 대신시스템에단 1 VPN = (VirtualAddress & VPN_MASK) >> SHIFT 2 (Success, TlbEntry) = TLB_Lookup(VPN) 3 if (Success == True) // TLB 4 if (CanAccess(TlbEntry. ProtectBits) == True) 5 Offset = VirtualAddress & OFFSET_MASK 6 PhysAddr = (TlbEntry. PFN << SHIFT) Offset 7 Register = AccessMemory(PhysAddr) 8 else 9 RaiseException(PROTECTION_FAULT) 10 else // TLB 11 // 페이 12 PDIndex = (VPN & PD_MASK) >> PD_SHIFT 13 PDEAddr = PDBR + (PDIndex * sizeof(pde)) 14 PDE = AccessMemory(PDEAddr) 15 if (PDE. Valid == False) 16 RaiseException(SEGMENTATION_FAULT) 17 else 18 // PDE : 이 페이 테이블 PTE 19 PTIndex = (VPN & PT_MASK) >> PT_SHIFT 20 PTEAddr = (PDE. PFN << SHIFT) + (PTIndex * sizeof(pte)) 21 PTE = AccessMemory(PTEAddr) 22 if (PTE. Valid == False) 23 RaiseException(SEGMENTATION_FAULT) 24 else if (CanAccess(PTE. ProtectBits) == False) 25 RaiseException(PROTECTION_FAULT) 26 else 27 TLB_Insert(VPN, PTE. PFN, PTE. ProtectBits) 28 RetryInstruction() 그림 23.6 멀티레벨페이지테이블의제어흐름 12 운영체제 : 아주쉬운세가지이야기 [V.0.90]

13 23.5 페이지테이블을디스크로스와핑하기 하나의페이지테이블만둔다. 페이지테이블은물리페이지를가상주소상의페이지로변환한다. 역페이지테이블의각항목은해당물리페이지를사용중인프로세스번호, 해당가상페이지번호를갖고있다. 페이지테이블의목적은가상주소를물리주소로변환하는것이다. 역페이지테이블에 는주소변환을위해전체테이블을검색해 원하는가상주소페이지를갖는항목을찾아야한다. 순차탐색은느리다. 탐색속도향상을위해주로해시테이블을사용한다. PowerPC는이구조를사용하는예이다 [JM98]. 좀더일반적인시각에 보자면, 역페이지테이블역시하나의자료구조일뿐이다. 자료구조로다양한시도를할수있다. 예를들면작게도만들고크게도만들수있으며느리게도빠르게도만들수가있다. 멀티 벨과반전된페이지테이블들은할수있는다양한방법중두가지예일뿐이다 페이지테이블을디스크로스와핑하기마지막으로중요한가정을해제하겠다. 이제까지는페이지테이블이커널이소유하고있는물리메모리영역에존재한다고가정하였다. 페이지테이블크기축소를위해많은시도를하더라도, 여전히모든페이지테이블을메모리에상주시키기에는양이너무클수도있다. 그 기때문에어떤시스템들은페이지테이블들을커널가상메모리에존재시키고, 시스템의메모리가부족할경우, 페이지테이블들을디스크로스왑 (swap) 하기도한다. 이부분에대해 는페이지들을메모리에탑재하고제거하는방법을이해한후에, 다시 ( 구체적으로 VAX/VMS에대한사례연구를다루는장에 ) 상세히다루도록한다 요약 페이지테이블이실제로어떻게구성되 는지를보았다. 단순한선형배열을사용하는구조뿐만아니라좀더복잡한자료구조의형태도살펴보았다. 테이블을위한자료구조에는시간과공간이라는모순적선택사항이존재한다. 공간을많이소모하는테이블구조를사용할수록 TLB 미스의처리속도가빨라지고, 공간을작게차지하는테이블구조를사용하면상황은반대가된다. 주어진제약조건들을적절히고려하여적합한자료구조를결정해야한다. 주기억장치용량이작았 던과거시스템 ( 많은과거의시스템들과같은 ) 의경우, 소형자료구조의사용이현명한선택이 다. 적당한크기의메모리와다수의페이지들을사용하는워크로드의경우에 TLB 미스를신속히처리할수있는큰테이블을사용하는것이옳은선택일것이다. 소프트웨어로관리되는 TLB의경우에는, 전체자료구조를운영체제서발자가임의로그리고혁신적으로서발, 그리고서선할수있다. 어떤새로운자료구조가있을까? 그새로운구조는어떤문제를해결하는가? 잠들기전에이러한질문들을해보라. 그리고운영체제서발자만꿀수있는큰꿈을꾸자. 원유집, 박민규, 이성진역 ; 13

14 제 23 장페이징 : 더작은테이블 참고문헌 [BO10] Computer Systems: A Programmer s Perspective Randal E. Bryant and David R. O Hallaron Addison-Wesley, 2010 아직멀티 벨페이지테이블에대한좋은일차참고문 을찾아야한다. 하지만 Bryant와 O Hallaron이 이 청난교재는멀티 벨페이지테이블을사용했던초기의시스템중의하나였던 x86의세부적인내용을다루고있다. 그리고갖고있을만한좋은 중에하나이기도하다. [JM98] Virtual Memory: Issues of Implementation Bruce Jacob and Trevor Mudge IEEE Computer, June 1998 여러다른시스템들과각각의시스템의메모리가상화기법에대한 한조사로 x86과 PowerPC, MIPS 그리고다른컴퓨터구조에대한설명이상세히나와있다. [LL82] Virtual Memory Management in the VAX/VMS Operating System Hank Levy and P. Lipman IEEE Computer, Vol. 15, No. 3, March 1982 운영체제의고전인 VMS의실제가상메모리관리자에대한아주 한논문이다. 너무나 하기때문에앞으로의몇장은이논문을기반으로우리가여태까지배운가상메모리에대해 다시살펴보도록하겠다. [M28] Reese s Peanut Butter Cups Mars Candy Corporation. 이 한당과 는 1928 에 리버 리 (Harry Burnett Reese) 에의해 만들어진것으로보인다. 에종사했던그는 Milton S. Hershey의선적감 중의하나였다. 위키페디아에 적 것으로는그 다. 그게사실이라면, Hershey와 Reese는여느두명의초콜릿부호들이그런것처 로 도보기 을것이다. [M07] Multics: History url: 운영체제역사상가장영향력있 던시스템중의하나인 Multics 시스템에대한방대한양의역사를소서하는놀라운 사이트이다. 내용중한구절을인용한다. MIT의 Jack Dennis는 Multics가처음서발될때영향력있는구조적서념들을제안하는공 을하였다. 그의공 중에는페이징과세그멘테이션을 합하는서념도 함된다. ( 션 중에 ) [Nav+02] Practical, Transparent Operating System Support for Superpages Juan Navarro, Sitaram Iyer, Peter Druschel, and Alan Cox OSDI 02, Boston, Massachusetts, October 2002 현대의운영체제에큰페이지나슈퍼페이지들을 함하기위해필요한모든상세정보들을나타낸좋은논문이다. 그 지만생각하는만큼그 게쉬운것은아니다. 14 운영체제 : 아주쉬운세가지이야기 [V.0.90]

15 숙제 숙제멀티 벨페이지테이블이어떻게동작하는지를이해하고있는지를확인하기위한재미있는작은숙제이다. 앞문장에 재미 있다는표현이적합한지에대해 는논란이있는것은사실이다. 놀랍지않겠지만, 프로그램의이름은 paging-multileveltranslate.py이다. README의상세한설명을참고하자. 문제 1. TLB 미스에대해 하드웨어가검색을한다는가정하에 선형페이지테이블을사용하면페이지테이블의위치를찾기위해하나의 지스터가필요하다. 2단계페이지테이블을사용하는경우에는몇서의 지스터가필요한가? 3단계페이지테이블을사용하는경우는몇서가필요한가? 2. 시뮬 이터를이용하여변환을수행하여보자. 이때랜덤시드는 0과 1 그리고 2를사용하여보자. -c 플래그를사용하여답이맞는지확인해보자. 각검색을수행하기위해 몇번의메모리참조가필요한가? 3. 캐시메모리가어떻게동작하는지이해했다고했을때, 캐시를사용하면페이지테이블에대한메모리참조는어떻게동작할까? 캐시히트가많이생겨날까 ( 그래 빠르게접근될것인가 )? 또는많은미스를만들어낼까 ( 그러므로느리게접근될것인가 )? 원유집, 박민규, 이성진역 ; 15

Microsoft PowerPoint - o8.pptx

Microsoft 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 information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 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

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

Microsoft PowerPoint os9.ppt

Microsoft PowerPoint os9.ppt 기억장치관리 (Memory Management) 배경 (Background) Source Program ( 심볼주소 ) Compiler Object Module ( 재배치가능주소 ) Linkage Editor & Loader Binary Run-time Module ( 절대주소 ) X 14(bytes offset) 74014(R+14) 주소바인딩 (Address

More information

Chapter 4. LISTS

Chapter 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

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770>

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770> 25 강. 수열의극한참거짓 2 두수열 { }, {b n } 의극한에대한 < 보기 > 의설명중옳은것을모두고르면? Ⅰ. < b n 이고 lim = 이면 lim b n =이다. Ⅱ. 두수열 { }, {b n } 이수렴할때 < b n 이면 lim < lim b n 이다. Ⅲ. lim b n =0이면 lim =0또는 lim b n =0이다. Ⅰ 2Ⅱ 3Ⅲ 4Ⅰ,Ⅱ 5Ⅰ,Ⅲ

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

비트와바이트 비트와바이트 비트 (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 information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

3. 다음은카르노맵의표이다. 논리식을간략화한것은? < 나 > 4. 다음카르노맵을간략화시킨결과는? < >

3. 다음은카르노맵의표이다. 논리식을간략화한것은? < 나 > 4. 다음카르노맵을간략화시킨결과는? < > . 변수의수 ( 數 ) 가 3 이라면카르노맵에서몇개의칸이요구되는가? 2칸 나 4칸 다 6칸 8칸 < > 2. 다음진리표의카르노맵을작성한것중옳은것은? < 나 > 다 나 입력출력 Y - 2 - 3. 다음은카르노맵의표이다. 논리식을간략화한것은? < 나 > 4. 다음카르노맵을간략화시킨결과는? < > 2 2 2 2 2 2 2-3 - 5. 다음진리표를간략히한결과

More information

Microsoft PowerPoint os8.ppt [호환 모드]

Microsoft PowerPoint os8.ppt [호환 모드] 8 장주메모리 (Main Memory) Questions of the day 1. 내부단편화 (internal segmentation) 와외부단편화 (external segmentation) 사이의차이점을설명하고아래메모리기법들에어느단편화가발생할수있는지밝히세요. 1MFT(Multiprogramming with a Fixed number of Tasks) 2 MVT(Multiprogramming

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

Chapter ...

Chapter ... 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 information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft 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 information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다 이장에서사용되는 MATLAB 명령어들은비교적복잡하므로 MATLAB 창에서명령어를직접입력하지않고확장자가 m 인 text 파일을작성하여실행을한다. 즉, test.m 과같은 text 파일을만들어서 MATLAB 프로그램을작성한후실행을한다. 이와같이하면길고복잡한 MATLAB 프로그램을작성하여실행할수있고, 오류가발생하거나수정이필요한경우손쉽게수정하여실행할수있는장점이있으며,

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : 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 information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

BY-FDP-4-70.hwp

BY-FDP-4-70.hwp RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,

More information

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx Chapter 2 Secondary Storage and System Software References: 1. M. J. Folk and B. Zoellick, File Structures, Addison-Wesley. 목차 Disks Storage as a Hierarchy Buffer Management Flash Memory 영남대학교데이터베이스연구실

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Internship in OCZ Technology VLDB 연구실 오기환 wurikiji@gmail.com 5/30/2012 1 At San Jose, CA, USA SSD product OCZ Technology Worked at Indilinx firmware team 2012. 1. 3 ~ 2012. 2. 3 ( 약 32 일 ) 오전 9 시출근오후 6

More information

03_queue

03_queue Queue Data Structures and Algorithms 목차 큐의이해와 ADT 정의 큐의배열기반구현 큐의연결리스트기반구현 큐의활용 덱 (Deque) 의이해와구현 Data Structures and Algorithms 2 큐의이해와 ADT 정의 Data Structures and Algorithms 3 큐 (Stack) 의이해와 ADT 정의 큐는 LIFO(Last-in,

More information

Frama-C/JESSIS 사용법 소개

Frama-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

Chap 6: Graphs

Chap 6: Graphs 그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]

More information

Microsoft PowerPoint - 26.pptx

Microsoft 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

Microsoft Word - NAT_1_.doc

Microsoft Word - NAT_1_.doc NAT(Network Address Translation) 1. NAT 개요 1 패킷의 IP 헤더의수신지주소, 발신지주소또는그주소를다른주소로변경하는과정 2 NAT기능을갖는장치를 NAT-BOX라함 ( 시스코라우터, 유닉스시스템, 윈도우의호스트혹은몇개의다른시스템일수있기때문에이렇게지칭하기도함 ) 3 NAT 기능을갖는장치는일반적으로스텁도메인 (Stub-domain)

More information

UniStore

UniStore Modified from lecture slides made by Prof. Sung-Yong Park and Prof. Youngjae Kim Chapter 9. Virtual Memory Introduction to Operating Systems CSW3020 Prof. Young Pyo JUN CSW3020/Introduction to Operating

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770> 제 8강 SQL: 관계데이터베이스언어 강의목표 관계데이타베이스언어로서상용 DBMS에서가장널리사용되는 SQL의동작원리에관하여학습하고, 이를이용하여다양한질의문을작성하는방법을습득한다 기대효과 SQL의데이터정의기능을이해한다 SQL의데이터조작기능중질의기능을이해한다 SQL의데이터조작기능중데이터갱신기능을이해한다 SQL의데이터조작기능중뷰및인덱스관련기능을이해한다 SQL 의개요

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

PowerPoint Presentation

PowerPoint Presentation 5 불대수 IT CookBook, 디지털논리회로 - 2 - 학습목표 기본논리식의표현방법을알아본다. 불대수의법칙을알아본다. 논리회로를논리식으로논리식을논리회로로표현하는방법을알아본다. 곱의합 (SOP) 과합의곱 (POS), 최소항 (minterm) 과최대항 (mxterm) 에대해알아본다. 01. 기본논리식의표현 02. 불대수법칙 03. 논리회로의논리식변환 04.

More information

슬라이드 1

슬라이드 1 명령어집합 주소지정모드 (addressing mode) 내용 명령어는크게연산자부분과이연산에필요한주소부분으로구성 이때주소부분은다양한형태를해석될수있으며, 해석하는방법을주소지정방식 ( 모드 )(addressing mode) 라한다. 즉피연산자정보를구하는방법을주소지정방식이라고함 명령어형식 주소지정 명령어형식에있는주소필드는상대적으로짧다. 따라서지정할수있는위치가제한된다.

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

Microsoft PowerPoint - StallingsOS6e-Chap08.ppt [호환 모드]

Microsoft PowerPoint - StallingsOS6e-Chap08.ppt [호환 모드] 8장. 가상메모리 강의 목표 가상메모리(virtual memory)의 필요성과 개념을 이해한다. 하드웨어와 소프트웨어의 상호작용 수준에서 가상메모리의 작동원리를 이해한다. 페이징(paging)과 세그먼테이션(segmentation)을 비교 이 해한다. 가상메모리의 효율성을 높이기 위한 운영체제의 기능 이해 Unix, Solaris, Linux, Windows의

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

More information

KNK_C_05_Pointers_Arrays_structures_summary_v02

KNK_C_05_Pointers_Arrays_structures_summary_v02 Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",

More information

Microsoft PowerPoint - o8.pptx

Microsoft PowerPoint - o8.pptx 목표 메모리하드웨어를구성하는다양한방법소개 프로세스에게메모리를할당하는다양한기법설명 현대컴퓨터시스템에서 paging 동작방법논의 8 장. 메모리관리 2 8. 배경지식 메모리보호 Base 와 Limit Registers 사용 프로그램은디스크에서메모리로적재된후실행됨 프로세스 disk program load memory PCB process CPU 가직접접근가능한기억장치

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 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

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

31. 을전개한식에서 의계수는? 를전개한식이 일 때, 의값은? 을전개했을때, 의계수와상수항의합을구하면? 을전개했을때, 의 계수는? 를전개했을때, 상수항을 구하여라. 37

31. 을전개한식에서 의계수는? 를전개한식이 일 때, 의값은? 을전개했을때, 의계수와상수항의합을구하면? 을전개했을때, 의 계수는? 를전개했을때, 상수항을 구하여라. 37 21. 다음식의값이유리수가되도록유리수 의값을 정하면? 1 4 2 5 3 26. 을전개하면상수항을 제외한각항의계수의총합이 이다. 이때, 의값은? 1 2 3 4 5 22. 일때, 의값은? 1 2 3 4 5 27. 를전개하여간단히 하였을때, 의계수는? 1 2 3 4 5 23. 를전개하여 간단히하였을때, 상수항은? 1 2 3 4 5 28. 두자연수 와 를 로나누면나머지가각각

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

ADP-2480

ADP-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

Microsoft PowerPoint Predicates and Quantifiers.ppt

Microsoft PowerPoint Predicates and Quantifiers.ppt 이산수학 () 1.3 술어와한정기호 (Predicates and Quantifiers) 2006 년봄학기 문양세강원대학교컴퓨터과학과 술어 (Predicate), 명제함수 (Propositional Function) x is greater than 3. 변수 (variable) = x 술어 (predicate) = P 명제함수 (propositional function)

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

<4D F736F F F696E74202D DBAB8C1B62CC6AFBCF6BFEBB5B5B1E2BEEFC0E5C4A12CBAB4B7C4C4C4C7BBC5CD2E707074>

<4D F736F F F696E74202D DBAB8C1B62CC6AFBCF6BFEBB5B5B1E2BEEFC0E5C4A12CBAB4B7C4C4C4C7BBC5CD2E707074> 1. 보조기억장치 [CA 10강 ]-보조, 특수용도기억장치, 병렬컴퓨터 [ 출제빈도 상 ] - 대규모의기억용량을갖는장비로구현. - data 를보관하였다가주기억장치로이동시키는기능. 2. 자기테이프 ( 순차접근 ) - 백업용 ( 대량의자료를장시간보관 ), 입출력장치 BOT : Beginning Of Tape, IRG : Inter Record Gap EOT :

More information

歯MW-1000AP_Manual_Kor_HJS.PDF

歯MW-1000AP_Manual_Kor_HJS.PDF Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 Page 9 Page 10 Page 11 Page 12 Page 13 Page 14 Page 15 Page 16 Page 17 Page 18 Page 19 Page 20 Page 21 Page 22 Page 23 Page 24 Page 25 Page 26 Page 27 Page

More information

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로 Lab. 1. I-V Characteristics of a Diode Lab. 6. 연산증폭기가산기, 미분기, 적분기회로 1. 실험목표 연산증폭기를이용한가산기, 미분기및적분기회로를구성, 측정및 평가해서연산증폭기연산응용회로를이해 2. 실험회로 A. 연산증폭기연산응용회로 (a) 가산기 (b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로 3. 실험장비및부품리스트

More information

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table 쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table http://academy.hanb.co.kr 6장. 해시테이블 테이블 Hash Table 사실을많이아는것보다는이론적틀이중요하고, 기억력보다는생각하는법이더중요하다. - 제임스왓슨 - 2 - 학습목표 해시테이블의발생동기를이해한다. 해시테이블의원리를이해한다. 해시함수설계원리를이해한다. 충돌해결방법들과이들의장단점을이해한다.

More information

Figure 9.01

Figure 9.01 Chapter 8: Main Memory, Hanbat National Univ. Computer Eng. Dept. Y.J.Kim 2010 Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table

More information

슬라이드 제목 없음

슬라이드 제목 없음 MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS 로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS 보다가격이매우저렴한편이고,

More information

041~084 ¹®È�Çö»óÀбâ

041~084 ¹®È�Çö»óÀбâ 1998 60 1 1 200 2 6 4 7 29 1975 30 2 78 35 1 4 2001 2009 79 2 9 2 200 3 1 6 1 600 13 6 2 8 21 6 7 1 9 1 7 4 1 2 2 80 4 300 2 200 8 22 200 2140 2 195 3 1 2 1 2 52 3 7 400 60 81 80 80 12 34 4 4 7 12 80 50

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft 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 information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 누구나즐기는 C 언어콘서트 제 5 장조건문 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 goto 문 이제까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 조건문 조건에따라서여러개의실행경로가운데하나를선택 문장이실행되는순서에영향을주는문장 조건에따라서여러개의같은처리를반복

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT T9 & AUTOMATA 2007. 3. 23 PLATFORM TEAM 정용학 차례 T9 개요 새로운언어 (LDB) 추가 T9 주요구조체 / 주요함수 Automata 개요 Automata 주요함수 추후세미나계획 질의응답및토의 T9 ( 2 / 30 ) T9 개요 일반적으로 cat 이라는단어를쓸려면... 기존모드 (multitap) 2,2,2, 2,8 ( 총 6번의입력

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft 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 information

Microsoft Word - logic2005.doc

Microsoft Word - logic2005.doc 제 8 장 Counters 실험의목표 - Catalog counter 의동작원리에대하여익힌다. - 임의의 counter를통하여 FSM 구현방법을익힌다. - 7-segment display 의동작원리를이해한다. 실험도움자료 1. 7-segment display 7-segment는디지털회로에서숫자를표시하기위하여가장많이사용하는소자이다. 이름에서알수있듯이 7개의 LED(

More information

Chap 6: Graphs

Chap 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 information

2 장수의체계 1. 10진수 2. 2진수 3. 8진수와 16진수 4. 진법변환 5. 2진정수연산과보수 6. 2진부동소수점수의표현 한국기술교육대학교전기전자통신공학부전자전공 1

2 장수의체계 1. 10진수 2. 2진수 3. 8진수와 16진수 4. 진법변환 5. 2진정수연산과보수 6. 2진부동소수점수의표현 한국기술교육대학교전기전자통신공학부전자전공 1 장수의체계. 진수. 진수 3. 8진수와 6진수 4. 진법변환 5. 진정수연산과보수 6. 진부동소수점수의표현 진수 진수표현법 v 기수가 인수 v,,, 3, 4, 5, 6, 7, 8, 9 사용 9345.35 = 9 3 4 5 3. 5. = 9 3 3 4 5 3-5 - v 고대로마의기수법에는 5 진법을사용 v 진법의아라비아숫자는인도에서기원전 세기에발명 진법을나타내는기본수를기수

More information

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역 WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,

More information

중간고사

중간고사 중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

<4D F736F F F696E74202D FB8DEB8F0B8AE20B8C5C7CE205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D FB8DEB8F0B8AE20B8C5C7CE205BC8A3C8AF20B8F0B5E55D> 학습목표 통신프로그램이무엇인지이해한다. 을이용한 IPC 기법을이해한다. 함수를사용해프로그램을작성할수있다. IT CookBook, 유닉스시스템프로그래밍 2/20 목차 의개념 함수 해제함수 의보호모드변경 파일의크기확장 매핑된메모리동기화 데이터교환하기 의개념 파일을프로세스의메모리에매핑 프로세스에전달할데이터를저장한파일을직접프로세스의가상주소공간으로매핑 read, write

More information

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기 소규모 비즈니스를 위한 YouTube 플레이북 YouTube에서 호소력 있는 동영상으로 고객과 소통하기 소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

= ``...(2011), , (.)''

= ``...(2011), , (.)'' Finance Lecture Note Series 사회과학과 수학 제2강. 미분 조 승 모2 영남대학교 경제금융학부 학습목표. 미분의 개념: 미분과 도함수의 개념에 대해 알아본다. : 실제로 미분을 어떻게 하는지 알아본다. : 극값의 개념을 알아보고 미분을 통해 어떻게 구하는지 알아본다. 4. 미분과 극한: 미분을 이용하여 극한값을 구하는 방법에 대해 알아본다.

More information

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770> IT OOKOOK 87 이론, 실습, 시뮬레이션 디지털논리회로 ( 개정 3 판 ) (Problem Solutions of hapter 7) . 반감산기와전감산기를설계 반감산기반감산기는한비트의 2진수 에서 를빼는회로이며, 두수의차 (difference, ) 와빌림수 (barrow, ) 를계산하는뺄셈회로이다. 에서 를뺄수없으면윗자리에서빌려와빼야하며, 이때빌려오는수는윗자리에서가져오므로

More information

강의 개요

강의 개요 정규화와 SELECT (II) 웹데이터베이스 학과 학생 과목 학과 지도교수 학과학번성명 수강과목 담당교수 A 김수정 A 0001 고길동 성질이론 김수정 B 허영만 A 0002 둘리 한식의멋 허영만 C 강풀 B 0003 희동이 심리학의이해 강풀 과목 _ 성적 학번 수강과목 성적 0001 성질이론 A 0001 한식의멋 C 0002 성질이론 A 0002 한식의멋

More information

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할 저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할수없습니다. 변경금지. 귀하는이저작물을개작, 변형또는가공할수없습니다. 귀하는, 이저작물의재이용이나배포의경우,

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft 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

Cloud Friendly System Architecture

Cloud Friendly System Architecture -Service Clients Administrator 1. -Service 구성도 : ( 좌측참고 ) LB(LoadBlancer) 2. -Service 개요 ucloud Virtual Router F/W Monitoring 개념 특징 적용가능분야 Server, WAS, DB 로구성되어 web service 를클라우드환경에서제공하기위한 service architecture

More information

<C3E6B3B2B1B3C0B0313832C8A32DC5BEC0E7BFEB28C0DBB0D4292D332E706466>

<C3E6B3B2B1B3C0B0313832C8A32DC5BEC0E7BFEB28C0DBB0D4292D332E706466> 11-8140242-000001-08 2013-927 2013 182 2013 182 Contents 02 16 08 10 12 18 53 25 32 63 Summer 2 0 1 3 68 40 51 57 65 72 81 90 97 103 109 94 116 123 130 140 144 148 118 154 158 163 1 2 3 4 5 8 SUMMER

More information

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기 Mango-IMX6Q mfgtool 을 이용한이미지 Write 하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Sequences with Low Correlation

Sequences with Low Correlation 레일리페이딩채널에서의 DPC 부호의성능분석 * 김준성, * 신민호, * 송홍엽 00 년 7 월 1 일 * 연세대학교전기전자공학과부호및정보이론연구실 발표순서 서론 복호화방법 R-BP 알고리즘 UMP-BP 알고리즘 Normalied-BP 알고리즘 무상관레일리페이딩채널에서의표준화인수 모의실험결과및고찰 결론 Codig ad Iformatio Theory ab /15

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A 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 information

슬라이드 1

슬라이드 1 www.altsoft.co.kr www.clunix.com COMSOL4.0a Cluster 성능테스트 2010 년 10 월 클루닉스 / 알트소프트 개요 개요 목차 BMT 환경정보 BMT 시나리오소개 COMSOL4.0a MPP 해석실행조건 BMT 결과 COMSOL4.0a 클러스터분석결과 ( 메모리 / 성능 ) COMSOL4.0a 클러스터최종분석결과 -2- 개요

More information

Visual Basic 반복문

Visual 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

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

Chapter 4. LISTS

Chapter 4. LISTS 6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립

More information

버퍼오버플로우-왕기초편 3.c언어에서버퍼사용하기 버퍼는 임시기억공간 이라는포괄적인개념이기때문에여러곳에존재할수있습니다. 즉, CPU 에도버퍼가존재할수있으며, 하드디스크에도존재할수있고, CD- ROM 이나프린터에도존재할수있습니다. 그리고앞의예제에서보신바와같이일반프로그램에도

버퍼오버플로우-왕기초편 3.c언어에서버퍼사용하기 버퍼는 임시기억공간 이라는포괄적인개념이기때문에여러곳에존재할수있습니다. 즉, CPU 에도버퍼가존재할수있으며, 하드디스크에도존재할수있고, CD- ROM 이나프린터에도존재할수있습니다. 그리고앞의예제에서보신바와같이일반프로그램에도 버퍼는 임시기억공간 이라는포괄적인개념이기때문에여러곳에존재할수있습니다. 즉, CPU 에도버퍼가존재할수있으며, 하드디스크에도존재할수있고, CD- ROM 이나프린터에도존재할수있습니다. 그리고앞의예제에서보신바와같이일반프로그램에도존재할수있습니다. 이번시간엔프로그램에서버퍼를사용하는법, 그중에서도 C 언어에서버퍼를사용하는방법에대해배워보겠습니다. C 언어에서버퍼를사용하는가장쉬운방법은바로변수를선언하는것인데,

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에대하여 AB=BA 1 가성립한다 2 3 (4) 이면 1 곱셈공식및변형공식성립 ± ± ( 복호동순 ), 2 지수법칙성립 (은자연수 ) < 거짓인명제 >

More information