Let's geek! (1)

602 views

Published on

Let's geek! (1)

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
602
On SlideShare
0
From Embeds
0
Number of Embeds
175
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Let's geek! (1)

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

×