ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf ·...

39
ความรู ้เบื ้องต ้นเกี่ยวกับโปรแกรมระบบ บทที1 ความรู้พื ้นฐาน (การเขียนโปรแกรมระบบ) 1

Upload: others

Post on 25-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

ความรเบองตนเกยวกบโปรแกรมระบบ

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 1

Page 2: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

การวดและประเมนผล สอบกลางภาค (Midterm) 30

สอบปลายภาค (Final) 30

งาน Homework, Program 30

เขาเรยน+จตพสย 10

รวม 100

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 2

Page 3: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

โปรแกรมระบบ (Systems Software) คออะไร โปรแกรมทถกพฒนาขน เพอชวยใหผใชคอมพวเตอร (Users) สามารถใช

คอมพวเตอร ไดตรงตามความตองการของผใช งาย และสะดวก

โปรแกรมทใช ชวยในการสนบสนนการท างานของโปรแกรมประยกต

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 3

Page 4: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

ตวอยางของโปรแกรมระบบ Assembler

Compiler

Macro Processor

Loader

Linker

Operating System

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 4

Page 5: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

ล าดบชนของการใชงานคอมพวเตอร

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 5

Page 6: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

ล าดบชนของการใชงานคอมพวเตอร

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 6

Page 7: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

องคประกอบของการเขยนโปรแกรมระบบ

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

Page 8: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

โครงสราง เครองคอมพวเตอร

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 8

Memory

I/O

Processor

I/O

ProcessorCPU· · CPU · ·

Card

Read/PunchDisk

Or Drum

Printer

Page 9: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

โครงสราง เครองคอมพวเตอร (ตอ) Memory เปนอปกรณทใชเกบขอมล และค าสง

Processor อปกรณทใชในการประมวลผลขอมล ตามค าสงทเกบไวในหนวยความจ า

ขอมล และค าสง เกบอยในรปของ ‘0’ และ ‘1’

‘0’ และ ‘1’ เรยก Binary Digits (Bit)

เมอหลาย Bits มารวมกน กลายเปน Words, Characters หรอ Bytes เปนตน

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 9

Page 10: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

โครงสราง เครองคอมพวเตอร (ตอ)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

Page 11: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

โครงสราง เครองคอมพวเตอร (ตอ) Code หรอ รหส คอกลมของ Bits ทเกดจากกฎเกณฑ ทเราตงขน เชน BCD ใชแทนตวเลข (decimal digit)

EBCDIC และ ASCII ใชแทนตวอกขระ

Instruction ขนอยกบตว Processor

Processor จะแบงเปน 2 ประเภทใหญ ๆ คอ CPU (Central Processing Unit) หนวยประมวลผลกลาง

I/O processors

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 11

Page 12: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

โครงสราง เครองคอมพวเตอร (ตอ)

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 12

Input

Output

I/O

Arithmetic &

Logic Unit

Control Unit

PROCESSOR

Main Memory

Page 13: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

โครงสราง เครองคอมพวเตอร (ตอ) I/O Processor ท าหนาทยายขอมลระหวางหนวยความจ า กบอปกรณประกอบ

ภายนอก เชน เครองพมพ ดสก เครองพมพ เปนตน ท างานตามค าสงทเกบไวในหนวยความจ า สงใหท างานโดย CPU

I/O Instructions คอกลมค าสง ทท างานโดยตว I/O Processors ชดค าสง อาจแตกตางจากชดค าสงของ CPU

สามารถท างานแบบ Asynchronously (Simultaneously) กบตว CPU

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 13

Page 14: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

โครงสราง เครองคอมพวเตอร (ตอ)

บทท 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

Page 15: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

โครงสราง เครองคอมพวเตอร (ตอ) การท างานแบบ Asynchronous ระหวาง I/O และ CPU เปนตนแบบของ

Multiprocessing

Multiprocessing หมายถง ระบบคอมพวเตอร ทมตว Processor มากกวา 1 ตว ท างานพรอมกน โดยใชหนวยความจ า (Memory) ทเดยวกน

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 15

Page 16: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

โครงสราง เครองคอมพวเตอร (ตอ) Procedure หรอโปรแกรมยอย ทแกไขตวมนเอง (Modify) เรยกวา

Impure Procedure Impure Procedure อานเขาใจยาก ไมสามารถท างานรวมกน (Shared) แบบ Multiprocessor ได สงใหท างานแตละครง (Execute) จะเจอค าสงตางๆ กน เพราะฉะนน เอาโปรแกรม มาใชหนหรอ 2 หนไมได

ถาจะใหโปรแกรม Reusable เหมอนกนทกครง ทท าการ Execute ตองเขยนโปรแกรมเปน Pure Procedure หรอ Re-Entrant Code

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 16

Page 17: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

1.2 องคประกอบของโปรแกรมระบบ1.2.1 Assembler

ใชแปลงโปรแกรมภาษาแอสเซมบล ใหเปนภาษาเครอง

Source Destination

Program Program

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 17

Assembly

Language

Program

AssemblerObject

Program

Page 18: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

1.2.2 ไมม LoadersMemory

Assembler

Object

