P E N D A H U L U A N

87 

Loading.... (view fulltext now)

Loading....

Loading....

Loading....

Loading....

Teks penuh

(1)

P E N D A H U L U A N

Tanpa perangkat lunak (software) sebuah komputer sebenarnya sekumpulan besi yang tidak berguna. Dengan software sebuah komputer dapat digunakan untuk menyimpan, mengolah data (memproses) dan mendapatkan kembali informasi yang telah disimpan, menemukan kesalahan dalam program, memainkan games dan menggunakan banyak aktivitas lainnya yang bernilai. Pada umumnya program komputer dapat dibagi menjadi dua kategori, yaitu :

a. Program sistem (system program). Yang berfungsi untuk mengatur operasi dari komputer itu sendiri. b. Program aplikasi (application program). Yang berfungsi untuk membantu menyelesaikan masalah

untuk pemakainya.

1. Blok Diagram Komputer

Gambar 1. Diagram Blok Komputer

Dasar yang sangat penting dari semua program sistem adalah operating system yang mengontrol semua sumber daya komputer dan menyediakan landasan sehingga sebuah program aplikasi dapat ditulis atau dijalankan.

Banyak cara / metode yang menyediakan pelindung (sheild) atau sesuatu yang dapat menyembunyikan programmer dari kekomplekan perangkat keras. Salah satunya dengan menentukan / membuat sebuah lapis (layer) perangkat lunak yang mengendalikan komponen pokok perangkat keras, mengatur semua bagian sistem dan menyediakan pemakai dengan antarmuak (interface) / virtual machine yang memudahkan memahami dan memprogram. Lapisan dari perangkat lunak tersebut adalah operating system.

User Banking Word

Game Program

System Processing Aplikasi

Compiler Utility Command Program Interpreter

Sistem Operasi (Operating System) Sistem Bahasa Mesin (Machine Language)

Hardware Pemrograman Mikro (Microprogramming)

Perangkat Fisik (Physical Devices)

Gambar 2. Komponen Sistem Komputer Masukan Keluaran Memori Dukung Saluran Penghubung Control Unit Processor Memory Clock

(2)

Keterangan :

- Perangkat keras / hardware membentuk dua atau lebih lapis. Lapis yang paling bawah (physical devices) berisi perangkat fisik, yang terdiri dari integrasi circuit chips, kabel (wires), power supplies, cathode ray tubes (CRT) dan perangkat lainnya yang dibuat dan sistem kerjanya merupakan bagian insinyur elektronik.

- Lapis berikutnya, software primitive langsung mengontrol peralatan tersebut (physical devices) dan menyediakan interface (a cleaner interface) untuk layer diatasnya dikenal dengan microprogram yang ditempatkan dalam read-only memory (ROM). Sebenarnya microprogram berfungsi sebagai penerjemah, mengambil (fetching) intruksi bahasa mesin, seperti ADD, MOVE dan JUMP serta melaksanakan proses-proses kecil yang saling terkait. Contohnya apabila melaksanakan instruksi ADD, microprogram harus menentukan dimana angka-angka yang ditambahkan ditempatkan (disimpan sementara), mengambilnya, menambahkannya dan menyimpan hasilnya disuatu tempat tertentu.

- Sekumpulan instruksi yang diterjemahkan microprogram disebut machine language (bahasa mesin), yang memilikim 50 sampai 300 instruksi yang kenyataannya bukan bagian dari perangkat mesin semuanya, tetapi pembuat komputer selalu menjelaskannya dalam manualnya (sejenis buku panduan perangkat kerasnya), sehingga banyak orang mengira sebagai mesin sesungguhnya. Dalam lapis ini, perangkat masukan/keluaran mengontrol pemuatan nilai ke dalam register khusus.

- Fungsi utama dari Operating System adalah menyembunyikan semua kekomplekan / kerumitan dan memberikan programmer sebuah kenyamanan, kemudahan, kepraktisan dari instruksi yang digunakan untuk bekerja dengannya, contohnya, READ BLOCK FROM FILE adalah konsep / gagasan penyederhanaan daripada harus berpikir tentang bagaimana memindahkan head disk secara rinci, menunggu untuk menjadi tenang (posisi istirahat).

- Diatas lapis Operating System (OS) adalah untuk menempatkan software system. Dari sini ditemukan penerjemah perintah (command interpreter/shield), compiler, editor dan application program independent. Adalah penting untuk menyadari/merealisasikan bahwa program-program ini dengan pasti bukan bagian dari SO, walaupun secara khas disediakan oleh pembuat komputer. OS adalah bagian dari software yang dijalankan dalam kernel mode atau supervisor mode. SO memproteksi dari pemakai yang menganggu pemakain hardware

- Compiler dan editors dijalankan dalam user mode. Jika seorang tidak suka sebuah compiler khusus, pemakai bebas menulis miliknya jika dapat memilih dan tentunya tidak bebas untuk menangani interrupt disk yang merupakan bagian dari OS dan normalnya akan memproteksi hardware terhadap usaha pemakai untuk memodifikasinya.

- Diatas layer system program adalah application program. Program ini ditulis oleh user untuk memecahkan masalah khusus, seperti proses pengolahan data, perhitungan rekayasa atau memainkan sebuah permainan.

2. Sistem Operasi Komputer

 Pengertian Sistem Operasi

 Seperangkat program yang memantau dan mengatur pemakaian sumber daya komputer (processor, main memory, file, I/O device, dll).

 Menjembatani / penghubung antara user (program user) dengan perangkat keras komputer.

 Fungsi Sistem Operasi

 Sebagai Resource Manager /pengelola seluruh sumber daya system komputer

 Mengatur dan mengefisienkan penggunaan selluruh sumber daya komputer (computer resources)

 Tugas utamanya : memantau penggunaan semua resources; menerapkan aturan (policy); mengalokasikan resources yang diminta; mengambil kembali (dealokasi) resource

 Sumber daya pada komputer terdiri dari :

- Sumber daya fisik, misalnya : Keyboard, bar-code reader, mouse, joystick, light-pen, touch-screen, pointing devices, floppy disk drive, harddisk, tape drive, optical disk, CD ROM drive, CRT, LCD, printer, modem, ethernet card, PCMCIA, RAM, cache memory, register, kamera, sound card, radio, digitizer, scanner, plotter, dan sebagainya.

(3)

 Sebagai Extended Machine (Virtual Machine), penyedia layanan

 Menyembunyikan kompleksitas / kerumitan pemrograman hardware dari programmer atau user.

 Menyajikan fasilitas yang lebih mudah dan sederhana untuk menggunakan hardware.

 Konsep Sistem Operasi  Proses

 Proses adalah program yang sedang di-eksekusi.

 Proses terdiri dari : Executable program; program data dan stack; program counter; dll

 Pada sistem timesharing secara periodik sistem operasi menggilir eksekusi proses-proses yang ada, biasanya berdasarkan porsi waktu CPU.

 Ketika suatu proses dihentikan untuk sementara, maka proses tersebut harus dimulai kembali pada state yang sama dengan state ketika ia dihentikan.

• Semua informasi yang berkaitan dengan proses tersebut harus disimpan. Umumnya informasi tersebut disimpan pada tabel proses (array atau linked list), satu tabel untuk setiap proses.

• Tabel proses (process table) adalah tabel yang berisi informasi tentang semua proses yang dijalankan.

• Suatu proses terdiri dari : address space (core image) dan atribut / informasi pada tabel proses

 System call utama dalam pengaturan proses adalah yang berkaitan dengan pembuatan dan pemberhentian suatu proses.

Contoh :

• Command interpreter atau shell akan membaca command yang diketikkan user pada terminal, dan membuat proses yang menjalankan command tersebut.

• Bila telah selesai, maka proses akan menjalankan system call untuk menghentikan dirinya.

 Suatu proses dapat men-create proses lainnya yang disebut sebagai child process.  Sistem operasi dapat berkomunikasi dengan suatu proses dengan menggunakan signal.  Signal juga dapat digunakan untuk komunikasi antar proses.

 Pada sistem multiprogramming, setiap proses memiliki user identification (uid) yang berasal dari uid pemilik proses.

 Files

Terdiri dari : Pathname; Working directory; rwx (read, write, execute) bits protection code; File descriptor / handle; Special file (block & character); Standard input; Standard output; Standard error; Pipe. SO mendukung konsep direktori.

Root Directory

Directory File

Gambar 3. Model Struktur File  System Calls / API (Aplication Programming Interface)

 Suatu set tata cara pemanggilan di program aplikasi untuk memperoleh layanan system operasi. Berupa extended instructions / perluasan instruksi yang merupakan interface / layanan langsung antara program-program dengan sistem operasi.

 System calls meng-create, men-delete dan menggunakan objek-objek yang diatur oleh system operasi, antara lain : proses-proses dan file-file.

 Library procedure meletakkan parameter-parameter system call pada tempat tertentu dan memberikan instruksi trap untuk memulai sistem operasi

(4)

 Trap instruction : ketika diterima oleh sistem operasi, sistem memeriksa apakah parameter tersebut valid atau tidak

 Return form trap : sistem operasi mengembalikan kontrol ke library procedure  Contoh mekanisme system calls untuk READ pada program C.

