ความรเบองตนเกยวกบโปรแกรมระบบ
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 1
การวดและประเมนผล สอบกลางภาค (Midterm) 30
สอบปลายภาค (Final) 30
งาน Homework, Program 30
เขาเรยน+จตพสย 10
รวม 100
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 2
โปรแกรมระบบ (Systems Software) คออะไร โปรแกรมทถกพฒนาขน เพอชวยใหผใชคอมพวเตอร (Users) สามารถใช
คอมพวเตอร ไดตรงตามความตองการของผใช งาย และสะดวก
โปรแกรมทใช ชวยในการสนบสนนการท างานของโปรแกรมประยกต
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 3
ตวอยางของโปรแกรมระบบ Assembler
Compiler
Macro Processor
Loader
Linker
Operating System
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 4
ล าดบชนของการใชงานคอมพวเตอร
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 5
ล าดบชนของการใชงานคอมพวเตอร
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 6
องคประกอบของการเขยนโปรแกรมระบบ
People
Application Programming
Compilers Assemblers Macro Processors
Loaders Tex Editors Debugging Aids Searching
and Sorting
I/O
Programs
File Systems Scheduler Libraries Memory
Management
Device
Management
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 7
โครงสราง เครองคอมพวเตอร
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 8
Memory
I/O
Processor
I/O
ProcessorCPU· · CPU · ·
Card
Read/PunchDisk
Or Drum
Printer
โครงสราง เครองคอมพวเตอร (ตอ) Memory เปนอปกรณทใชเกบขอมล และค าสง
Processor อปกรณทใชในการประมวลผลขอมล ตามค าสงทเกบไวในหนวยความจ า
ขอมล และค าสง เกบอยในรปของ ‘0’ และ ‘1’
‘0’ และ ‘1’ เรยก Binary Digits (Bit)
เมอหลาย Bits มารวมกน กลายเปน Words, Characters หรอ Bytes เปนตน
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 9
โครงสราง เครองคอมพวเตอร (ตอ)Memory Location ถกก าหนดโดย Address ทชไปยงขอมล หรอ
ค าสง ในหนวยความจ า
Memory หรอหนวยความจ า คลายกบ ตจดหมาย ทใชบรรจกลมขอมล ‘0’ และ ‘1’ โดยม Address ก ากบ
Address Contents
10,000 0000 0000 0000 0001
10,001 0011 0000 0000 0001
10,002 0000 0000 0000 0101
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 10
โครงสราง เครองคอมพวเตอร (ตอ) Code หรอ รหส คอกลมของ Bits ทเกดจากกฎเกณฑ ทเราตงขน เชน BCD ใชแทนตวเลข (decimal digit)
EBCDIC และ ASCII ใชแทนตวอกขระ
Instruction ขนอยกบตว Processor
Processor จะแบงเปน 2 ประเภทใหญ ๆ คอ CPU (Central Processing Unit) หนวยประมวลผลกลาง
I/O processors
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 11
โครงสราง เครองคอมพวเตอร (ตอ)
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 12
Input
Output
I/O
Arithmetic &
Logic Unit
Control Unit
PROCESSOR
Main Memory
โครงสราง เครองคอมพวเตอร (ตอ) I/O Processor ท าหนาทยายขอมลระหวางหนวยความจ า กบอปกรณประกอบ
ภายนอก เชน เครองพมพ ดสก เครองพมพ เปนตน ท างานตามค าสงทเกบไวในหนวยความจ า สงใหท างานโดย CPU
I/O Instructions คอกลมค าสง ทท างานโดยตว I/O Processors ชดค าสง อาจแตกตางจากชดค าสงของ CPU
สามารถท างานแบบ Asynchronously (Simultaneously) กบตว CPU
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 13
โครงสราง เครองคอมพวเตอร (ตอ)
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 14
Data Register
Status/Control Register
External
Device
Interface
Logic
External
Device
Interface
Logic
Input
Output
Logic
Data
Lines
Address
Lines
Data
Lines
Data
Status
Control
Data
Status
Control
Systems Bus Interface External Device Interface
โครงสราง เครองคอมพวเตอร (ตอ) การท างานแบบ Asynchronous ระหวาง I/O และ CPU เปนตนแบบของ
Multiprocessing
Multiprocessing หมายถง ระบบคอมพวเตอร ทมตว Processor มากกวา 1 ตว ท างานพรอมกน โดยใชหนวยความจ า (Memory) ทเดยวกน
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 15
โครงสราง เครองคอมพวเตอร (ตอ) Procedure หรอโปรแกรมยอย ทแกไขตวมนเอง (Modify) เรยกวา
Impure Procedure Impure Procedure อานเขาใจยาก ไมสามารถท างานรวมกน (Shared) แบบ Multiprocessor ได สงใหท างานแตละครง (Execute) จะเจอค าสงตางๆ กน เพราะฉะนน เอาโปรแกรม มาใชหนหรอ 2 หนไมได
ถาจะใหโปรแกรม Reusable เหมอนกนทกครง ทท าการ Execute ตองเขยนโปรแกรมเปน Pure Procedure หรอ Re-Entrant Code
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 16
1.2 องคประกอบของโปรแกรมระบบ1.2.1 Assembler
ใชแปลงโปรแกรมภาษาแอสเซมบล ใหเปนภาษาเครอง
Source Destination
Program Program
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 17
Assembly
Language
Program
AssemblerObject
Program
1.2.2 ไมม LoadersMemory
Assembler
Object
Program
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 18
Assembly
Language
Program
• เปลองหนวยความจ า
• ตองท าการแปลงทกครง เมอตองการ Execute
1.2.2 ม LoadersAssembler
Loader
Object
Program
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 19
Assembly
Language
Program
ObjectProgram
Loader
ObjectProgram
Loader
• Loader เลกกวา ตว Assembler ดงนนกนหนวยความจ านอยกวา สามารถใช Object Program ไดใหญขน
• สามารถใชโปรแกรมยอยได
โปรแกรมยอย (subroutines) Subroutine จะแบงเปน 2 ประเภท คอ
Closed subroutines จะถกเกบอยภายนอก main program ซงจะถกเรยกเมอมการเรยกใชโดย main
program ซงจะท าการ link ไปเรยกใช subroutine อกทหนง ดงนนหนาทของ main program จะม 2 อยางคอ Transfer control และ Transfer data
Open subroutines หรอบางครงเรยกวา Macro definition เปนการ insert code ลงใน main
program ดงนนหากมการเรยกใช subroutine นน 4 ครง ตว code ของsubroutine กจะปรากฏใน 4 ท ภายใน program
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 20
ปญหาของโปรแกรมยอย
SQRT
Program 1
SQRT
Program 2
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 21
•โปรแกรม 1 (ขนาดเลก) ม Hole
•โปรแกรม 2 (ขนาดใหญ) ทบโปรแกรมยอย SQRT
หนาทของ Loader จดสรรพนทในหนวยความจ าใหกบโปรแกรม
(Allocation)
เชอมโยง Address ของ Symbolic ตางๆระหวาง Object (Linking)
ปรบ Address ใหสอดคลองกบหนวยความจ า ในกรณการอาง Address เปนแบบ Relocate
Address (Relocation)
เรยกโปรแกรมจากดสก มาไวยงหนวยความจ า (Loading)
Sub 1
Sub 2
Sub3
Main
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 22
Time Execution Time ระยะเวลาในการ Execute โปรแกรมของผใช
Assembly Time ระยะเวลาในการแปลงโปรแกรมภาษาแอสเซมบล ใหเปน Object Program
Compile Time ระยะเวลาในการแปลงโปรแกรมภาษาชนสง เชน Pascal ใหเปน Object Program
Load Time ระยะเวลาในการโหลดโปรแกรมจากดสกลงหนวยความจ า และปรบแอดเดรส พรอมใหโปรแกรมท างาน
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 23
1.2.3 Macro Processor
ลดงานโปรแกรมเมอร ในการ Code โปรแกรม
:
Macro name
:
Macro end
:
Name
:
Name
:
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 24
• แทนท ขยาย
•ท าโดย Macro Processor
Macro Processors
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 25
Create macro definitions
Save the macro definition
Recognize macro calls
Expand macro calls
Source
Code(with macro)
Macro
Processor
Expanded
Code
Compiler or
Assemblerobj
Macro Processors
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 26
Source
STRG MACRO
STA DATA1
STB DATA2
STX DATA3
MEND
.
STRG
.
STRG
.
.
Expanded source
.
.
.
STA DATA1
STB DATA2
STX DATA3
.
STA DATA1
STB DATA2
STX DATA3
.
Macro Processors
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 27
Source
STRG MACRO &a1, &a2, &a3
STA &a1
STB &a2
STX &a3
MEND
.
STRG DATA1, DATA2, DATA3
.
STRG DATA4, DATA5, DATA6
.
.
Expanded souce
.
.
.
STA DATA1
STB DATA2
STX DATA3
.
STA DATA4
STB DATA5
STX DATA6
.
{
{
1.2.4 Compiler
แปล High level language ใหเปน Object Program
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 28
High Level
Language
Program
CompilerObject
Program
1.3 Operating System ขนตอนในการ Execute โปรแกรมระบบเกา เชน ภาษา Fortran ยคเรมแรก ใสโปรแกรมระบบ Compiler ของภาษา Fortran (กดปม) ใส Source Program (กดปม) หา Loader จาก Library ใส (กดปม) หยบ Object Cards มาใส (กดปม) หา Subroutine Card มาใส (กดปม)
ยงยาก ใชล าบาก เสยเวลามากในการท างาน 1 Job/Program
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 29
Batch Operating System โปรแกรมจ านวนมาก ถก Loaded ลงหนวยความจ า
เปนระบบ Multiprogramming (มหลายโปรแกรมบรรจภายในหนวยความจ า CPU สามารถสวทชไปท าโปรแกรมอนได ถาโปรแกรมทก าลงท างานอย รอการใชอปกรณ I/O)
Multiprogramming with Fixed Tasks (MFT)
(หนวยความจ าแตละโปรแกรมคงท)
Multiprogramming with Variable Tasks (MFT)
(หนวยความจ าแตละโปรแกรม แปรไปตามขนาดของโปรแกรม)
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 30
Multiprogramming
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 31
FragmentationFortran
Assembler
Loader
Users
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 32
Holes
การแกปญหา Fragmentation Relocatable Partition
Paging
Segment
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 33
Paging
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 34
ตวอยาง : สมมต Process A มพนทในหนวยความจ า 4 Page OS กจะท าการหา Frame ทวางมา 4 Frame โดยทไมจ าเปนจะตองอยตดกนจาก Free Frame List จะม Page Table ส าหรบเกบไววา Page ไหนถกเกบไว Frame ไหนของหนวยความจ า
Time Sharing
แบงเวลาของ CPU ออกเปนสวน ใหกบ User แตละคน จนดเหมอนวา User แตละคนเปนเจาของ CPU
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 35
หนาทหลกของ OS Job Sequencing, Job scheduling, traffic controller
operation
Input/Output programming
Protection ifself from the user ; Protecting the user from other users
Secondary storage management
Error handling
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 36
Summary Loader มหนาทท าการ load object program (machine
code) เพอเตรยมพรอมเขาสกระบวนการ execute การท างานของloader มรปแบบดงนเชน
Load object program to main memory
Relocate address of object program
Link object programs
Compiler มหนาทแปลง source program ซงเปน High level language ใหเปน object program
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 37
Summary Assembler คอ ตวแปรภาษา assembly ทได output ออกมาเปน
Machine code หรอ Object program เพอเตรยมพรอมให Loader น าไปท าการ Execute
Macro Processor
Macro call เปนการเรยกใช โดยอางถงชอ Macro
Macro definition คอ ตว code ทถกเรยกใช
Macro processor คอ system program ทท าหนาท น า Macro definition ไปวางแทนท สวนของ code ทเรยกโดย Macro call
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 38
Summary Operating system ท าการจดการเกยวกบการจดการทรพยากร และ
บรการตาง ๆ ของคอมพวเตอร เชน memory, processors, devices และ information OS เปน system program มหนาทจดการทรพยากรตาง ๆ เชน
Traffic controller
Scheduler
Memory management module
I/O programs
File system
บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 39
Top Related