Transcript Slide 1

Evolusi
System Software
Languange Translators
Batch Monitor
Multiprogramming OS
Time Sharing OS
LANGUAGE TRANSLATOR
Translator : Program Komputer yang ditulis dalam programming
language untuk mengubah satu program ke program lain
yang secara fungsional adalah sama.
TIPE TRANSLATOR
• If the translator translates a high level
language into another high level language, it's
called a translator.
– Examples include Haxe, FORTRAN-toAda translators, CHILL-to-C++ translators, PASCAL-toC translators, COBOL(DialectA)-to-COBOL(DialectB)
translators.
• If the translator translates a high level language
into a lower level language it is called a compiler.
– setiap bahasa dapat diterjemahkan ke high level
language atau bahasa assembly.
• If the translator translates a high level
language into an intermediate code which will
be immediately executed it is called
an interpreter.
• If the translator translates target/machine
code to source language it is called
a decompiler.
– Example: DCC, Boomerang
Decompilers and Reverse Engineering
Compiler(REC).
• If the translator translates assembly language
to machine code it is called an assembler.
Examples
include MASM, TASM, NASM and FASM.
• If the translator translates machine code into
assembly language it is called a disassembler.
Examples include gdb, IDA Pro and OllyDbg.
Types of program
translator
Compiler, Interpreter,
Assembler dan Linker
• Pengertian Compiler
• Compiler adalah suatu program yang
menerjemahkan bahasa program ( source code)
kedalam bahasa objek (obyek code). Compiler
menggabungkan keseluruhan bahasa program,
mengumpulkannya dan kemudian menyusunnya
kembali.
• Komplier memerlukan waktu untuk membuat
suatu program dapat di eksekusi oleh computer,
program yang dieksekusi oleh compiler adalah
dapat berjalan lebih cepat dibanding program
yang diproduksi oleh interpreter, disamping itu
juga bersifat independen.
• Contoh program yang menggunakan compiler
adalah Visual Basic, Visual Delphi, dan Pascal.
• Tahap Kompilasi:
• Pertama source code (program yang ditulis)
dibaca ke memori computer.
• Source code tersebut diubah menjadi objek
code (bahasa Assembly).
• Objek code di hubungkan dengan library yang
dibutuhkan untuk membentuk file yang bisa
dieksekusi.
• Pengertian Interpreter
• Interpreter adalah Perangkat lunak yang mampu
mengeksekusi code program (yang ditulis oleh
programmer) lalu menterjemahkannya ke dalam
bahasa mesin, sehingga mesin melakukan instruksi
yang diminta oleh programmer tersebut. Perintahperintah yang dibuat oleh programmer tersebut
dieksekusi baris demi baris, sambil mengikuti logika
yang terdapat di dalam kode tersebut.
• Proses ini sangat berbeda dengan compiler, dimana
pada compiler, hasilnya sudah langsung berupa satu
kesatuan perintah dalam bentuk bahasa mesin, dimana
proses Interpreter (penterjemahan) dilaksanakan
sebelum program tersebut dieksekusi.
• Interpreter atau dalam bahasa Indonesia dikenal
sebagai Juru Bahasa berbeda dengan Translator atau
penterjemah dalam segi media yang dipakai untuk
menerjemahkan.
• Interpreter akan menterjemahkan bahasa sumber ke
dalam bahasa sasaran secara langsung atau orally
sementara translator akan menerjemahkan bahasa
sumber ke bahasa sasaran secara tertulis.
• Java dijalankan menggunakan interpreter yaitu Java
Virtual Machine (JVM). Hal ini menyebabkan source
code Java yang telah dikompilasi menjadi Java
bytecodes dapat dijalankan pada platform yang
berbeda-beda.
Pengertian Assembler
• Bahasa rakitan (bahasa Inggris: assembly language)
adalah bahasa pemrograman komputer tingkat
rendah.
• Bahasa assembly merupakan notasi untuk bahasa
mesin yang dapat dibaca oleh manusia dan
mempunyai instruksi berbeda-beda tergantung dari
arsitektur komputer yang digunakan. (Setiap
arsitektur komputer memiliki bahasa mesin yang
berbeda-beda sehingga bahasa rakitannya pun
berbeda-beda).
• Berbeda dengan bahasa pemrograman tingkat
tinggi, bahasa assembly atau rakitan biasanya
memiliki hubungan 1-1 dengan instruksi bahasa
mesin, artinya Mnemonicyang ditulis di program
dengan bahasa rakitan akan diterjemahkan
menjadi tepat satu kode operasi yang dapat
dimengerti langsung oleh komputer.
• Pada bahasa tingkat tinggi, satu perintah dapat
diterjemahkan menjadi beberapa kode operasi
dalam bahasa mesin.
• Bahasa assembly adalah sebuah program yang
terdiri dari instruksi-instruksi yang menggantikan
kode-kode biner dari bahasa mesin dengan
“mnemonik” yang mudah diingat.
• Misalnya sebuah instruksi penambahan dalam
bahasa mesin dengan kode “10110011” yang
dalam bahasa assembly dapat dibuat dalam
instruksi mnemonik ADD, sehingga mudah diingat
dibandingkan dengan angka 0 dan 1, dalam setiap
instruksi membutuhkan suatu operand baik
berupa data langsung maupun suatu lokasi
memori yang menyimpan data yang
bersangkutan.
• Bahasa assembly sering juga disebut kode
sumber atau kode simbolik yang tidak dapat
dijalankan oleh prosesor, sedangkan
assembler adalah suatu program yang dapat
menerjemahkan program bahasa assembly ke
program bahasa mesin. bahasa mesin adalah
kumpulan kode biner yang merupakan
instruksi yang bisa dijalankan oleh komputer.
Program bahasa mesin sering disebut sebagai
kode objek.
Kelebihan Bahasa Assembly:
1. Ketika di-compile lebih kecil ukuran
2. Lebih efisien/hemat memori
3. Lebih cepat dieksekusi
Kesulitan Bahasa Assembly:
1. Dalam melakukan suatu pekerjaan, baris
program relatif lebih panjang dibanding bahasa
tingkat tinggi
2. Relatif lebih sulit untuk dipahami terutama jika
jumlah baris sudah terlalu banyak
3. Lebih sulit dalam melakukan pekerjaan rumit,
misalnya operasi matematis.
• Pengertian Linker
• Linker adalah suatu program yang
menterjemahkan program objek
(bereksention OBJ) ke bentuk program
eksekusi (berekstension EXE atau COM).
• Sedangkan untuk membuat file object ke
bentuk file yang dapat dieksekusi
(berekstension.COM atau.EXE) bisa anda
gunakan file TLINK.EXE.
Perbedaan antara Compiler dengan
Interpreter :
a. Jika hendak menjalankan program hasil kompilasi dapat
dilakukan tanpa butuh source code. Kalau interpreter
butuh source code.
b. Jika dengan kompiler, maka pembuatan kode yang bisa
dijalankan mesin dilakukan dalam 2 tahap terpisah,
yaitu parsing ( pembuatan kode objek ) dan linking (
penggabungan kode objek dengan library ) . Kalau
interpreter tidak ada proses terpisah.
c. JIka compiler membutuhkan linker untuk
menggabungkan kode objek dengan berbagai macam
library demi menghasilkan suatu kode yang bisa
dijalankan oleh mesin. Kalau interpreter tidak butuh
linker untuk menggabungkan kode objek dengan
berbagai macam library.
d. Interpreter cocok untuk membuat / menguji coba
modul (sub-routine / program-program kecil ).
Maka compiler agak repot karena untuk
mengubah suatu modul / kode objek kecil, maka
harus dilakukan proses linking / penggabungan
kembali semua objek dengan library yang
diperlukan.
e. Pada kompiler bisa dilakukan optimisasi /
peningkatan kualitas kode yang bisa dijalankan.
Ada yang dioptimasi supaya lebih cepat, ada yang
supaya lebih kecil, ada yang dioptimasi untuk
sistem dengan banyak processor. Kalau
interpreter susah atau bahkan tidak bisa
dioptimasikan.
Perbedaan antara
Assembler,Interpreter dan Kompiler :
a. Assembler mengubah kode assembly menjadi kode
mesin. Interpreter mengubah kode tingkat tinggi
menjadi real-time kode mesin dan menyimpannya di
memori untuk pengeksekusian secara
langsung.Kompiler mengubah kode tingkat tinggi
menjadi real-time kode mesin atau beberapa kode
tingkat menengah dan menyimpan ke dalam sebuah
file untuk bisa dieksekusi kemudian.
b. Interpreter merupakan translator yang
menerjemahkan bahasa paling lambat dibandingkan
assembler dan kompiler.
c. Kompiler merupakan translator yang paling mudah
untuk digunakan dalam menerjemahkan bahasa
dibandingkan interpreter dan assembler.
Batch Monitor
• Awalnya sistem komputer menjalankan
program pada satu waktu mode operasi (one
program at a time operating mode).
Permulaan proses masih disetup oleh
operator (user).
• Batch monitor, merealisasikan proses dari
sekumpulan pekerjaan
• Kelemahan batch monitor : turn along time
(waktu giliran) proses cukup lama.
Batch Monitor
• Batch Monitor is a software
program created by Apple
Computer for viewing and
monitoring encoding tasks on
a single or multiple
computers.
• It comes with Compressor.
(sumber ;
http://en.wikipedia.org/wiki/
Batch_Monitor)
• Batch Monitor digunakan untuk memonitor perkembangan
semua aktivitas transcoding batch, termasuk perkiraan sisa
waktu transcoding untuk semua job.
• Sebagai seorang administrator, Anda dapat menggunakan
Batch Monitor untuk memonitor kemajuan semua aktivitas
untuk semua cluster pada jaringan. Anda dapat melihat
penyelesaian proses setiap job dan informasi proses jobnya.
• Setiap job proses juga dapat di stop, resume, or delete.
• Jika Anda adalah pengguna client, Anda dapat menggunakan
Batch Monitor untuk melihat dan mengatur batch Anda
sendiri.
The following batch-related information is
displayed:
– Name of the batch
– Name of the parameter file used to run the batch
– Status of the batch ("Ended", etc.)
– Start and end time, respectively in the "Beginning
at" and "Ending at" columns
– Return code: "0" means that the batch executed
correctly ; a code other than zero means that the
batch has failed
– Result of the batch execution (either "Succeeded"
or "Failed“)
Generic Batch Monitor Error Codes
1: Command line syntax error.
2: Error in XML parameter file.
3: Communication layer error.
5: License acquisition error.
6: Invalid library error.
7: Error attempting to launch a batch requiring a graphic
adapter on a machine without an adapter.
9: Miscellaneous.
Generic Batch Error Codes
0: Batch completely successful.
4: Batch partially successful.
8: Batch failed.
20: Error checking licenses.
21: Error accessing INPUT/OUTPUT.
THE multiprogramming system
• THE sistem multiprogramming adalah sistem operasi
komputer yang dirancang oleh tim yang dipimpin oleh
Edsger W. Dijkstra, dijelaskan dalam monograf di 1965-66
dan diterbitkan pada tahun 1968.
• Dijkstra pernah bernama sistem; "THE“ singkatan dari
"Technische Hogeschool Eindhoven", (dalam bahasa Belanda)
dari Eindhoven University of Technology Belanda.
• Sistem THE terutama sistem batch mendukung multitasking,
Sistem ini tidak dirancang sebagai sistem operasi multi-user.
Desain dari sistem multiprogramming THE signifikan bagi
penggunaan sebuah struktur berlapis (Layer), di mana Layer
"lebih tinggi“ bergantung pada Layer "rendah “ .
Layer 0, bertanggung jawab untuk aspek multiprogramming dari
sistem operasi.
-Mengatur proses yang dialokasikan ke CPU, dan Memblokir
proses yang diblokir pada Flag Register. Hal ini ditangani
dengan interupsi. Ini adalah level terendah.
Dalam istilah modern, ini adalah scheduler.
Layer 1 , fokus dengan mengalokasikan memori untuk proses.
Dalam istilah modern, ini adalah pager.
• Layer 2, berurusan dengan komunikasi antara sistem
operasi dan perangkat I/O.
• Layer 3, Mengatur semua perangkat I ​/ O yang
terhubung ke komputer. Ini termasuk informasi
BUFFERING dari berbagai perangkat.
• Layer 4, mengatur program-program user, yang
meliputi menangani kompilasi, eksekusi, dan
pencetakan program user.
Multiprogramming Operating System
• Pada arsitektur komputer klasik, instruksi IO
dieksekusi oleh CPU, bersamaan dengan
instruksi lain (aritmetika, logical, dll)
• Penggunaan CPU dan IO channel secara
bersamaan membutuhkan data independence
yang akan dipanggil dari memori.
• Ketika IO menjalankan sebuah program, CPU
menjalankan komputasi untuk program yang
lain : Multiprogramming
• Job 'A' tidak memanfaatkan waktu CPU karena melakukan
operasi I/O . Sedangkan CPU sibuk menjalankan Job 'B'.
• Job “C” menunggu untuk mendapatkan waktu proses CPU.
• Jadi dalam keadaan ini CPU tidak akan pernah menganggur
dan memanfaatkan maksimal waktu.
Time Sharing Operating System
• Dalam komputasi, time-sharing adalah proses berbagi sumber
daya komputasi antara banyak user melalui
multiprogramming and multitasking.
• Diperkenalkan pada tahun 1960, dan muncul sebagai TOP
model dari komputasi pada 1970-an, mewakili pergeseran
teknologi besar dalam sejarah komputasi.
• Konsep dibuat secara interactive computing, sehingga
diperlukan program-program dengan waktu proses yang
singkat.
• Dengan interactive computing, komputer merespon input
dari user dengan respon time yang singkat, karena setiap
program memiliki waktu proses (waktu kuantum) yang tetap.
Contoh : penjadwalan Round Robin
Kegunaan Time Sharing OS
• Memungkinkan banyak user untuk berinteraksi
bersamaan dengan satu komputer(multi-user),
• Menurunkan biaya penyediaan kemampuan
komputasi,
• memungkinkan bagi user dan organisasi untuk
menggunakan komputer tanpa perlu kepemilikan.
NEXT
STRUKTUR REGISTER
MIKROPROSESOR
SET
SELESAI
• As an administrator, you can use Batch Monitor to track the
progress of all the batch activity for all the clusters on your
network. You can see how close to completion each job is,
along with other details, and you can stop, resume, or delete
batches as well. If you are a client user, you can use
Batch Monitor to view and manage your own batches.
The following batch-related information is
displayed:
– Name of the batch
– Name of the parameter file used to run the batch
– Status of the batch ("Ended", etc.)
– Start and end time, respectively in the "Beginning
at" and "Ending at" columns
– Return code: "0" means that the batch executed
correctly ; a code other than zero means that the
batch has failed
– Result of the batch execution (either "Succeeded"
or "Failed“)
Generic Batch Monitor Error Codes
1: Command line syntax error.
2: Error in XML parameter file.
3: Communication layer error.
5: License acquisition error.
6: Invalid library error.
7: Error attempting to launch a batch requiring a graphic
adapter on a machine without an adapter.
9: Miscellaneous.
Generic Batch Error Codes
0: Batch completely successful.
4: Batch partially successful.
8: Batch failed.
20: Error checking licenses.
21: Error accessing INPUT/OUTPUT.
THE multiprogramming system
• The THE multiprogramming system was a omputer operating
system designed by a team led by Edsger W. Dijkstra,
described in monographs in 1965-66[1] and published in
1968.[2]
• Dijkstra never named the system; "THE" is simply the
abbreviation of "Technische Hogeschool Eindhoven", then the
name (in Dutch) of the Eindhoven University of Technology of
theNetherlands.
• The THE system was primarily a batch system[3] that
supported multitasking; it was not designed as a multiuseroperating system. It was much like the SDS 940, but "the
set of processes in the THE system was static".[3]
References
1. Jump up^ Dijkstra, Edsger W. The structure of the 'THE'multiprogramming system (EWD-196). E.W. Dijkstra
Archive. Center for American History, University of Texas
at Austin.(original; transcription) (Jun 14, 1965)
2. Jump up^ Dijkstra, E.W. (1968), "The structure of the
'THE'-multiprogramming system", Communications of the
ACM 11 (5): 341–346, doi:10.1145/363095.363143
3. ^ Jump up to:a b c d e Silberschatz, Abraham; Peterson,
James L. (May 1988), "13: Historical
Perspective", Operating System Concepts, p. 512
4. http://en.wikipedia.org/wiki/THE_multiprogramming_sys
tem
The design of the THE multiprogramming system is significant for
its use of a layered structure, in which "higher" layers only
depend on "lower'" layers:
• Layer 0 was responsible for the multiprogramming aspects of
the operating system.
– It decided which process was allocated to the CPU, and
accounted for processes that were blocked
on semaphores. It dealt with interrupts and performed the
context switches when a process change was required.
This is the lowest level.
– In modern terms, this was the scheduler.
• Layer 1 was concerned with allocating memory to processes.
In modern terms, this was the pager.
• Layer 2 dealt with communication between the operating
system and the console.
• Layer 3 managed all I/O between the devices attached to the
computer. This included buffering information from the
various devices.
• Layer 4 consisted of user programs. There were 5 processes:
in total, they handled the compilation, execution,
and printing of users' programs. When finished, they passed
control back to the schedule queue, which was priority-based,
favoring recently started processes and ones that blocked
because of I/O.
• Layer 5 was the user (as Dijkstra notes, "not implemented by
us").
• The code of the system was written
in assembly language for the
Dutch Electrologica X8 computer. This
computer had 32kiloword core memory of 27bit words,[3] a 512kword drum
providing backing store for the LRU algorithm,
paper tape readers, paper tape punches, and
printers.
Definition of Multiprogramming Operating System
WRITTEN BY DINESH THAKUR
http://ecomputernotes.com/fundamental/disk-operating-system/multiprogramming-operating-system
• To overcome the problem of underutilization of CPU and main memory,
the multiprogramming was introduced.
• The multiprogramming is interleaved execution of multiple jobs by the
same computer.
• In multiprogramming system, when one program is waiting for I/O
transfer; there is another program ready to utilize the CPU.
• So it is possible for several jobs to share the time of the CPU. But it is
important to note that multiprogramming is not defined to be the
execution of jobs at the same instance of time.
• Rather it does mean that there are a number of jobs available to the CPU
(placed in main memory) and a portion of one is executed then a segment
of another and so on.
A simple process of multiprogramming is shown in figure
• Multiprogramming is a common approach to
resource management.
• The essential components of a singleuser operating system include a command
processor, an input/ output control system, a
file system, and a transient area.
• A multiprogramming operating system builds
on this base, subdividing the transient area to
hold several independent programs and
adding resource management routines to the
operating system's basic functions.
Time Sharing OS
• In computing, time-sharing is the sharing of a
computing resource among many users by
means of multiprogramming andmulti-tasking.
• Its introduction in the 1960s, and emergence
as the prominent model of computing in the
1970s, represented a major technological shift
in the history of computing.
Objective of Time Sharing OS
• Memungkinkan banyak unser untuk
berinteraksi bersamaan dengan satu
komputer,
• By allowing a large number of users to
interact concurrently with a single computer
• time-sharing dramatically lowered the cost of
providing computing capability,
• made it possible for individuals and
organizations to use a computer without
owning one, and