count = read (file, buffer, nbytes)  Shell

 Shell pada Unix merupakan command interpreter yang walaupun bukan merupakan bagian dari sistem operasi, menggunakan banyak feature sistem operasi

 Prompt : standar input, menandakan bahwa shell siap menerima command  Contoh :

date date > file sort < file1 > file2

cat file1 file2 file3 | sort > /dev/lp

 Background job : proses yang berjalan sementara user tetap bisa terus bekerja

 Struktur Sistem Operasi  Sistem Monolitik

 Konsep : “Sistem operasi sebagai kumpulan prosedur dimana prosedur dapat saling dipanggil oleh prosedur lain di sistem bila diperlukan”.

 Kernel berisi semua layanan yang disediakan sistem operasi untuk pemakai.

 Contoh : Sistem Operasi Unix menggunakan konsep kernel loadable modules, yaitu : • Bagian-bagian kernel terpenting berada dimemori utama secara tetap.

• Bagian-bagian esensi lain berupa modul yang dapat ditambahkan ke kernel saat diperlukan dan dicabut begitu tidak digunakan lagi diwaktu jalan (run-time).

 The ‘big mess’  Tidak berstruktur

 Kernel call / supervisor call  User mode

 Kernel mode / supervisor mode

User Program Runs in User Mode Operating System runs in Kernel Mode Gambar 4. Struktur Sistem Monolithic

 Sistem Berlapis (Layered System)

 Konsep : “Sistem operasi dibentuk secara hirarki berdasarkan lapisan-lapisan, dimana lapisan-lapisan memberi layanan lapisan lebih atas”.

 Dimaksudkan untuk mengurangi kompleksitas rancangan dan implementasi system operasi. Tiap lapisan mempunyai fungsional dan antarmuka I/O antara dua lapisan bersebelahan.  Contoh :

• Sistem Operasi THE (Technique Hogesschool Endiche), Djikstra, 1968. • Sistem Operasi MULTICS (menggunakan concentric rings).

User Program 2 User Program 1 Kernell Call 4 1 3 s service 2 procedure Dispatch Table servis

(5)

Tabel 1. Lapisan-lapisan pada Sistem Operasi THE

Layer Function Fungsi

5 The Operator Untuk operator

4 User Programs Untuk aplikasi program pemakai

3 I/O Management Untuk menyederhanakan akses I/O pada level atas

2 Operator-Process Communication Untuk mengatur komunikasi antar proses 1 Memory & Drum Management Untuk mengatur alokasi ruang memori /

drum magnetic 0 Processor Allocation &

Multiprogramming

Untuk mengatur aloksi pemroses dan switching multiprogramming dan pengaturan prosesor

Keterangan :

- Lapisan n memberi layanan untuk lapisan n+1. Proses-proses di lapisan n dapat meminta layanan lapisan n-1 untuk memberikan layanan bagi lapisan n+1. Tetapi lapisan n tidak dapat meminta layanan n+1. Kelanjutan sistem berlapis adalah sistem berstruktur cincin seperti sistem MULTICS yang terdiri 64 lapisan cincin dimana satu lapisan mempunyai fungsi berbeda. Lapisan n-1 mempunyai kewenangan lebih dibanding lapisan n. Untuk meminta layanan lapisan n-1, lapisan n melakukan trap. Kemudian, lapisan n-1 mengambil kendali sepenuhnya untuk melayani lapisan n.

 Sistem dengan Mesin Maya (Virtual Machines)

 Konsep : “Awalnya struktur ini membuat seolah-olah user mempunyai seluruh komputer dengan simulasi atas pemroses yang digunakan. Sistem operasi melakukan simulasi mesin nyata. Mesin hasil simulasi digunakan user, mesin maya merupakan tiruan 100% atas mesin nyata. Semua user diberi ilusi mempunyai satu mesin yang sama-sama canggih”.

 Contoh :

• Sistem operasi MS-Windows NT dapat menjalankan aplikasi MS-Dos, OS/2 mode teks, dan Win 16.

• Pengembang Linux membuat DOSEMU agar aplikasi MS-Dos dapat dijalankan di Linux, WINE agar aplikasi MS-Windows dapat dijalankan di Linux, iBCS agar aplikasi SCO-Unix dapat dijalankan di Linux.

 CP/CMS  VM/370

 Virtual Machine Monitor

 CMS (Conversational Monitor System) Virtual 370s

System Call

I/O Intruction CMS CMS CMS Trap

Trap VM 370

370 Bare Hardware Gambar 5. Sistem Virtual Mesin  Sistem dengan Client-Server

 Konsep : “Server adalah proses yang menyediakan layanan, dan Client adalah proses yang memerlukan / meminta layanan. Proses client yang memerlukan layanan mengirim pesan ke

server dan menanti pesan jawaban. Proses server setelah melakukan tugas yang diminta,

mengirim hasil dalam bentuk pesan jawaban ke proses client. Server hanya menanggapi permintaan client dan tidak memulai percakapan dengan client”.

(6)

Client Client Process Term. File Mem User Process Process Server Server … Server Server Mode

Kernel

Mode

Kernel

Client obtains service by sending messages to server processes

Gambar 6. Model Client Server  Model Client Server pada distributed system

Client Client Client Client Kernel

Kernel Kernel Kernel

Message from client to server NETWORK

Gambar 7. Model Client Server pada Distributed System  Sistem berorientasi objek

 Konsep : “Layanan diimplementasikan sebagai objek”.

 Model ini terstruktur dan memisahkan antara layanan yang disediakan dan implementasinya.  Contoh :

• Sistem operasi X-kernel

• Sistem operasi MS-Windows NT telah mengadopsi beberapa teknologi berorientasi objek, tapi belum secara keseluruhan.

 Layanan Sistem Operasi Komputer

 Layanan Otomatis : Alokasi sumberdaya; Catatan pemakaian; Proteksi; Penanganan kekeliruan; Pindah baris; Gulung jendela pada monitor

 Layanan permintaan pemakaian : Loading; Mengolah/run; Menyimpan/save; Menghapus/delete

 Jenis Sistem Operasi  Aspek kegiatan

 Pemakai tunggal (single user)  Pemakai jamak (multiuser)  Berdasarkan jenis-jenisnya  Linux  MS-Dos  MS Windows-NT  MS Windows  Dll

3. Sejarah Perkembangan Sistem Operasi

 Generasi Sistem Operasi

 Generasi ke-1 (1945-1955) : Vacuum Tubes dan Plugboards  Analytical Engine (Charles Babbage)

 Calculating Engine menggunakan vacuum tubes (Howard Aitken, John von Neumann, J.P Eckert, Konrad Zuse)

 Beluam ada bahasa pemrograman

 Belum ada sistem operasi, system komputer diberi instruksi yang harus dikerjakan langsung.  Operasi menggunakan plugboard

(7)

 Generasi Ke-2 (1955-1965) : Transistors dan Batch System

 Tetap belum dilengkapi system operasi. Tetapi beberapa fungsi dasar SO sudah ada.  Pengenalan transistor untuk komputer

 Pemisahan fungsi personil :Designer , Operator, Programmer dan Maintenance personel  Pengenalan job (program atau seperangkat program)

 Penggunaan bahasa FORTRAN, Assembeler  Penerapan Batch System

 Pengoperasian Off-Line

 Penggunaan mesin-mesin besar untuk kalkulasi sains dan engineering

 Typical operating system : FMS (Fortran Monitor System) dan IBSYS (sistem operasi untuk IBM 7094)

 Generasi Ke-3 (1965-1980) : IC dan Multiprogramming

 IBM mengenalkan IBM 360 dengan sistem operasi OS/360  Menggunakan Integrated Circuit (IC)

 Dapat menangani komputasi sains dan komersial  Mengadopsi konsep ‘one family’

 Sistem operasi berukuran besar dan kompleks

 Mengenalkan multiuser, komputer memiliki resource yang dapat digunakan oleh banyak orang sekaligus

 Mengenalkan multiprogramming, komputer melayani banyak proses sekaligus pada waktu yang bersamaan dengan menerapkan partisi memori menjadi beberapa bagian memori dengan satu bagian memori untuk satu job berbeda. Saat satu job menunggu operasi I/O selesai, job lain dapat menggunakan proses.

Partisi Memori Job 3 Job 2 Job 1 Sistem operasi

 Mengenalkan Time Sharing (berbagi waktu), tiap pemakai mempunyai satu terminal online dengan pemroses hanya memberi layana pada pemakai yang aktif secara bergantian secara cepat. Pemakai akan merasa dilayani terus menerus. Padahal sebenarnya secara bergantian.  Mengenalkan SPOOLING (Simultaneous Peripheral Operation On Line), membuat peripheral seolah-olah dapat digunakan bersamaan, dapat diaksis secara simultan yaitu dengan cara menyediakan beberapa partisi memori. Saat terdapat permintaan layanan peripheral, langsung diterima dan data disimpan lebih dulu di memori yang disediakan berupa antrian kemudian dijadwalkan agar secara nyata dilayani peripheral.

 Sistem time sharing pertama, CTSS, dikembangkan di MIT

 Usaha pengembangan ‘computer utility’ mesin yang dapat menunjang ratusan time sharing user

 Pengembangan komputer MINI (DEC-PDP-1 s/d PDP-11)

 Ken Thompson mengembangkan versi satu pemakai (single user) dari MULTICS (MULTIplex and Computing Services)

 UNIX (Uniplexed Information and Computing Services)

 Generasi Ke-4 (1980-1990) : LSI, VLSI, dan Personal Computer (PC)  Pengembangan LSI dan VLSI melahirkan PC dan Workstation  Perangkat lunaknya ‘user friendly’

 Dua sistem operasi yang dominan :