Program

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 18

Assembly

Language

Program

• เปลองหนวยความจ า

• ตองท าการแปลงทกครง เมอตองการ Execute

Page 19: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

1.2.2 ม LoadersAssembler

Loader

Object

Program

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 19

Assembly

Language

Program

ObjectProgram

Loader

ObjectProgram

Loader

• Loader เลกกวา ตว Assembler ดงนนกนหนวยความจ านอยกวา สามารถใช Object Program ไดใหญขน

• สามารถใชโปรแกรมยอยได

Page 20: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

โปรแกรมยอย (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

Page 21: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

ปญหาของโปรแกรมยอย

SQRT

Program 1

SQRT

Program 2

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 21

•โปรแกรม 1 (ขนาดเลก) ม Hole

•โปรแกรม 2 (ขนาดใหญ) ทบโปรแกรมยอย SQRT

Page 22: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

หนาทของ Loader จดสรรพนทในหนวยความจ าใหกบโปรแกรม

(Allocation)

เชอมโยง Address ของ Symbolic ตางๆระหวาง Object (Linking)

ปรบ Address ใหสอดคลองกบหนวยความจ า ในกรณการอาง Address เปนแบบ Relocate

Address (Relocation)

เรยกโปรแกรมจากดสก มาไวยงหนวยความจ า (Loading)

Sub 1

Sub 2

Sub3

Main

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 22

Page 23: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

Time Execution Time ระยะเวลาในการ Execute โปรแกรมของผใช

Assembly Time ระยะเวลาในการแปลงโปรแกรมภาษาแอสเซมบล ใหเปน Object Program

Compile Time ระยะเวลาในการแปลงโปรแกรมภาษาชนสง เชน Pascal ใหเปน Object Program

Load Time ระยะเวลาในการโหลดโปรแกรมจากดสกลงหนวยความจ า และปรบแอดเดรส พรอมใหโปรแกรมท างาน

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 23

Page 24: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

1.2.3 Macro Processor

ลดงานโปรแกรมเมอร ในการ Code โปรแกรม

:

Macro name

:

Macro end

:

Name

:

Name

:

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 24

• แทนท ขยาย

•ท าโดย Macro Processor

Page 25: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

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

Page 26: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

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

.

Page 27: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

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

.

{

{

Page 28: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

1.2.4 Compiler

แปล High level language ใหเปน Object Program

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 28

High Level

Language

Program

CompilerObject

Program

Page 29: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

1.3 Operating System ขนตอนในการ Execute โปรแกรมระบบเกา เชน ภาษา Fortran ยคเรมแรก ใสโปรแกรมระบบ Compiler ของภาษา Fortran (กดปม) ใส Source Program (กดปม) หา Loader จาก Library ใส (กดปม) หยบ Object Cards มาใส (กดปม) หา Subroutine Card มาใส (กดปม)

ยงยาก ใชล าบาก เสยเวลามากในการท างาน 1 Job/Program

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 29

Page 30: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

Batch Operating System โปรแกรมจ านวนมาก ถก Loaded ลงหนวยความจ า

เปนระบบ Multiprogramming (มหลายโปรแกรมบรรจภายในหนวยความจ า CPU สามารถสวทชไปท าโปรแกรมอนได ถาโปรแกรมทก าลงท างานอย รอการใชอปกรณ I/O)

Multiprogramming with Fixed Tasks (MFT)

(หนวยความจ าแตละโปรแกรมคงท)

Multiprogramming with Variable Tasks (MFT)

(หนวยความจ าแตละโปรแกรม แปรไปตามขนาดของโปรแกรม)

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 30

Page 31: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

Multiprogramming

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 31

Page 32: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

FragmentationFortran

Assembler

Loader

Users

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 32

Holes

Page 33: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

การแกปญหา Fragmentation Relocatable Partition

Paging

Segment

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 33

Page 34: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

Paging

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 34

ตวอยาง : สมมต Process A มพนทในหนวยความจ า 4 Page OS กจะท าการหา Frame ทวางมา 4 Frame โดยทไมจ าเปนจะตองอยตดกนจาก Free Frame List จะม Page Table ส าหรบเกบไววา Page ไหนถกเกบไว Frame ไหนของหนวยความจ า

Page 35: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

Time Sharing

แบงเวลาของ CPU ออกเปนสวน ใหกบ User แตละคน จนดเหมอนวา User แตละคนเปนเจาของ CPU

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 35

Page 36: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

หนาทหลกของ 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

Page 37: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

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

Page 38: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

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

Page 39: ความรู้เบื้องต้นเกี่ยวกับโปรแกรมระบบrmuti.ac.th/user/kedkarn/system_program/lesson1_kedkarn.pdf · Compilers

Summary Operating system ท าการจดการเกยวกบการจดการทรพยากร และ

บรการตาง ๆ ของคอมพวเตอร เชน memory, processors, devices และ information OS เปน system program มหนาทจดการทรพยากรตาง ๆ เชน

Traffic controller

Scheduler

Memory management module

I/O programs

File system

บทท 1 ความรพนฐาน (การเขยนโปรแกรมระบบ) 39