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

Post on 25-Mar-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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