• MS-DOS (pada IBM-PC dengan CPU Intel 8088, 80286, 80386, 80486) • UNIX (pada Non-Intel computer dan workstation)

 RISC Chips

 Network Operating System  Distributed Operating System

(8)

 Generasi Ke-5 (1990-sekarang) : VLSI, ULSI an teknologi Nano Second, Internet, Multimedia  Pengembangan VLSI an ULSI melahirkan PC yang berbasis Pentium untuk server maupun

workstation

 Pengembangan sistem operasi windows  Pengembangan internet dan multimedia

 Pengembangan aplikasi yang berbasis Web atau WWW  dll.

The End

To be continue……

But

(9)

CONTOH KASUS :

 Linux

 MS Dos

Sistem operasi MS Dos berisi :

Ibmbio.com, yaitu disk dan character I/O System IO.sys, yaitu disk dan file manager

MSDOS.sys, yaitu command processor, shellprimitif

Sistem operasi kompatibel dengan CP/M, dengan peningkatan alokasi disk, lebih cepat dan mendukung shell script primitif disebut batch files.

 MS Windows

Microsoft Windows 95 merupakan sistem operasi Windows yang terintegrasi dan lengkap mulai dengan fungsi-fungsi dasar yang sekarang ada pada MS Windows, Windows dan Windows for Workgroup.

Agar PC lebih mudah dipakai, diberikan shell baru. Plug and Play (PnP) yang terintegrasi kedalam sistem operasi, termasuk wizard untuk memandu para pemakai melalui sistem operasi dan memberikan interface pemakai yang konsisten untuk seluruh komponen sistem operasi dan spasi nama. Kecepatan dan daya tambahan dari sistem operasi 32-bit modern dengan preemptive multitasking, thread dan plaltform untuk generasi baru aplikasi 32-bit.

Windows 95 adalah sistem operasi lengkap yang tidak dibatasi oleh MS Dos dan punya semua manfaat dari sistem operasi grafis yang lengkap yang ada pada dirinya. Dalam hal konektivitas baik dalam LAN, WAN maupun nobile dial-up dibuat konektivitas ke sumber daya yang bersifat remote semudah hubungan ke sumber daya lokal. Dan dimasukkan akses ke informasi elektronik untuk surat elektronik dan layanan on-line. Dan juga Windows 95 dibuat kompatibel dengan software dan hardware yang dimiliki pemakai pada saat ini.

Walaupun Microsoft mengeluarkan sistem operasi baru dengan format grafis dan ber-arsitektur 32 bit, bukan berarti sistem operasi ini mutlak dipakai. Ini hanya sebagai sistem operasi alternatif yang sudah ada, seperti UNIX, IBM OS2/Warp, Oracle, IBM AS/400, dan lain-lain.

(10)

PERTANYAAN :

1. Sebutkan dua fungsi utama sistem operasi ?

2. Apa yang dimaksud dengan multiprogramming ? Berikan dua alasan diadakannya multiprogramming !

3. Apa yang dimaksud dengan spooling ? Apakah anda menganggap personal komputer harus memiliki spooling sebagai standar dasar di masa yang akan datang?

4. Pada awal perkembangan komputer, setiap byte data yang dibaca atau yang ditulis ditangani oleh CPU (tidak ada DMA-Direct Memory Access). Apa implikasinya struktur seperti ini terhadap konsep multiprogramming.

5. Mengapa timesharing tidak tersebar luas pada generasi ke-2 komputer ? 6. Instruksi-instruksi manakah yang diperbolehkan dalam Mode Kernel :

a. Disable all interupts. b. Read the time-of-day clock. c. Set the time-of-day clock. d. Change the memory map.

7. Sebutkan beberapa perbedaan sistem operasi pada personal komputer dengan sistem operasi pada mainframe!

8. Bagaimana secara umum sistem operasi memberitahukan kepada direktori kerja apakah path name untuk sebuah file adalah absolute atau relative?

9. Mengapa shell bukan bagian dari sistem operasi ?

10. Berikan sebuah contoh bagaimana mekanisme dan kebijaksanaan bisa terpisah dengan baik dari pejadwalan. Buat sebuah mekanisme yang bisa mengijinkan sebuah parent process untuk mengontrol kebijaksanaan penjadwalan children.

11. Model Client-Server tekenal didalam distributed systems. Dapatkah juga digunakan dalam sistem komputer tunggal ?

12. Mengapa proses tabel membutuhkan sistem timesharing? Apakah hal ini juga dibutuhkan dalam system personal computer yang pada suatu saat hanya terdapat satu proses yang sedang bekerja dan mengambil alih mesin sampai proses tersebut selesai ?

(11)

MANAJEMEN PROSES

Proses :

Adalah program yang sedang di jalankan atau software yang sedang dilaksanakan termasuk sistem operasi yang disusun menjadi sejumlah proses sequential.

Konsep dasar : 1. Multiprogramming

Melakukan proses satu persatu secara bergantian dalam waktu yang sangat cepat / bersamaan (hardware level). Setiap proses mempunyai satu virtual CPU.

2. Pseudoparallelism

Melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan / pseudoparallelism (user level). Model Proses :

1. Sequential Process / bergantian 2. Multiprogramming

3. CPU Switching  peralihan prosedur dalam mengolah 1 proses ke proses lainnya.

Secara konsep setiap proses mempunyai 1 virtual CPU, tetapi pada kenyataannya adalah multiprogramming. Maka akan lebih mudah menganggap kumpulan proses yang berjalan secara parallel.

Satu Empat Model

program counter program counter Proses

(a) (b) (c)

Keterangan :

a. multiprogramming untuk 4 program di memori

b. model konseptual untuk 4 proses independent, sequential c. hanya 1 program yang aktif dalam 1 waktu = pseudoparalel Hirarki Proses

Pemanggilan proses oleh proses lain disebut parallel. Sistem operasi menyediakan apa yang dibutuhkan oleh proses. Umumnya proses diciptakan dan dihilangkan selama operasi berlangsung.

1. Create & Destroy Proses

Sistem operasi yang mendukung konsep proses, harus menyediakan suatu cara untuk membuat (create) proses dan menghilangkan (destroy) proses.

2. Fork System Call

Mekanisme untuk membuat (create) proses yang identik dengan proses yang memanggilnya. Contoh : Parent  children  children  children  children

A

B

D

C

A

B

C

D

Proses

A

D

C

B

Waktu

(12)

Pada UNIX, parent dan child process running secara parallel.

Pada DOS, parent dan child process running secara bergantian (sequential). Contohnya : MSDOS sebagai parent dan program aplikasi sebagai child.

Process scheduler : untuk pengaturan eksekusi proses 3 Status proses / bagian keadaan proses :

1. Running / kerja, benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).

2. Blocked / terhenti, tidak dapat berjalan sampai kegiatan eksternal terlaksana (proses menunggu kejadian untuk melengkapi tugasnya)

Bisa berupa proses menunggu : Selesainya operasi perangkat I/O; Tersedianya memori; Tibanya pesan jawaban

3. Ready / siap, proses siap dikerjakan tetapi menunggu giliran dengan proses lain yang sedang dikerjakan (bisa berjalan, sementara berhenti untuk memungkinkan proses lain dikerjakan)

Transisi Status

1. Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia / meminta layanan I/O sehingga menunggu kejadian muncul.

2. Penjadwalan mengambil proses lain. 3. Penjadwalan mengambil proses ini (baru). 4. Input telah tersedia.

Implementasi Proses :

 Untuk mengimplementasikan model proses, sistem operasi menggunakan suatu tabel / array yang disebut tabel proses dengan 1 entry per-proses.

 Setiap entry berisi tentang : status proses, program counter, stack pointer, alokasi memori, status file, informasi schedulling / penjadwalan informasi, dll dari status kerja ke status siap.

Contoh Tabel Proses :

Proses management Memory management File management

Register Pointer to text segment UMASK mask

Program counter Pointer to data segment Root directoy Program status word Pointer to bss segment Working directory

Stack pointer Exit status File descriptiors

Process state Signal status Effective uid

Time when process started Process id Effective gid

CPU time used Parent process System call parameters

Children’s CPU time Process group Various flag bits Time of next alarm Real uid

Message queue pointers Effective uid Pending signal bits Real gid

Process id Effective gid

Various flag bits Bit maps for signals Various flag bits

Running / kerja Blocked / terhenti Ready / siap

1

4

3

2

