Upload
nhung
View
55
Download
3
Embed Size (px)
DESCRIPTION
제 02 강 : Utility 프로그램. Utility 프로그램. Utility Program. 하드웨어를 직접 제어하지는 않지만 , 다른 프로그램의 실행 / 개발을 도와줌 예 : Editor 어셈블러 , 매크로 프로세서 , 컴파일러 링커 (Linker), 로더 (Loader) 사용자 인터페이스 ( 명령 처리기 ) 다음에는 어떤 일을 할까요 ?. 매크로 프로세서 (Macro Processor). ( 반복되는 데이터 ) John Fitzgerald Kennedy - PowerPoint PPT Presentation
Citation preview
Utility 프로그램
제 02 강 : Utility 프로그램
Utility Program
• 하드웨어를 직접 제어하지는 않지만 , • 다른 프로그램의 실행 /개발을 도와줌• 예 :
– Editor– 어셈블러 , 매크로 프로세서 , 컴파일러 – 링커 (Linker), 로더 (Loader) – 사용자 인터페이스 ( 명령 처리기 )
• 다음에는 어떤 일을 할까요 ?
매크로 프로세서(Macro Processor)
• ( 반복되는 데이터 ) John Fitzgerald Kennedy• ( 짧은 macro 이름 ) JFK• 코딩하는 사람은 JFK 사용하여 코딩한다 . • 컴파일 직전에 치환 (macro processing). JKF John Fitzgerald Kennedy • 치환은 2- 패스 (pass) 로
– pass 1: 매크로 정의를 인식 ( 예 : JFK) (JFK -- John Fitzgerald Kennedy) 저장 .
– pass 2: 매크로 치환작업 프로그램 번역 완성
LoaderAbsolute, Relocating
process 1
process 2
hole process 3
hole
process 10
100
400
main()
main = 0 번지 main = 400
main()
main()
main()
main()main()
hole
process 1
200
X= Y + Z
Overlay
part 1
part 2
part 3
part 1part 2
part 3
시 간
Manual OverlayDynamic Overlay
예 번역프로그램
소스 읽기 binary 만들기번역하기
Utility Program
• 하드웨어를 직접 제어하지는 않지만 , • 다른 프로그램의 실행 /개발을 도와줌• 예 :
– Editor– 어셈블러 , 매크로 프로세서 , 컴파일러 – 링커 (Linker), 로더 (Loader) – 사용자 인터페이스 ( 명령 처리기 )
• 다음에는 어떤 일을 할까요 ?
사용자 Interface
hwpbinary
PPTbinary
탐색기binary
사용자 Interface
$
hwpbinary
PPTbinary
탐색기binary
사용자 Interface
hwpbinary
PPTbinary
탐색기binary
$ hwp_
사용자 Interface
$ hwp_
GUI – WindowsGraphic User Interface
processesin
memory
programs in
disk
CUI – Linux, UNIXCharacter User Interface
사용자 Interface
상주OS
“hwp”
사용자 Interface
상주OS 탐색기
hwp
Powerpoint
game
email“hwp”
*.EXE
a.out
OS
사용자 Interface
상주OS 탐색기
hwp
Powerpoint
game
email“hwp”
hwp*.EXE
a.out
OS
사용자 Interface
상주OS 탐색기
hwp
Powerpoint
game
email“hwp”
hwp*.EXE
a.out
OS
hwp화면
프로그래밍 언어– 기계어 (machine language)
• 00110110• 컴퓨터가 바로 실행 가능
– 어셈블리어 (assembly language)• 기계어 명령어와 1:1 대응• 어셈블러 (assembler)
– 고급 언어 (high-level language)• X**2 여러개의 기계어 명령어 • 컴파일러 (compiler) 또는 인터프리터 (interpreter)
01100110 11110011 10010111
ADD A B
Add A, B
A: 100
B: 330
Jump C
C: exit
SourceCode
컴파일링 , 어셈블링
Add A, B
A: 100
B: 330
Jump C
C: exitD: EOF
SourceCode
컴파일링 , 어셈블링
Symbols
Add A, B
A: 100
B: 330
Jump C
C: exit
Add 10, 20
10: 100
20: 330
Jump 30
30: exit
SourceCode
symbol address
부분
컴파일링 , 어셈블링
Add A, B
A: 100
B: 330
Jump C
C: exit
Add 10, 20
10: 100
20: 330
Jump 30
30: exit
SourceCode
001 A, B
A: 100
B: 330
112 C
C: 723
op-code data부분
컴파일링 , 어셈블링
Add A, B
A: 100
B: 330
Jump C
C: exit
Add 10, 20
10: 100
20: 330
Jump 30
30: exit
SourceCode
BinaryCode
001 A, B
A: 100
B: 330
112 C
C: 723
op-code 부분
symbol address
부분001 10, 20
10: 100
20: 330
112 30
30: 723
컴파일링 , 어셈블링
Add A, B
A: 100
B: 330
Jump C
C: printf()
SourceCode
BinaryCode
001 10, 20
10: 100
20: 330
112 30
30: 723
컴파일링 , 어셈블링
Symbol Binary
A 10 번지 B 20 번지C 30 번지
printf ----
… ----
Symbol Table
참조한 Symbol 이 그 file 에 없다면 ?예 : print() sin()
my.c: main() { int x; call sin(); call printf();}
add(){
}
symbol binary 값main 0 번지
x 10 번지 printf 이 파일에는 없음
add 50 번지 …
불완전한 binaryobject module
object module 의 예
he.c: printf() { int i,j; return;}
object module: - 이 파일만으로는 불완전 -binary 를 만들 수 없음예 : main() 이 없음
she.c: sin() { int x,y; return;}
library 비슷한 종류의 object module 들의 모음
binary 까지 세단계
Source Object Executable code module binary
main.c main.o
a.out (*.EXE)
print.c print.osin.c sin.o
컴파일 link
전체 과정
Linker Loader
Sourcecode
Objectmodule
ExecutableSourcecode
ObjectmoduleCompiler
Compiler
Objectmodule
Objectmodule
Objectmodule
library 들
전체 과정
Linker Loader
Sourcecode
Objectmodule
ExecutableSourcecode
ObjectmoduleCompiler
Compiler
Executable
Executable
사용자인터페이스
사용자인터페이스
Objectmodule
Objectmodule
Objectmodule
library 들
OS 의 정의
정 의
하드웨어와 사람 ( 또는 응용 프로그램 ) 사이중간 역할
– 성능 (Performance) 향상을 도모한다 . – 사용자 인터페이스 (User interface) 제공 .
하드웨어
운영체제
응용프로그램응용프로그램 고급 인터페이스
제공
관리 보호
하드웨어
하드웨어
OS Kernel
loaderlinker
응용프로그램 응용프로그램
Utility Programs
협의 OS광의 OS
컴파일러
광의 /협의 OS 정의
CPU Memory
사용자 문제 해결
프로그램 개발 /실행도우미
자원의 관리
운영체제의 기능
• 자원의 할당– CPU, memory 스케줄링 등
• 편리한 인터페이스– 사용자 인터페이스 – 입출력 device driver
• 제어– 여러 프로그램들이 자원을 공유할때– 발생하는 문제 제어