Loader Absolute Relocating 0 process 11 process 1
Loader Absolute, Relocating 0 process 11 process 1 100 process 2 200 hole process 3 hole 400 main = 0 번지 main() hole main = 400 main() X= Y + Z
Overlay 소스 읽기 part 1 예 번역 프로그램 part 1 번역하기 part 2 binary 만들기 part 3 part 2 part 3 시 간 Manual Overlay Dynamic Overlay
사용자 Interface hwp binary PPT binary 탐색기 binary
사용자 Interface $ hwp binary PPT binary 탐색기 binary
사용자 Interface $ hwp_ hwp binary PPT binary 탐색기 binary
사용자 Interface GUI – Windows Graphic User Interface CUI – Linux, UNIX Character User Interface $ hwp_ programs in disk processes in memory
사용자 Interface ” p w “h 상주 OS
사용자 Interface OS ” p w “h 상주 OS 탐색기 hwp email Powerpoint game *. EXE a. out
사용자 Interface OS ” p w “h 상주 OS hwp 탐색기 hwp email Powerpoint game *. EXE a. out
사용자 Interface OS ” p w “h 상주 OS hwp 화면 탐색기 hwp email Powerpoint game *. EXE a. out
컴파일링, 어셈블링 Source Code Add A, B A: 100 B: 330 Jump C C: exit
컴파일링, 어셈블링 Source Code Add A, B A: 100 B: 330 Jump C C: exit D: EOF Symbols
컴파일링, 어셈블링 Add 10, 20 Source Code 10: 100 20: 330 Add A, B A: 100 B: 330 Jump C C: exit symbol address 부분 Jump 30 30: exit
컴파일링, 어셈블링 Add 10, 20 Source Code 10: 100 20: 330 Add A, B Jump 30 A: 100 30: exit B: 330 Jump C C: exit 001 A, B op-code data 부분 A: 100 B: 330 112 C C: 723
컴파일링, 어셈블링 Add 10, 20 Source Code 10: 100 Binary Code 20: 330 Add A, B A: 100 symbol address 부분 B: 330 Jump 30 30: exit 001 10, 20 10: 100 Jump C 20: 330 001 A, B C: exit op-code 부분 112 30 A: 100 B: 330 112 C C: 723 30: 723
컴파일링, 어셈블링 Source Code Binary Code Symbol Table Add A, B A: 100 Symbol B: 330 A 10 번지 B 20 번지 10: 100 C 30 번지 20: 330 printf ---- 112 30 … ---- Jump C C: printf() Binary 001 10, 20 30: 723
참조한 Symbol이 그 file에 없다면? 예: print() sin() my. c: main() { int x; call sin(); call printf(); } add() { } symbol binary 값 main 0 번지 x 10 번지 printf 이 파일에는 없음 add 50 번지 … 불완전한 binary object module
object module 의 예 he. c: printf() { int i, j; return; } she. c: sin() { int x, y; return; } object module: -이 파일만으로는 불완전 -binary를 만들 수 없음 예: main()이 없음 library 비슷한 종류의 object module들의 모음
binary까지 세단계 Source code Object module main. c main. o link 컴파일 print. c sin. c Executable binary print. o sin. o a. out (*. EXE)
전체 과정 Source code Compiler Object module library 들 Object module Linker Executable Loader
전체 과정 Source code Compiler Object module Linker Executable library 들 Object module 사용자 인터페이스 Object module Executable Loader
- Slides: 30