(13)

 Interupsi : Kerja prosesor pada suatu proses terhenti oleh pensaklaran konteks.

 Pensaklaran konteks : perubahan kegiatan prosesor dari proses ke proses yang terjadi diantara proses sistem / proses aplikasi

 Konteks : kegiatan prosesor terhadap sesuatu hal, berasal dari sistem operasi, sistem bahasa dan sistem utilitas.

 Blok kendali proses : suatu bagian memori untuk mencatat keadaan proses, yang terbagi atas wilayah dimana setiap wilayah untuk mencatat informasi yang berbeda.

2 cara interupsi pada processor :

1. Interupsi langsung

Berasal dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk meminta pelayanan)

2. Interupsi Tanya / Polling

Berasal dari prosesor (prosesor secara bergiliran mengecek apakah ada peripheral yang memerlukan pelayanan atau tidak)

 Interupsi dapat di-enable dan disable tergantung pada levelnya.  Pembangkit interupsi dapat berasal dari :

o Program, di dalam program telah dirancang pada bagian tertentu akan terjadi pensaklaran konteks, yang menimbulkan interupsi, contohnya pada saat penggunaan alat / prosesor secara bergantian.

o Prosesor, prosesor sendiri dapat membangkitkan interupsi, yang biasa mengolah logika dan aritmatika. Jika melampoi ukuran tampung register di dalam prosesor, maka terjadi kekeliruan yang akan menginterupsi kerjanya sendiri dan menyerahkan kendali prosesor pada sistem operasi. Misalnya pembagian dengan bilangan nol.

o Satuan kendali, tugas untuk melaksanakan interupsi terletak pada satuan kendali, sehingga satuan kendali dapat membangkitkan interupsi. Misalnya kekeliruan instruksi

o Kunci waktu / clock, menggunakan interupsi berkala. Misalnya pada program looping yang tak terhingga, diinterupsi pada setiap selang waktu 60 detik.

o Peripheral I/O, I/O jika akan bekerja memberitahukan pada prosesor dengan interupsi prosesor dan juga ketika pekerjaan selesai atau pada saat terjadi kekeliruan paritas.

o Memori, karena terjadi kekeliruan, misalnya ketika prosesor ingin mencapai alamat memori yang terletak di luar bentangan alamat memori yang ada.

o Sumber daya lain, misal dibangkitkan oleh operator sistem komputer yang mengerti cara interupsi.

Interupsi vector : Berisi alamat prosedur service interupsi

Penerimaan interupsi dan interupsi berganda : ada kalanya interupsi ditolak oleh prosesor atau interupsi yang datang tidak hanya satu sehingga diperlukan prioritas.

Tindak lanjut interupsi :

1. Penata interupsi / interrupt handler

jika terjadi interupsi, maka kendali prosesor diserahkan ke bagian penata interupsi pada sistem operasi, maka penata interupsi inilah yang melaksanakan interupsi.

a. Instruksi yang sedang diolah oleh prosesor dibiarkan sampai selesai program. b. Penata interupsi merekam semua informasi proses ke dalam blok kendali proses. c. Penata interupsi mengidentifikasi jenis dan asal interupsi.

d. Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi.

e. Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses yang diinterupsi.

2. Penata keliru / error handler

yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem operasi yang menata kegiatan akibat kekeliruan adalah penata keliru.

a. Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan pemulihan kekeliruan, contohnya telah dilengkapi dengan sandi Hamming sehingga ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke bentuk semula sebelum terjadi kekeliruan.

(14)

b. Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung seperti biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses.

c. Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari monitor, setelah itu prosesor keluar dari proses, ini adalah tindakan terakhir jika tidak dapat menolong proses yang keliru tersebut.

Tindak lanjut interupsi menurut Peterson & Silberschatz :

Keterangan : 1. Rampung

Program selesai dilaksanakan oleh prosesor sehingga penyerahan kendali proses ke pekerjaan baru / perintah baru karena proses yang dikerjakan oleh prosesor telah selesai.

2. Keliru

Jika menemukan kekeliruan akan ditampilkan, kemudian kendali prosesor diserahkan pada perintah berikutnya.

3. Permintaan bukan dari alat I/O

Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses semula, misalnya interupsi berkala.

4. Permintaan dari alat I/O

Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses sebelumnya, tetapi ada kalanya prosesor ikut campur dalam kerja alat I/O sehingga pengembalian kendali proses semula, tidak berlangsung segera / tunggu.

5. Rampung dari alat I/O

Setelah interupsi selesai dilayani dan tanda rampung dicatat, kendali prosesor dikembalikan ke proses semula. Biasanya untuk alat I/O yang tidak diikut campuri oleh prosesor.

Catt:

1 & 2 tidak mengembalikan prosesor ke proses yang terinterupsi, sedangkan 3,4,5 mengembalikan prosesor ke proses yang terinterupsi.

Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi : 1. hardware memasukkan program counter, dl.l.

memasukkan ke dalam stack pencacah program Interupsi

Rekam informasi proses

Maksud interupsi?

Rampung Keliru Bukan I/O Mulai I/O Rampung I/O

Kerja / Perintah Berikutnya

Curah Laksanakan Mulai Permintaan Tanda Rampung Interupsi Kembali ke proses sebelum interupsi

(15)

2. Hardware memuatkan (load) program counter baru dari vector interrupsi 3. Prosedur bahasa rakitan menyimpan isi register

4. Prosedur bahasa rakitan men-set stack yang baru 5. Prosedur C menandai proses servis siap (ready)

6. Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya 7. Prosedur C kembali ke modus bahasa rakitan

8. Prosedur bahasa rakitan memulai proses yang sedang dilaksanakan. Komunikasi antar proses

(Inter Process Communinication / IPC) :

 Beberapa proses biasanya berkomunikasi dengan proses lainnya.

 Contohnya pada shell pipe line : output dari proses pertama harus diberikan kepada proses ke dua dan seterusnya.

 Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing (berbagi) media penyimpanan, dimana suatu proses dapat membaca dan menulis pada shared storage (main memory atau files)

Masalah – masalah pada IPC : Race Condition :

Suatu kondisi dimana dua atau lebih proses mengakses shared memory / data pada saat yang bersamaan dan hasil akhirnya tidak sesuai dengan yang dikehendaki

Contoh rase condition :  Print spooler

Contoh : berupa kumpulan data-data yang akan di cetak.  Spooler directory

Mengerjakan proses lain

4 Abc Out = 4

Proses A 5 Program c

6 Program n

7 In = 7

8

Proses B Mengerjakan proses lain

> Proses A  cek slot input yang kosong (7) untuk mencetak suatu data dan stop > Interupsi ………

> Proses B  meletakkan data yang akan di print pada slot kosong tersebut (7) dan stop (slot kosong berikutnya adalah 7+1=8)

> : prosesor mengerjakan proses lain

> Proses A dilanjutkan  meletakkan data yang akan di print di slot (7), sehingga meng-overwrite data proses B yang diletakkan di slot (7)

> Maka proses B tidak akan dilaksanakan, dan tidak akan terdeteksi terjadi kesalahan.

Untuk menghindari race condition maka harus diatur agar 2 proses yang mempunyai critical section yang sama tidak memasuki critical section pada saat yang bersamaan.

Critical Section / seksi kritis :

Bagian dari program yang mengakses shared memory, yang dapat menyebabkan terjadinya race condition.

Komunikasi

(16)

4 kondisi untuk mencegah race condition :

a. Tidak ada 2 proses yang memasuki critical sectionnya secara bersamaan / simultan b. Tidak ada asumsi yang dibuat yang berhubungan dengan kecepatan dan jumlah CPU

c. Tidak ada proses yang berjalan diluar critical section-nya yang dapat memblokir proses-proses lain d. Tidak ada proses yang menunggu selamanya untuk masuk ke critical section-nya.

Mutual Exclusion (MuTex) With Busy Waiting :

Jika suatu proses sedang mengakses shared memory di critical sectionnya, tidak ada satu prosespun yang dapat memasuki critical section (mutual exclusion) dan menyebabkan masalah.

Jenis-jenis mutual exclusion :

1. Disabling interrupt / mematikan interupsi

Dengan cara mematikan interupsi yang masuk pada saat proses sedang berada pada critical section-nya. Cara ini kadang cukup berguna untuk kernel tetapi tidak untuk user. Dan cara inipun tidak terlalu baik untuk CPU yang jumlahnya lebih dari satu, dimana disable interrupt hanya mengenai CPU yang sedang menjalankan proses itu dan tidak berpengaruh terhadap CPU lain 2. Lock variables

Setiap proses yang akan mengakses ke critical section-nya harus meng-cek lock variable. Jika 0 berarti proses dapat memasuki critical section-nya dan jika 1 maka proses harus menunggu sampai lock variable = 0. Kelemahannya adalah 2 proses masih dapat memasuki critical section-nya pada saat yang bersamaan. Sewaktu satu proses meng-cek lock variable = 0, pada saat akan men-set 1 ada interupsi untuk melaksanakan proses lain yang juga ingin memasuki critical sectionnya, maka akan terjadi race condition.

3. Strict alternation

Dengan mengamati variable turn untuk menentukan siapa yang akan memasuki critical section-nya bukanlah ide yang baik jika proses lebih lambat dari yang lain.

