Let's geek! (1)
Upcoming SlideShare
Loading in...5
×
 

Let's geek! (1)

on

  • 479 views

Let's geek! (1)

Let's geek! (1)

Statistics

Views

Total Views
479
Views on SlideShare
304
Embed Views
175

Actions

Likes
0
Downloads
0
Comments
0

2 Embeds 175

http://www.ndtech.co 151
http://ndtech.co 24

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Let's geek! (1) Let's geek! (1) Presentation Transcript

  • Lets geek! (1)Ju-yeong ParkND Technologies
  • Prerequisite● C 언어에 대한 깊은 이해● 컴퓨터 시스템에 대한 기본적인 이해● 어셈블리 언어 경험● 정의롭고 아름다운 마음 (?)
  • Syllabus1. 가상 머신 설계 및 구현a. 이론 습득 및 예제 분석i. 튜링 기계 및 튜링 완전ii. 명령어 셋의 다양한 종류iii. 주소 지정 방식 및 MMUiv. I/O와 인터럽트b. 설계 및 구현2. 만든 가상 머신을 위한 프로그래밍 언어 설계및 구현3. 만든 프로그래밍 언어로 운영체제 설계 및 구현
  • Turing completeness?● 수학적 문제를 기계적으로 해결할 수 있다는계산 모델 = 튜링 기계● 어떤 다른 계산 모델이 튜링 기계로 나타낼 수있는 프로그램을 모두 나타낼 수 있고, 그 역도 성립함 = 튜링 완전● 예: Brainfuck
  • Instruction set● RISC vs. CISC○ RISC(Reduced Instruction Set Computer)○ CISC(Complex Instruction Set Computer)● Opcode & Operand● SISD, SIMD, MIMD, MISD● 1 Address Code, 2 Address Code, 3Address Code
  • Adressing mode● Immediate addressing mode● Register addressing mode● Direct addressing mode● Indirect addressing mode○ Register○ Memory● Relative addressing mode● Stack addressing mode
  • MMU(Memory Management Unit)● Translation
  • Interrupt● External interrupt● Exception/Trap● Software interrupt
  • 예제 분석 (1)명령어, 총 17개[opcode 1바이트][operand 당 2바이트]16비트 컴퓨터? 분기문. 두개가 같으면= 메모리에 즉치l 메모리 복사+ 더하기- 빼기* 곱하기/ 나누기m 나머지 연산o ORa ANDx XORn NOTi 인터럽트 호출p 푸시P 팝h 한 클럭 쉬기H 컴퓨터 종료
  • 예제 분석 (2)VCPUMain memory(size: 64kb)Console driver(80x25)InterruptControllerIRQ 0: TimerIRQ 1: KeyboardIRQ 2: ReservedIRQ 3: Reserved
  • 예제 분석 (3)● 메모리 맵00x0000~0x000F: 레지스터 (범용 레지스터 4개 (R0-R3), 차례대로 SP, SB, FL, IP)0xFFFF 00x0010~0x0017: 인터럽트 벡터 테이블 (0-3)0x0018: 키보드 스캔 코드 레지스터00x0820~0x0FFF: 비디오 콘솔 메모리
  • 예제 분석 (4)● 인터럽트 구현● 인터럽트 0번 발생● Interrupt Vector Table에서 Handler의 주소를 찾음 ( 0x0010 )● 스택에 현재 IP를 저장하고, 핸들러로 점프함● 처리 후 핸들러에서 IP를 복구 시켜줌
  • How multitasking works● Guess how it works!
  • Lets geek!구현해보자.