Contohnya :

While (true) {

while (turn != 0) /*wait*/; critical_section ( ); turn = 1; noncritical_section ( ); } while (true) {

while (turn != 1) /*wait*/; critical_section ( );

turn = 0;

noncritical_section ( ); }

4. Peterson’s Solution

Proses tidak akan diteruskan sampai while terpenuhi, bila interested[other] = TRUE, maka proses akan menunggu sampai FALSE.

Kelemahannya : jika proses memanggil enter_region-nya secara hampir bersamaan, yang disimpan di turn adalah data yang ditulis terakhir.

Contohnya :

# include “prototype.h” # define FALSE 0 # define TRUE 1

# define N 2 /*banyaknya proses*/

int turn;

int interested [N]; /*nilai awal di-set = 0 (false)*/ void enter_region(int process) /*proses = 1 atau 0*/

(17)

{

int other; /*jumlah proses lainnya*/

other = 1 – process; /*proses lainnya*/ interested[process] = TRUE; /*menunjukkan tertarik*/ turn = process; /*set flag*/

while (turn==process && interested[other] == TRUE) }

void leave_region(int process) /*proses yang selesai*/ {

interested[process] = FALSE; /*meninggalkan critical region*/ }

5. Test and Set Lock Instruction / Instruksi TSL

Dengan bantuan hardware, menentukan siapa yang berhak memasuki critical_region (section) Contoh :

Enter_region :

Tsl reg,flag | copy flag ke reg dan set flag = 1

Cmp reg,#0 | apakah flag = 0

Jnz enter_region |jika <> 0 loop lagi

Ret |return ke caller, masuk critical region Leave_region :

Mov flag, #0 |simpan 0 ke flag

Ret |return ke caller

Proses harus memanggil ini pada saat yang tepat.

Kelemahan utama dengan busy waiting adalah menyita banyak waktu CPU dan problem inversi prioritas.

6. Sleep and Wake Up

Mekanismenya : proses akan di blok / tidur (sleep) apabila tidak bisa memasuki critical_section-nya dan akan dibangunkan (wake up) / ready apabila resource yang diperlukan telah tersedia.

SLEEP : sistem call membuat proses yang memanggil di blok (blocked) WAKE UP : sistem call yang membuat proses yang memanggil menjasi ready Contoh :

Procedure-Consumer Problem (bounded buffer) Beberapa proses share buffer dengan ukuran tetap

Jika buffer penuh producer sleep Jika buffer kosong consumer sleep

Jika buffer mulai kosong producer wake up Jika buffer terisi consumer wake up Masih ada kemungkinan terjadi race condition 7. Semaphore (Dijkstra, 1965)

Meng-cek, mengubah dan sleep 1 instruksi yang Mengubah dan wake up tdk dpt dipisahkan Instruksi tersebut sangat berguna untuk sinkronisasi.

Dapat diimplementasikan untuk memecahkan producer-consumer problem. Mekanisme-nya menggunakan :

- variabel integer untuk menghitung jumlah wake up yang disimpan / tertunda

- bernilai 0 bila tidak ada wake up yang disimpan, bernilai positif bila ada wake up yang tertunda Dua macam operasi terhadap semaphore :

1. DOWN(S) :

If S >= 0 then

S := S-1; Else sleep (S) End;

(18)

2. UP(S) :

S := S + 1;

If S <= 0 then wakeup(S) End;

Operasi DOWN dan UP merupakan operasi yang bersifat Atomic (Atomic Action). 8. Event Counters (Reed and Kanodia, 1979)

Tiga operasi terhadap event counter (E) : 1. Read (E) : return current value of E 2. Advance (E) : Atomically increment E by 1 3. Wait until E has a value of v or more 9. Monitor

- Higher level synchronization primitive.

- Kumpulan prosedur, variabel dan struktur data yang dipaket menjadi satu modul atau paket. - Proses bisa memanggil prosedur dalam monitor, tetapi tidak dapat mengakses langsung struktur

data internal dari monitor. 10. Message Passing

Menggunakan 2 primitive :

1. send (destination, &message) 2. receive (source, &message)

Beberapa isu pada message passing system : message lost; acknowledgement; domains; authentication; performance

Masalah Klasik IPC :

The Dining Philosopher Problem

- 5 philosophers yang kerjanya hanya makan dan berfikir - tersedia lima piring spaghetti dan lima sumpit

- untuk makan dibutuhkan bua buah sumpit

- problem-nya bagaimana cara menulis program agar setiap philosopher dapat berfikir dan makan tanpa harus saling menunggu ?

The Readers and Writers Problem

- Model akses database

- Banyak proses berkompetisi untuk membaca dan menulis. Contohnya : airline reservation. - Beberapa proses boleh membaca pada saat yang sama

- Bila suatu proses sedang menulis, tidak boleh ada proses lain yang mengakses database - Proses membaca mempunyai prioritas yang lebih tinggi daripada proses menulis

Proses dalam Sistem Terdistribusi Thread

Computer Computer

Process Thread Program Counter

(a) (b)

Gambar (a) :

- mempunyai : program counter, stack, register set, address space sendiri

- independent satu sama lain dan berkomunikasi lewat IPC yang disediakan sistem, seperti : semaphore, monitor, atau message

(19)

Gambar (b) :

- multiple threads of control (THREAD atau lightweight Process). Thread mirip seperti little-mini process. Setiap thread berjalan sekuensial, yang mempunyai program counter dan stack sendiri. Thread juga men-share CPU seperti proses.

- Thread dalam satu proses menempati address space yang sama, tidak ada proteksi penggunaan memori antar thread karena proses dimiliki oleh satu user.

- Thread dapat berada pada empat state yang berbeda, seperti process (running, blocked, ready, terminated)

Ada 3 model process pada server :

1. thread di ciptakan untuk dapat melakukan paralelisme yang dikombinasikan dengan eksekusi sekuensial dan blocking system calls

2. single treads server, menggunakan blocking system calls, tetapi kinerja sistem tidak baik

3. finite-state machine, kinerja baik dengan melakukan parallelisme, tetapi menggunakan nonblocking calls, sehingga sulit dalam memprogram

Status proses terhadap prosesor : 1. Status proses tanpa henti

2. Status proses sambil bekerja dan terhenti

3. Status proses dengan status siap

Mulai

Kerja

Selesai

Mulai

Kerja

Selesai

Terhenti

Terhenti

Mulai

Siap

Kerja

(20)

TEKNIK PENJADWALAN PROSESOR

Istilah-istilah :

Pekerjaan / Job

User menyerahkan pekerjaan mereka pada komputer. Ada pekerjaan yang panjang, sedang dan pendek. Untuk dapat diolah oleh komputer harus dianalisis dahulu untuk mengetahui bagaimana sebaiknya pekerjaan itu dilakukan.

Terobosan / Troughput

Pekerjaan dalam komputer dilaksanakan langkah demi langkah, sehingga dapat dikatakan bahwa troughput adalah banyaknya pekerjaan yang dapat diselesaikan oleh sistem komputer dalam satu satuan waktu.

Tugas / Task

Program yang terdiri dari banyak bagian program dan bagian program yang dikerjakan merupakan tugas bagi sistem operasi.

- Tugas yang sedang dilaksanakan, adalah tugas yang menemukan semua sumber daya yang diperlukannya, termasuk prosesor.

- Tugas yang siap dilaksanakan, adalah tugas yang menemukan semua sumber daya yang diperlukannya, kecuali prosesor.

- Tugas yang belum dilaksanakan, adalah tugas yang belum menemukan sumber daya yang diperlukannya.

Proses / Process

Tugas yang telah dijadwalkan untuk menemukan prosesor / tugas yang telah diterima oleh penjadwalan.

Tugas Penjadwalan Proses Prosesor

(21)

Keterangan :

GK = galur kendali / control bus

GD = galur data / data bus, tempat informasi data berlalu lintas antar register

GA = galur alamat / address bus, tempat informasi alamat memori berlalu lintas antar register karena setiap kali hanya ada 1 informasi dalam galur ini, maka lalu lintas diatur oleh tanda waktu dari kunci waktu. Tanda waktu dibentuk oleh basis waktu

A = akumulator, register serba guna yang dapat menerima berbagai informasi

SLA = satuan logika dan aritmatika / ALU, tempat pengolahan, contohnya untuk menghitung 3+4=?, maka data 3 diletakkan di register A dan data di register B. proses penjumlahan terjadi di SLA / ALU, hasil = 7 diletakkan kembali di register A

B = register, register yang menerima informasi yang akan diolah bersama oleh isi register A

PT = pencacah program / program counter, program terletak dalam memori kerja pada alamat memori tertentu. PT menerima alamat memori awal saat diolah oleh prosesor dan juga menyaring dan menentukan alamat memori mana saja yang isinya akan dibawa ke prosesor dan hanya alamat yang sesuai dengan letak program yang sedang diolah yang diperbolehkan PT masuk ke prosesor. PT mencacah dirinya sebesar 1 cacahan dan dengan cara yang sama akan melayani alamat berikutnya sampai alamat terakhir.

RI = register instruksi, membawa dan menerima informasi dari memori kerja dan diperiksa.

SK = satuan kendali / control unit, menerima informasi instruksi program dan sesuai dengan isi instruksi SK mengendalikan kegiatan dalam prosesor.

RA = register alamat / address register, mencatat alamat memori yang isinya akan dicapai alamat itu di memori kerja. Jika pembacaan data dari memori kerja, data / isi dari memori kerja dibaca dan disalin ke RD, tetapi jika pada penulisan data ke memori kerja, maka isi RD disalin ke alamat memori kerja.

RD = register data.

RD dan RA bekerja sama dalam kegiatan pengambilan dan pengiriman data dari dan ke memori kerja.

2 siklus kerja prosesor :

1. Siklus Jemput

a. PT berisi alamat awal program pada memori kerja yang disesuaikan dengan isinya di memori kerja

b. RA = PT, alamat memori PT diteruskan ke RA

c. RA  RD, isi program diambil dari memori kerja dan diletakkan di RD d. RI = RD, dari RD program diteruskan ke RI

e. PT= PT + 1, pencacah untuk melanjutkan siklus berikutnya f. Go to point b

2. Siklus Kerja

a. RI = SK, isi program di RI akan diteruskan ke SK, RI berisi instruksi untuk melaksanakan sesuatu b. SK  seluruh kegiatan di dalam prosesor dikendalikan sehingga kerja yang dimaksud oleh bagian

program itu dirampungkan. 2 jenis kerja / proses :

1. Tugas / proses sistem, berasal dari program sistem yaitu dari sistem bahasa, utilitas, operasi, dimana prosesor melayani sistem (prosesor dikuasai sistem / kontek sistem)

2. Tugas / proses aplikasi, berasal dari program aplikasi, dimana prosesor melayani aplikasi (prosesor dikuasai aplikasi / kontek aplikasi)

Proses Serentak / Concurrent Process :

Yaitu prosesor menghadapi banyak tugas dan proses.

a. Multiprogramming, sistem komputer lebih dari 1 program sekaligus dalam pelaksanaan proses. b. Multitasking, banyak bagian program yang dipersiapkan untuk diolah oleh prosesor namun belum

(22)

c. Multiprocessing, sejumlah tugas yang telah dijadwalkan untuk menggunakan prosesor. d. Multiplexing, menggunakan pertukaran kendali dalam selang waktu terpisah-pisah.

e. Time sharing / rentang waktu, secara bersamaan sejumlah pemakai dapat menggunakan 1 sistem komputer, sehingga setiap pemakai merasa bahwa seluruh sistem komputer seolah-olah untuk dirinya.

Proses Berurutan :

Sejumlah proses berlangsung secara berselingan dan tidak ada diantara mereka yang bertumpang tindih waktu, sebelum 1 proses selesai, proses berikutnya belum bekerja.

A

B

C Proses Paralel :

- pada proses tunggal, proses serentak bukan proses paralel karena proses tersebut di gali 1 demi 1, sepenggal demi sepenggal.

- Pada proses jamak, proses dapat dilaksanakan secara serempak diantara banyak prosesor sehingga disebut proses paralel

A

B

C Proses Serentak Berpenggalan :

Ada penggalan dari 1 proses yang berselingan dengan penggalan dari proses lain dan ada penggalan dari proses pertama yang bertumpang tindih waktu dengan penggalan proses kedua.

A A1 A2

B B1 B2

C C1 C2

Istilah dalam penjadwalan proses :

Scheduler adalah bagian sistem operasi yang mengatur penjadwalan eksekusi proses-proses.

Algoritma penjadwalan (scheduling algorithm) adalah algoritma yang digunakan.

Penjadwalan Proses

o Antrian, karena banyak proses yang muncul secara serentak maka dibuat antrian di depan

prosesor, yang berada dalam keadaan siap dan hanya ada 1 proses yang berada dalam status kerja

o Prioritas, mendahulukan pada antrian proses karena tidak semua proses sama pentingnya,

sehingga dibuat suatu prioritas. Dalam prioritas, pekerjaan pada prosesor diselesaikan dahulu baru proses berprioritas akan di proses

o Preempsi, sama dengan prioritas, tetapi pada preempsi jika ada proses yang mendapatkan

preempsi maka preemsi akan menghentikan kerja prosesor dan mengeluarkan pekerjaan di dalam prosesor itu, sehingga proses berpreempsi dapat dilayani prosesor. Dan setelah proses berpreempsi selesai dilaksanakan, prosesor akan melaksanakan sisa proses yang dikeluarkan dari pekerjaannya tadi

Jangka penjadwalan

Semua antrian dan penantian (contohnya yang dikeluarkan karena preempsi.

a. Penjadwalan jangka pendek / short term scheduling / low level scheduling, yaitu mengurus masuknya antrian siap ke prosesor serta antrian siap ke alat peripheral I/O, yang mengurus prioritas dan preempsi.

b. Penjadwalan jangka media / medium term scheduling / intermediate level scheduling, yaitu mengurus terhadap proses yang dikeluarkan dari prosesor yang belum rampung dikerjakan dan melanjutkan pekerjaan proses tersebut di prosesor.

c. Penjadwalan jangka panjang / long term scheduling / high level scheduling, yaitu mengurus masuknya pekerjaan baru berupa penentuan pekerjaan baru mana yang boleh diterima dan tugas disini diubah menjadi proses.

(23)

Tujuan penjadwalan / kriteria baik tidaknya suatu algoritma penjadwalan : a. Fairness / pelayanan yang adil untuk semua pekerjaan

b. Throughput / memaksimumkan throughput

c. Efficiency / memaksimumkan pemakaian prosesor d. Overhead / meminimumkan waktu tunggu

e. Pemakaian sumber daya seimbang f. Tidak terjadi penundaan waktu tak hingga

g. Kegiatan sumber daya dapat dideteksi terlebih dahulu

Perhitungan kerja prosesor

• t adalah lama proses pada prosesor, lama waktu sesungguhnya yang diperlukan untuk mengolah proses dalam prosesor.

• T adalah lama tanggap pada prosesor, lama waktu yang diperlukan oleh prosesor sejak tiba sampai dengan rampung diolah oleh prosesor, terdapat waktu tunggu dalam antrian / dalam preempsi.

o Lama tanggap turn around time, yaitu memperhitungkan lama waktu yang diperlukan oleh proses untuk keluaran

o Lama tanggap respon time, yaitu tidak memperhitungkan lama waktu yang diperlukan oleh proses untuk keluaran

• Tr adalah lama tanggap rata-rata, yaitu perbandingan lama tanggap setiap proses (Ti) dengan jumlah proses serentak yaitu Tr = Σ Ti / N

• S adalah waktu sia-sia, waktu yang terbuang di dalam antrian / selama terkena preempsi yaitu selisih antara lama tanggap dengan lama proses (T-t)

• Rt adalah rasio tanggap, perbandingan antara lama proses terhadap lama tanggap, Rt = t / T • Rp adalah rasio penalti, perbandingan antara lama tanggap terhadap lama proses, Rp = T/t dan

karena t ≤ T, maka Rt < 1 dan Rp >1 Penjadwalan Prosesor

 Penjadwalan satu tingkat

a. Pertama Tiba Pertama Dilayani (PTPD) b. Proses Terpendek Dipertamakan (PTD)

c. Proses Terpendek Dipertamakan Preempsi (PTDP) d. Rasio Penalti Tertinggi Dipertamakan (RPTD) e. Putar Gelang (PG)

f. Putar Gelang Prioritas Berubah (PGPB)  Penjadwalan multi tingkat

a. Antrian multi tingkat

b. Antrian multi tingkat berbalikan

Penjadwalan Satu Tingkat

Pertama Tiba Pertama Dilayani (PTPD) / First Come First Served (FCFS)

Penjadwalan ini murni antrian, tanpa prioritas tanpa preempsi.

Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap

A 0 9 0 9 9 B 0 30 9 39 39 C 0 4 39 43 43 D 0 8 43 51 51 E 0 12 51 63 63 ⇓ Σ Ti 205 serentak Tr 41

(24)

Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap

A 0 4 0 4 4 B 1 7 4 11 10 C 3 3 11 14 11 D 7 8 14 22 15 Σ Ti 40 Tr 10

Lama tanggap ≠ saat rampung karena perbedaan saat tiba.

Proses Terpendek Dipertamakan (PTD) / Shortest Job First (SJF)

Penjadwalan ini adalah antrian dengan prioritas tanpa preempsi, yang menjadi prioritas adalah proses yang terpendek (tersingkat), makin pendek proses, makin tinggi prioritasnya.

Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap

A 0 11

B 0 8

C 0 10

D 0 3

E 0 5

Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap

D 0 3 0 3 3 E 0 5 3 8 8 B 0 8 8 16 16 C 0 10 16 26 26 A 0 11 26 37 37 ⇓ ⇓ Σ Ti 90 serentak prioritas Tr 18

Tr lebih singkat, jika dibandingkan dengan PTPD

Nama Proses Saat Tiba Lama Proses Saat Mulai Saat Rampung Lama Tanggap

A 0 5

B 3 7

C 5 2

D 6 4

Disusun urutan proses berdasarkan prioritasnya, yaitu CDAB, tetapi pada saat tiba = 0, proses terpendek C belum datang, maka mengerjakan proses A dahulu, setelah selesai pada saat 5, proses C sudah datang, sehingga C dikerjakan dan seterusnya seperti :

A B C D ↓ ↓ ↓ ↓ Saat 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Proses A A A A A C C D D D D B B B B B B B Nama Proses Saat Tiba Lama Proses Saat Mulai

Saat Rampung Lama Tanggap

A 0 5 0 5 5 C 5 2 5 7 2 D 6 4 7 11 5 B 3 7 11 18 15 Σ=18 Σ Ti 27 Tr 6.75

(25)

Keuntungan : memperkecil rata-rata lama tanggap

Kelemahan : layanan terhadap proses panjang bisa tidak terlayani jika proses pendek datang terus. Nama Proses Saat Tiba Lama Proses Saat Mulai

Saat Rampung Lama Tanggap

A 0 8 B 4 5 C 6 3 D 9 8 E 14 4 Nama Proses Saat Tiba Lama Proses Saat Mulai

Saat Rampung Lama Tanggap

A 0 8 0 8 8 C 6 3 8 11 5 B 4 5 11 16 12 E 14 4 16 20 6 D 9 8 20 28 19 Σ Ti 50 Tr 10

Proses Terpendek Dipertamakan Preempsi (PTDP)

Preemptive Shortest Job First (PSJF)

Penjadwalan ini dengan prioritas dengan preempsi, yang menjadi pioritas adalah sisa proses. Proses yang terpendek bisa didahulukan dengan cara membandingkan sisa waktu proses yang sedang dilaksanakan dengan proses yang tiba, dengan preempsi mengeluarkan proses yang sedang diolah untuk melaksanakan proses yang lebih pendek / singkat.

Nama Proses Saat Tiba Lama Proses Saat Mulai

Saat Rampung Lama Tanggap

A 0 7 B 2 3 C 4 9 D 5 4 A B C D ↓ ↓ ↓ ↓ S t 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 2 Pro s A A B B B D D D D A A A A A C C C C C C C C C

• Pada saat 0, proses A dikerjakan karena A datang pertama

• Pada saat 2, B datang, B=3, sisa A=5, B<A maka A dikeluarkan dari proses, B dikerjakan • Pada saat 4, C datang, C=9, sisa A=5, sisa B=1, B<A<C, maka B dikerjakan

• Pada saat 5, D datang, D=4, sisa A=5, sisa C=9, D<A<C, maka D dikerjakan sampai selesai karena tidak ada proses yang datang lagi

• A<C maka A dikerjakan • C dikerjakan

(26)

Nama Proses Saat Tiba Lama Proses Saat Mulai

Saat Rampung Lama Tanggap

A 0 7 0 14 14 B 2 3 2 5 3 C 4 9 15 23 19 D 5 4 5 9 4 Σ=23 Σ Ti 40 Tr 10

Karena preempsi, PTDP lebih baik dari PTD dalam hal kecilnya Tr, tetapi untuk proses panjang lebih lama dibandingkan PTD. Nama Proses Saat Tiba Lama Proses Saat Mulai

Saat Rampung Lama Tanggap

A 0 8 B 2 5 C 4 7 D 5 1 Nama Proses Saat Tiba Lama Proses Saat Mulai

Saat Rampung Lama Tanggap

A 0 8 0 14 14 B 2 5 2 8 6 C 4 7 14 21 17 D 5 1 5 6 1 Σ Ti 38 Tr 9.5

Rasio Penalti Tertinggi Dipertamakan (PTD) /

Highest Penalti Ratio Next (HPRN)

Penjadwalan dengan prioritas tanpa preempsi. Yang menjadi prioritas adalah besarnya rasio pinalti. Tetap mendahulukan proses pendek ditambah dengan mempertimbangkan rasio penaltinya, yang ditentukan berdasarkan lama waktu antriannya. Sehingga prioritas proses panjang akan turut meningkat melalui peningkatan rasio pinalti, sehingga pada suatu saat proses panjang pada antrian yang telah lama menunggu akan menyusul proses pendek. S = (T-t) ; Rp = T/t = (s+t)/t

Nama Proses Saat Tiba Lama Proses Saat Mulai

Saat Rampung Lama Tanggap

A 0 4

B 1 2

C 2 5

D 3 8

E 4 4

Nama Proses Waktu sia-sia Rasio Penalti

B 4 - 1 = 3 (3 + 2) / 2 = 2,5 Rp>>

C 4 - 2 = 2 (2 + 5) / 5 = 1,4

D 4 - 3 = 1 (1 + 8) / 8 = 1,125

E 4 - 4 = 0 (0 + 4) / 4 = 1

Nama Proses Waktu sia-sia Rasio Penalti

(27)

D 6 - 3 = 3 (3 + 8) / 8 = 1,375

E 6 - 4 = 2 (2 + 4) / 4 = 1,5

Nama Proses Waktu sia-sia Rasio Penalti

D 11 - 3 = 8 (8 + 8) / 8 = 2 E 11 - 4 = 7 (7 + 4) / 4 = 2,75 Rp>> A B C D E ↓ ↓ ↓ ↓ ↓ S t 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 2 Pro s A A A A B B C C C C C E E E E D D D D D D D D Nama Proses Saat Tiba Lama Proses Saat Mulai

Saat Rampung Lama Tanggap

A 0 4 0 4 4 B 1 2 4 6 5 C 2 5 6 11 9 D 3 8 15 23 20 E 4 4 11 15 11 Σ=23 Σ Ti 49 Tr 9.8

Putar Gelang (PG) / Round Robin (RR)

Penjadwalan ini tanpa prioritas, dengan preempsi. Secara bergiliran berdasarkan antrian (tanpa prioritas) prosesor melayani sejenak setiap proses tergantung besarnya quantum waktu. Secara berturut-turut proses yang dilayani prosesor dan belum rampung akan kembali ke akhir antrian yang ada, sehingga pergiliran ini berputar seperti gelang. Dan hanya proses yang telah rampung terlayani yang meninggalkan prosesor dan antrian tersebut. Jadi setiap proses dilayani selama quantum waktu tertentu secara bergiliran.

Quantum waktu : waktu sejenak yang digunakan oleh prosesor untuk melayani setiap proses. Perubahan quantum waktu membedakan hasil layanan terhadap antrian yang sama.

Contoh dengan Q = 3 Nama Proses Saat Tiba Lama Proses Saat Mulai

Saat Rampung Lama Tanggap

A 0 7 B 0 5 C 0 8 D 0 2 E 0 6 Saat 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Proses A A A B B B C C C D D E E E A A A B B C C C E E E A C C

Nama Proses Saat Tiba

Lama Proses

Saat Mulai Saat Rampung Lama Tanggap

A 0 7 0 26 26

C 0 5 3 19 19

B 0 8 6 28 28

(28)

D 0 6 11 25 25 Σ = 28 Σ Ti 109 Tr 21.8 Dengan Q = 2 Nama Proses Saat Tiba Lama Proses Saat Mulai

Saat Rampung Lama Tanggap

A 0 5 B 1 3 C 5 7 D 6 1 E 7 6 A B C D E ↓ ↓ ↓ ↓ ↓ S t 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 Pro s A A B B A A B C C D E E A C C E E C C E E C Nama Proses Saat Tiba Lama Proses Saat Mulai

Saat Rampung Lama Tanggap

A 0 5 0 13 13 B 1 3 2 7 6 C 5 7 7 22 17 D 6 1 9 10 4 D 7 6 10 21 14 Σ Ti 54 Tr 10,4

Pada saat 0, A dikerjakan 2x, saat 2, B sudah datang, dikerjakan 2x, saat 4, belum ada yang datang maka kerjakan A dan B lagi. Kemudian kerjakan C, D, E yang sudah datang, tetapi di antrian masih ada A, A dikerjakan kemudian E, sisa C, sisa E dan sisa C sampai selesai.

Secara merata, penjadwalan putar gelang memperlambat proses yang tiba dan secara merata pula semua proses dilayani oleh prosesor, sehingga biasanya digunakan pada proses interaktif jika semua proses menuntut dikerjakan segera.

Penjadwalan dengan prioritas berubah-ubah

Penjadwalan yang menggunakan prioritas dapat diubah-ubah menjadi prioritas lainnya. 1. Penjadwalan tanpa preempsi dengan prioritas berubah-ubah P = f(s,t,u)

Dengan : p = prioritas; s = waktu sia sia; t = lama proses u = tarif sewa

2. Penjadwalan dengan preempsi dengan prioritas berubah-ubah (PGPB = putar gelang prioritas berubah-ubah) dimana prioritas tergantung pada proses lama dan proses baru, maka jika : a = koefisien untuk proses lama dan b = koefisien untuk proses baru,

b/a = 1 ⇒ prioritas sama b/a = 0 ⇒ prioritas lama b/a < 1 ⇒ prioritas baru < lama b/a > 1 ⇒ prioritas baru > lama Kesimpulan : Tanpa Prioritas Dengan Prioritas Tanpa PTPD PTD / RPTD

(29)

Preempsi Dengan Preempsi PG PTDP Penjadwalan Multitingkat

 Proses dibedakan tingkatnya berdasarkan kepentingannya.  Penjadwalan pada tiap tingkat dapat bermacam-macam.

 Pada antrian multi tingkat berbalikan, tingkat satu dan lainnya saling berhubungan.

Antrian Multi Tingkat (Multi level queue)

Mengumpulkan proses-proses yang berkepentingan sama dalam 1 tingkat. Proses dikerjakan tingkat demi tingkat dari tingkat tertinggi sampai dengan tingkat terendah dimana setiap tingkat telah rampung dikerjakan

Tingkat 1 c/ proses pd sistem operasi

P

Tingkat 2 c/ proses pd prog. Interaktif R

O

Tingkat 3 c/ proses pd program edit S

E

Tingkat 4 c/ proses pd tumpukan S

O

Tingkat 5 c/ proses pd borongan R

Antrian Multi Tingkat Berbalikan /

Feedback multi level queue

Tingkat 1 P Rampung Preempsi Tingkat 2 P Rampung Preempsi Tingkat 3 P Rampung Preempsi Tingkat n Rampung

Metoda Evaluasi Penjadwalan

evaluasi analitik

a. pemodelan deterministik

pekerjaan sudah ditetapkan terlebih dahulu, menerapkan berbagai penjadwalan dan dievaluasi hasilnya.

(30)

Nama proses Saat tiba Lama proses

A 0 12

B 0 30

C 0 2

D 0 8

E 0 10

Dari tabel tersebut dapat kita cari :

Macam penjadwalan Rerata lama tanggap Rerata waktu sia-sia

PTPD 42,4 30

PTD 29,2 14

PG (Q=8) 38,4 28

Keuntungan : ketepatan untuk menunjukkan rata-rata lama tanggap / rata-rata waktu sia-sia Kelemahan : hasil evaluasi hanya berlaku untuk proses yang telah ditetapkan

b. analisis model antrian

menganggap sistem komputer sebagai suatu jaringan alat layan, menggunakan rumus distribusi probabilitas untuk memperkirakan bentuk antrian dan bentuk pelaksanaan proses. Sasaran rumus distribusi probabilitas adalah untuk lama proses, saat tiba dan kecepatan layan. Sehingga dapat menentukan analisis jaringan antrian, dengan ditetapkan rumus litte, yaitu : n = u . s, dengan n = rerata panjang antrian, s = rerata waktu sia-sia / waktu tunggu, u = rerata kecepatan tiba proses baru.

Kelemahan : Pengambilan model cukup rumit untuk sistem tertentu dan model tidak selalu

cocok dengan keadaan yang sebenarnya

Metode Simulasi

Metode ini berdasarkan sejumlah variabel yang disimulasikan sistem komputer yang digunakan, memerlukan data masukan melalui bilangan acak.

Keuntungan : jika ditangani dengan baik maka metode ini cukup baik.

Kelemahan : mahal, karena banyak menggunakan jam prosesor dan ruang memori.

Metode Implementasi

Metode ini bekerja dengan cara mengamati hasil dari implementasi setiap penjadwalan / menerapkan berbagai penjadwalan pada pekerjaan yang sesungguhnya.

Keuntungan : cukup cermat.

Kelemahan : perubahan macam penjadwalan mengganggu pemakai komputer dan perubahan jenis

(31)
(32)

MANAJEMEN MEMORI

Memory manager :

Salah satu bagian sistem operasi yang mempengaruhi dalam menentukan proses mana yang diletakkan pada antrian.

Tanda pengenal untuk pencarian letak memori adalah alamat, lintasan / trek, sector pada suatu disk. Jenis Memori

- Memori Kerja

Tugas utamanya adalah menampung pekerjaan itu pada saat sebelum dan sesudah pekerjaan itu dilaksanakan oleh prosesor dan menampung berbagai hal yang diperlukan prosesor, contohnya system operasi, system bahasa, catatan.

Contoh memori kerja untuk memori tetap adalah :

⇒ ROM : Read Only Memory → memori baca saja

⇒ PROM : Programmable ROM → dapat diprogram tetapi tidak dapat dihapus lagi

EPROM : Electrically PROM dapat diisi melalui listrik, dan dapat dihapus

EEPROM : Erasable EPROM dapat diisi dan dihapus dengan listrik, maka ciri

utamanya adalah isi tetap ada / tidak mudah dihapus meskipun daya listrik computer terputus.

Contoh memori kerja untuk memori bebas adalah :

⇒ RAM : Random Access Memory → dapat diisi dan dapat dibaca, maka ciri utamanya adalah mengenal asas pemuktahiran yaitu dapat diisi dengan informasi terbaru dan isi akan hilang jika catu daya padam.

Memori kerja terdiri dari sel memori yang berisi 1 kata sandi, misalnya sistem 8 bit menggunakan 8 bit kata sandi, sistem 1 kbyte menggunakan 1024 byte kata sandi.

Cache memory

Memori berkapasitas kecil tetapi berkecepatan tinggi, yang dipasang diantara prosesor dan memori utama. Instruksi dan data yang sering diakses oleh prosesor ditempatkan dalam chace sehingga dapat lebih cepat diakses oleh prosesor. Hanya bila data / instruksi yang diperlukan tidak tersedia dalam chacce barulah prosesor mencarinya dalam memori utama.

- Memori Dukung / backing store Contohnya : Floppy, Harddisk, CD, dll.

Untuk mendukung memori kerja, umumnya berbentuk disk sehingga berlaku juga asas pemuktakhiran. Setiap trek dan sektor dapat menyimpan sejumlah byte dari memori kerja. Memori kerja dicapai melalui alamat memori dan register data memori. Dan untuk mencapai informasi di memori dukung, isinya harus dipindahkan dulu ke memori kerja (memori dukung = memori semu = virtual memori).

1 pindahan = 1 blok, makin kecil ukuran memori kerja, makin sering terjadi pindahan. Alamat Memori

Alamat memori mutlak (alamat fisik)

Sel memori pada memori kerja adalah sumber daya berbentuk fisik, sehingga untuk mencapai sel memori ini digunakan kata pengenal. Maka disebutlah alamat fisik dan karena nomor alamat fisik ini bersifat mutlak (nomor setiap sel adalah tetap), maka disebut juga alamat mutlak.

Memori dukung Memori kerja Pindah masuk Pindah keluar

(33)

Alamat memori relatif (alamat logika)

Alamat memori yang digunakan oleh program / data berurutan / berjulat. Jika kita menggunakan alamat 1, maka kitapun menggunakan alamat 2,3, … dan untuk 1 informasi jika alamat awalnya 0 dan alamat lainnya relatif terhadap alamat awal 0 ini, maka dinamakan alamat relatif. Dan alamat tersebut adalah logika dari untaian alamat yang menyimpan informasi maka dikenal alamat memori logika.

Contoh : alamat awal relatif 0, alamat awal fisik 14726, maka selisihnya = relokasinya = 14726-0 = 14726.

Alamat relatif Alamat mutlak Relokasi

0 14726 14726 1 14727 14726 2 14728 14726 3 14729 14726 … … … Isi Memori

1. Sistem bahasa pemograman

Translator tergantung pada program yang digunakakan dan memiliki run time subroutine yang mengatur program dari bahasa pemogramannya untuk melakukan translator.

2. Sistem utilitas

Merupakan bagian dari sistem operasi komputer, biasanya berbentuk berkas dalam memori arsif. 3. Inti sistem operasi

Terdiri dari inti, kernel, nucleus adalah system operasi yang menetapkan dalam memori kerja. Contohnya adalah pada saat “boot / booting / bootstrap”.

4. Sistem operasi

Program sistem operasi diletakkan dalam memori, maka banyak kegiatan yang juga terletak dalam memori.

5. Pengendali alat

Terdiri dari penggerak alat / device controller dan pelaksana / device driver yang berbentuk program dan menempati ruang memori tertentu.

6. Berkas pemakai

Terdiri dari berkas program dan berkas data, yang ditampung dalam memori dan pada waktunya diteruskan ke prosesor untuk diolah.

Fungsi manajemen memori :

• Mengelola informasi yang dipakai dan tidak dipakai. • Mengalokasikan memori ke proses yang memerlukan. • Mendealokasikan memori dari proses telah selesai.

• Mengelola swapping atau paging antara memori utama dan disk. Pemuatan informasi ke memori :

1. Pemuat / loader, menyalin informasi ke memori kerja. a. pemuatan mutlak

jika 2 macam alamat memori dibuat sama antara yang tercantum dalam program dan yang ditempati dalam memori kerja. Contohnya pada program, alamat awal 5235 dan subroutine = 5468 diletakkan pada alamat fisik yang sama.

b. pemuatan relokasi

alamat program tidak selalu sama dengan alamat fisik.

Contohnya alamat pangkal / fisik = 14200, alamat relative program 327, maka alamat mutlaknya = 14200 + 327 = 14527

R(=p jika A=0)

Figur

Memperbarui...

Referensi

Memperbarui...

Related subjects :