Anda di halaman 1dari 230

Pengenalan Sistem

Operasi
Rachmat Jaenal Abidin, S.T.,M.T
Sistem Operasi (1)
 OS (Operating System) merupakan merupakan
program yang mengatur eksekusi program dan
bertindak sebagai interface antara aplikasi dan
perangkat keras.
 Tujuan Sistem Operasi :
 Kemudahan.
 Efisiensi.
 Kemampuan untuk berkembang.

Pengenalan Sistem Operasi


Sistem Operasi (2)
 OS sebagai interface antara user dan perangkat keras berarti
menyediakan mekanisme kapada end user untuk menggunakan
utilitas yang disediakan.
 End user tidak mau tahu akan detail proses yang melibatkan
computer hardware, sehingga end user hanya berinteraksi via
aplikasi-aplikasi yang disediakan.

Pengenalan Sistem Operasi


sistem operasi

Perangkat lunak yang bertindak sebagai


perantara
Komponen Sistem Operasi

1. Managemen Proses.
2. Managemen Memori Utama.
3. Managemen Secondary-Storage.
4. Managemen Sistem I/O.
5. Managemen Berkas.
Managemen Proses
 Proses adalah keadaan ketika sebuah program sedang
di eksekusi.
 Proses membutuhkan beberapa sumber daya berupa
CPU time, memori, berkas-berkas, dan perangkat-
perangkat I/O untuk menyelesaikan tugasnya.
 Tanggung jawab Sistem operasi atas aktivitas
managemen proses:
1. Pembuatan dan penghapusan proses pengguna dan
sistem proses.
2. Menunda atau melanjutkan proses.
3. Menyediakan mekanisme untuk proses sinkronisasi.
4. Menyediakan mekanisme untuk proses komunikasi.
5. Menyediakan mekanisme untuk penanganan deadlock
Managemen Memori Utama
 Memori utama adalah sebuah array yang besar terdiri dari word atau
byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan
jutaan.
 Memori Utama berfungsi sebagai tempat penyimpanan yang akses
datanya digunakan oleh CPU atau perangkat I/O.
 Memori utama termasuk tempat penyimpanan data yang sementara
(volatile), artinya data dapat hilang begitu sistem dimatikan.
 Tanggung jawab Sistem operasi atas aktivitas managemen memori:
1. Menjaga track memori yang sedang digunakan dan siapa yang
menggunakannya.
2. Memilih program yang akan di-load ke memori.
3. Mengalokasikan dan meng-dealokasikan ruang memori sesuai
kebutuhan.
Managemen Secondary-Storage

 Data yang disimpan dalam memori utama bersifat


sementara dan jumlahnya sangat kecil.
 Oleh karena itu, untuk meyimpan keseluruhan data
dan program komputer dibutuhkan secondary-storage
yang bersifat permanen dan mampu menampung
banyak data. Contoh dari secondary-storage adalah
harddisk, disket, dll.
 Tanggung-jawab Sistem operasi atas aktivitas disk-
management :
1. Alokasi penyimpanan.
2. Penjadualan disk.
Managemen Sistem I/O
Sering disebut device manager.
- Menyediakan "device driver" yang umum operasi I/O
seragam (membuka, membaca, menulis, menutup). Contoh:
pengguna menggunakan operasi yang sama untuk
membaca berkas pada hard-disk, CD-ROM dan floppy disk.
- Menyediakan driver untuk dapat melakukan operasi "rinci"
untuk perangkat keras I/O tertentu.

Komponen Sistem Operasi untuk sistem I/O:

1. Buffer : menampung sementara data dari/ ke perangkat I/O.


2. Spooling : melakukan penjadualan pemakaian I/O sistem
supaya lebih efisien (antrian dsb.).
Managemen Berkas
• Berkas adalah kumpulan informasi yang berhubungan sesuai
dengan tujuan pembuat berkas tersebut.
• Berkas dapat mempunyai struktur yang bersifat hirarkis
(direktori, volume, dll.).

Tanggung-jawab Sistem operasi atas aktifitas managemen berkas :


1. Pembuatan dan penghapusan berkas.
2. Pembuatan dan penghapusan direktori.
3. Mendukung manipulasi berkas dan direktori.
4. Memetakan berkas ke secondary storage.
5. Mem-backup berkas ke media penyimpanan yang permanen
(non-volatile).
Pelayanan Sistem Operasi
Eksekusi program :
meload program ke memory dan menjalankannya (run)

Operasi I/O :
pengguna tidak bisa mengontrol I/O secara langsung
(untuk efisiensi dan keamanan), sistem harus
bisa menyediakan mekanisme utk melakukan operasi
I/O

Manipulasi sistem berkas:


membaca, menulis, membuat,dan menghapus file
Pelayanan Sistem Operasi
Komunikasi :
pertukaran informasi, dapat dilaksanakan
melalui shared memory atau message passing

Deteksi error :
mempertahankan kestabilan dengan mendeteksi error
(pada CPU, perangkat keras memori, I/O,program
pengguna) dan jika bisa, memperbaikinya
Pelayanan Tambahan

Lebih diarahkan kepada upaya untuk menjaga efisiensi


sistem,bukan untuk membantu pengguna

Alokasi sumber daya :


mengalokasikan sumber daya
kepada beberapa pengguna atau tugas yang dijalankan
pada saat yang bersamaan

Accounting :
menentukan berapa banyak dan berapa lama users menggunakan
sumber daya sistem

Proteksi :
menjaga semua akses ke sumber daya sistem terkontrol
Evolusi Sistem Operasi
 Perkembangan sistem operasi :
 Generasi Pertama
 Generasi Kedua
 Generasi Ketiga
 Generasi Keempat

Pengenalan Sistem Operasi – Mata Kuliah Sistem Operasi


Arsitektur Sistem
Operasi
Rachmat Jaenal Abidin, M.T

1
Peranan Sistem Operasi Dalam
Struktur Sistem Komputer
• Operating System
• Computer Hardware
• Utilities
• Aplication Programs

2
Peranan Sistem Operasi Dalam
Struktur Sistem Komputer

3
Peranan Sistem Operasi Dalam
Struktur Sistem Komputer
• Operating System
Perangkat lunak lapisan pertama yang
diletakkan pada media penyimpan (hard
disk) di komputer. Sementara itu perangkat
lunak lainnya berada padai lapisan ke dua.

4
Peranan Sistem Operasi Dalam
Struktur Sistem Komputer
• Computer Hardware
Semua bagian fisik dari komputer, dan
dibedakan dengan data yang berada di
dalamnya atau yang beroperasi di
dalamnya, dan perangkat lunak yang
menyediakan instruksi untuk perangkat
keras dalam menyelesaikan tugasnya

5
Peranan Sistem Operasi Dalam
Struktur Sistem Komputer
• Utilities
perangkat lunak komputer yang didesain untuk
membantu proses analisis, konfigurasi, optimasi,
dan membantu pengelolaan sebuah komputer
ataupun sistem. Utilitas memfokuskan
penggunaannya pada optimalisasi fungsi dari
infrastruktur yang terdapat dalam sebuah
komputer. Fungsi tersebut antara lain backup data,
pemulihan sistem atau data, kompresi data,
penanganan virus dll.

6
Peranan Sistem Operasi Dalam
Struktur Sistem Komputer
• Aplication Programs
Perangkat lunak aplikasi yang memanfaatkan
kemampuan komputer langsung untuk melakukan
tugas-tugas yang diinginkan pengguna. Pengguna
dapat melakukan berbagai hal dengan komputer
seperti mengetik, melakukan permainan,
merancang gambar dll. Beberapa program aplikasi
digabung bersama menjadi suatu paket yang
disebut paket atau suite aplikasi (application
suite). Contohnya adalah Microsoft Office dan
OpenOffice.org,

7
Tujuan dan fungsi Sistem Operasi

• Kemudahan
Sistem Operasi membuat komputer lebih mudah
untuk digunakan
• Efisiensi
Sistem Operasi memungkinkan sumber daya
sistem komputer digunakan dengan cara yang
efisien
• Kemampuan berkembang
Sistem Operasi harus disusun sedemikian rupa
sehingga memungkinkan pengembangan yang
efektif, pengujian, dan penerapan fungsi sistem
baru tanpa mengganggu layanan yang telah ada

8
Peranan & Fungsi Sistem
Operasi
1. Sebagai kernel, yaitu program yang secara terus-menerus
berjalan (running) selama komputer dijalankan.
2. Sebagai Guardian: yaitu menyediakan kontrol akses yang
melindungi file dan memberikan pengawasan kepada
proses pembacaan, penulisan atau eksekusi data dan
program.
3. Sebagai Gatekeeper: mengendalikan siapa saja yang
berhak masuk (log) kedalam sistem dan mengawasi
tindakan apa saja yang dapat mereka kerjakan ketika telah
log dalam sistem.
4. Sebagai Optimizer: Mengefisienkan perangkat keras
komputer sehingga nyaman untuk dioperasikan oleh
pengguna, menjadwal input oleh pengguna, pengaksesan
basis data, proses komunikasi, dan pengeluaran (output)
untuk meningkatkan kegunaan. 9
Peranan & Fungsi Sistem
Operasi
5. Sebagai Coordinator : menyediakan fasilitas sehingga
aktivitas yang kompleks dapat diatur untuk dikerjakan
dalam urutan yang telah disusun sebelumnya.
6. Sebagai Program Controller program pengontrol yaitu
program yang digunakan untuk mengontrol program
aplikasi lainnya.
7. Sebagai Server: untuk menyediakan layanan yang
sering dibutuhkan pengguna, baik secara eksplisit
maupun implisit, seperti mekanisme akses file, fasilitas
interupt.
8. Sebagai Accountant: mengatur waktu CPU (CPU time),
penggunaan memori, pemanggilan perangkat I/O
(masukan/keluaran), disk storage dan waktu koneksi
terminal. 10
Peranan & Fungsi Sistem
Operasi
9. Sebagai interface (antar muka) yang menjembatani
pengguna dengan perangkat keras, menyediakan
lingkungan yang bersahabat dan mudah digunakan
(User Friendly). Sehingga pengguna tidak dirumitkan
oleh bahasa mesin atau perangkat level bawah
10. Sistem resources manager : yaitu sebagai pengelola
seluruh sumber daya sistem komputer.
11. Sebagai Virtual Machine, yang menyediakan layanan
seperti menyembunyikan kompleksitas pemrograman
dan menyajikan fasilitas yang lebih mudah untuk
menggunakan hardware.

11
Arsitektur Sistem
Operasi
Arsitektur perangkat lunak adalah merupakan
struktur-struktur yang menjadikan landasan untuk
menentukan keberadaan komponen-komponen
perangkat lunak, metode atau cara untuk mengelola
(organisasi) komponen- komponen tersebut untuk
saling berinteraksi. Komponen tersebut merupakan
program-program bagian (prosedur, fungsi) yang
akan dieksekusi oleh program utama.

12
Arsitektur Sistem Operasi
Arsitektur system operasi adalah merupakan
arsitektur perangkat lunak yang digunakan
untuk membangun suatu perangkat lunak sistem
operasi yang akan digunakan dalam sistem
komputer. Perkembangan arsitktur system
operasi modern ini semakin komplek dan rumit
sehingga memerlukan sistem operasi yang
dirancang dengan sangat hati-hati, cermat dan
tepat agar dapat berfungsi secara optimum dan
mudah untuk dimodifikasi.

13
Ragam Arsitektur Sistem
Operasi
1. Sistem Monolitik
2. Sistem Berlapis
3. Sistem Mesin Virtual
4. Sistem Client Server
5. Sistem Berorientasi Objek

14
1. Sistem Monolitik
Merupakan struktur sistem operasi sederhana yang
dilengkapi
dengan operasi “dual” pelayanan{sistem call} yang
diberikan
oleh sistem operasi. Model system call dilakukan dengan
cara
mengambil sejumlah parameter pada tempat yang telah
ditentukan sebelumnya, seperti register atau stack dan
kemudian mengeksekusi suatu intruksi trap tertentu pada
monitor mode.
Pada model ini, tiap-tiap sistem call memiliki satu service
prosedur. Ulitity prosedur mengerjakan segala sesuatu
yang dibutuhkan oleh beberapa service prosedure, seperti
mengambil data dari user program
15
1. Sistem Monolitik
Mekanisme dan prinsip kerja model struktur monolitik
sistem operasi ini adalah sebagai berikut:
User program melakukan “trap” pada karnel
Intruksi berpindah dari user mode ke monitor
mode dan mentransfer control ke sistem operasi.
Sistem operasi mengecek parameter-parameter dari
pemanggilan tersebut, untuk menentukan sistem call
mana yang memanggil.
Sistem operasi menunjuk ke suatu table yang berisi slot
ke-k yang menunjuk sistem call K (Kontrol).
Kontrol akan dikembalikan kepada user program, jika
sistem call telah selesai mengerjakan tugasnya.
16
2 Sistem Berlapis
Teknik pendekatan struktur sistem berlapis sistem operasi
pada dasarnya dibuat menggunakan pendekatan top-down,
semua fungsi ditentukan dan dibagi menjadi komponen
komponen. Modularisasi sistem dilakukan dengan cara
memecah sistem operasi menajdi beberapa lapis (tingkat).
Lapisan terendah (layer 0) adalah perangkat keras dan lapisan
teratas (layer N) adalah user interface. Dengan system
modularisasi, setiap lapisan mempunyai fungsi (operasi)
tertentu dan melayani lapisan yang lebih rendah.
Pada dasarnya system operasi berlapis dimaksudkan untuk
mengurangi kompleknya rancangan dan implementasi dari
suatu system operasi. Contoh sistem operasi yang
menggunakan sistem ini adalah: UNIX termodifikasi, THE,
Venus dan OS/2

17
2 Sistem Berlapis

18
3. Sistem Mesin Virtual
Konsep dasar dari mesin virtual ini tidak jauh berbeda dengan
pendekatan sistem terlapis dengan tambahan berupa antarmuka
yang menghubungkan perangkat keras dengan kernel untuk tiap-
tiap proses. Mesin virtual menyediakan antar muka yang identik
untuk perangkat keras yang ada. Sistem operasi ini membuat ilusi
atau virtual untuk beberapa proses, masing-masing virtual proses
mengeksekusi prosessornya dan memorinya (virtual) masing
masing.
Teknik ini berkembang menjadi sistem operasi emulator, shingga
system operasi dapat menjalankan aplikasi-aplikasi untuk system
operasi lain. Sistem operasi MS-Windows NT dapat menjalankan
aplikasi untuk MS-DOS, OS/2 mode teks dan aplikasi Win16.
aplikasi tersebut dijalankan sebagai input bagi subsistem di MS-
Windows NT yang mengemulasikan system calls yang di- panggil
aplikasi dengan Win32 API ( Sistem Call di MS-Windows NT).

19
4. Sistem Client Server
Sistem Operasi merupakan proses, dalam hal ini
proses-proses dikategorikan menjadi server &client
yang saling berinteraksi
- Server adalah proses yang menyediakan layanan
- Client adalah proses yang memerlukan / meminta
layanan
Dengan arsitektur client/server, kode dapat diangkat
ke level lebih tinggi sehingga kernel dapat dibuat
sekecil mungkin. Hampir semua tugas diangkat
menjadi proses level pemakai.
Kernel hanya mengatur komunikasi antara
client/server (microkernel)
20
5. Sistem Berorientasi Objek
Layanan Sistem operasi sebagai kumpulan proses untuk
menyelesaikan pekerjaannya, yang sering disebut dengan
system operasi bermodel proses, sedangkan layanan system
operasi sebagai objek disebut dengan system operasi
berorentasi objek. Pendekatan objek dimaksudkan untuk
mengadopsi keunggulan dari teknolgi berorientasi objek.
Pada system operasi berorientasi objek, layanan
diimplementasikan sebagai kumpulan objek, masing-
masing objek diberi tipe yang menandai property objek
seperti proses, dirktori, berkas, dan sebagainya. Dengan
memanggil operasi yang didefinisikan di objek, data yang
berada dalam objek tersebut dapat diakses dan dimodifikasi

21
Arsitektur Sistem Operasi
Windows
Sistem operasi Windows untuk desktop pada mulanya adalah
sebuah sistem operasi sederhana. MS-DOS merupakan
system operasi dasar yang digunakan dan dikembangkan
menjadi Windows 1.0 sampai Windows ME. Selain itu,
Microsoft juga membangun suatu sistem operasi yang
berbeda arsitekturnya dengan MS-DOS, yaitu Windows NT.
Arsitektur windows NT ini menjadi dasar pengembangan
sistem operasi Windows NT 3.1 sampai Windows 8 .

22
Arsitektur Sistem Operasi Windows
(MS-DOS)
Arsitektur sistem operasi MS-DOS menggunakan model
struktur monolitik yang konstruksinya tidak terstruktur.
Dalam arsitektur ini semua komponen sistem operasi
tergabung atau bercampur menjadi satu, semua program
bagian (fungsi, prosedure atau sub rutin) dapat mengakses
program-program lainnya.
Pada sistem operasi MS-DOS, antara aplikasi dan sistem
operasi tidak ada pemisahan yang jelas, yang menyebabkan
mudahnya program-program virus memodifikasi dan merusak
sistem operasi MS-DOS. Program aplikasi memiliki aksea
untuk memodifikasi bagian sistem operasi (program resident,
device driver MS-DOS maupun device driver BIOS).
23
Arsitektur Sistem Operasi Windows
(MS-DOS)

24
Arsitektur Sistem Operasi Windows
(Windows NT)

Sistem operasi windows NT memiliki menggunakan


model struktur berlapis (layered). Dalam arsitektur ini
komponen dalam sistem operasi tidak tergantung dari
komponen yang lain, dengan demikian modifikasi atau
perubahan dalam satu komponen tidak berpengaruh
banyak pada komponen lainnya. Arsitektur Windows
NT secara global terdidi dari empat lapisan yaitu: 1.
Hardware abstraction layer (HAL) 2. Kernel 3.
Subsystems 4. System services

25
Arsitektur Sistem Operasi Windows
(Windows NT)

26
Arsitektur Sistem Operasi Windows
(Windows NT)

Hardware Abstraction Layer (HAL), lapisan ini


memetakan perintah dan tanggapan perangkat keras generik
menjadi perintah dan tanggapan unik platform tertentu
seperti Intel 486 atau Pentium, Motorola PowerPC, atau
DEC Alpha. HAL membuat machine system bus, DMA
controller, interrupt controller, system timer, dan modul
memori. Sebagai mana oleh kernel HAL juga menyediakan
dukungan untuk symmetric multiprocessing
Kernel, lapisan ini berisi komponen-komponen sistem
operasi paling dasar. Kernel mengelola penjadwalan dan
context switching, exception handling dan interrupt
handling serta multiprocessing synchronization.
27
Arsitektur Sistem Operasi Windows
(Windows NT)

Subsystems, lapisan ini terdiri dari berbagai ragam modul,


fungsi-fungsi spesifik yang menggunakan layanan-layanan
dasar yang disediakan kernel.

System services, lapisan ini menyediakan antarmuka ke


perangkat lunak mode pemakai.

28
Arsitektur Sistem Operasi Windows
Vista, Windows 7, 8

Sistem operasi Windows memiliki arsitektur yang sangat


modular. Setiap fungsi sistem dikelola oleh satu
komponen dari sistem operasi. Semua aplikasi
mengakses fungsi melalui komponen yang bertanggung
jawab menggunakan antar muka data standar (data
standar interfaces). Key sistem hanya dapat diakses
melalui sesuai fungsi. dalam arsitektur modular ini pada
prinsipnya setiap modul dapat dihapus, upgrade, atau
diganti tanpa menulis ulang seluruh sistem atau standar
aplikasi program antarmuka (API).

29
Arsitektur Sistem
Operasi

30
Arsitektur Sistem Operasi Windows
Vista, Windows 7, 8

Kernel : Mengontrol eksekusi prosesor (s). Kernel mengelola


benang penjadwalan, proses switching, pengecualian dan
penanganan interupsi, dan multiprosesor sinkronisasi. Tidak
seperti sisa Eksekutif dan tingkat pengguna, kode sendiri
Kernel ini tidak berjalan di thread.
Device Driver : Perpustakaan dinamis yang memperluas
fungsionalitas dari Eksekutif. Ini termasuk driver perangkat
keras yang menerjemahkan pengguna I / O fungsi panggilan
ke perangkat hardware tertentu I / O permintaan dan
komponen perangkat lunak untuk menerapkan sistem file,
protokol jaringan, dan setiap ekstensi sistem lainnya yang
perlu dijalankan dalam mode kernel.

31
Arsitektur Sistem Operasi Windows
Vista, Windows 7, 8

Executive : Berisi dasar layanan sistem operasi, seperti


manajemen memori, proses dan manajemen thread,
keamanan, I / O, dan komunikasi interprocess
Hardware Abstraction Layer (HAL) : Maps antara perintah
hardware generic dan tanggapan dan mereka yang unik untuk
platform tertentu. Ini mengisolasi OS dari platform-spesifik
hardware differences.The HAL membuat setiap computer
sistem bus, memori akses langsung (DMA) controller,
interrupt controller, system timer, dan modul memori terlihat
sama dengan Eksekutif dan Kernel komponen. Hal ini juga
memberikan dukungan yang diperlukan untuk
multiprocessing simetris (SMP), menjelaskan selanjutnya.
32
Arsitektur Sistem Operasi Windows
Vista, Windows 7, 8

Windowing and Graphics System : Mengimplementasikan


pengguna grafis antarmuka (GUI) fungsi, seperti berurusan
dengan windows, antarmuka pengguna kontrol, dan
menggambar. Executive Windows termasuk komponen untuk
fungsi sistem tertentu dan menyediakan API bagi pengguna-
mode software.

33
Arsitektur Sistem Operasi
Windows Vista, Windows 7, 8
MODUL EXECUTIVE
• I/O Manager • Security Reference
• Cache Manager Monitor
• Object Manager • Virtual Memory
• Plug and Play Manager
Manager • Process/thread
• Power Manager. Manager
• Configuration
Manager 34
Referensi
• Buku Sistem Operasi Revisi Kelima , Dr.
Bambang Hariyanto, 2012

35
Manajemen Proses
KONSEP PROSES
Secara informal;
 proses adalah program dalam eksekusi.
 Suatu proses adalah lebih dari kode program, dimana
kadang kala dikenal sebagai bagian tulisan.
 Proses juga termasuk aktivitas yang sedang terjadi,
sebagaimana digambarkan oleh nilai pada program
counter dan isi dari daftar prosesor/ processor's register.
 Suatu proses umumnya juga termasuk process stack,
yang berisikan data temporer (seperti parameter
metoda, address yang kembali, dan variabel lokal) dan
sebuah data section, yang berisikan variabel global.
KONSEP PROSES
 program itu sendiri bukanlah sebuah proses; suatu program
adalah satu entitas pasif; seperti isi dari sebuah berkas
yang disimpan didalam disket, sebagaimana sebuah proses
dalam suatu entitas aktif, dengan sebuah program counter
yang mengkhususkan pada instruksi selanjutnya untuk
dijalankan dan seperangkat sumber daya/ resource yang
berkenaan dengannya.
 Walau dua proses dapat dihubungkan dengan program
yang sama, program tersebut dianggap dua urutan eksekusi
yang berbeda. Sebagai contoh, beberapa pengguna dapat
menjalankan copy yang berbeda pada mail program, atau
pengguna yang sama dapat meminta banyak copy dari
program editor. Tiap-tiap proses ini adakah proses yang
berbeda dan walau bagian tulisan-text adalah sama, data
section bervariasi. Juga adalah umum untuk memiliki proses
yang menghasilkan banyak proses begitu ia bekerja.
STATUS PROSES
 Ketika proses bekerja, maka proses tersebut merubah state (keadaan
statis/ asal). Status dari sebuah proses didefinisikan dalam bagian oleh
aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu
dari keadaan berikut ini:
1. New: Proses sedang dikerjakan/ dibuat.
2. Running: Instruksi sedang dikerjakan.
3. Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi
(seperti sebuah penyelesaian I/O atau penerimaan sebuah tanda/
signal).
4. Ready: Proses sedang menunggu untuk ditugaskan pada sebuah
prosesor.
5. Terminated: Proses telah selsesai melaksanakan tugasnya/
mengeksekusi.

 Istilah-istilah tersebut adalah arbitrer/ berdasar opini, istilah tersebut


bervariasi disepanjang sistem operasi. Keadaan yang mereka gambarkan
ditemukan pada seluruh sistem. Namun, sistem operasi tertentu juga lebih
baik menggambarkan keadaan/ status proses. Adalah penting untuk
menyadari bahwa hanya satu proses dapat berjalan pada prosesor mana
pun pada waktu kapan pun. Namun, banyak proses yang dapat ready atau
STATUS PROSES

Ilustrasi Status Proses


Process Control Block
 Tiap proses digambarkan dalam sistem operasi oleh
sebuah process control block (PCB) - juga disebut sebuah
control block.
 PCB berisikan banyak bagian dari informasi yang
berhubungan dengan sebuah proses yang spesifik, yaitu :
1. Keadaan proses: Keadaan mungkin, new, ready, running, waiting,
halted, dan juga banyak lagi.
2. Program counter: Counter mengindikasikan address dari perintah
selanjutnya untuk dijalankan untuk proses ini.
3. CPU register: Register bervariasi dalam jumlah dan jenis,
tergantung pada rancangan komputer. Register tersebut termasuk
accumulator, index register, stack pointer, general-puposes
register, ditambah code information pada kondisi apa pun.
Besertaan dengan program counter, keadaan/ status informasi
harus disimpan ketika gangguan terjadi, untuk memungkinkan
proses tersebut berjalan/ bekerja dengan benar setelahnya.
Process Control Block
Informasi managemen memori: Informasi ini dapat termasuk
4.
suatu informasi sebagai nilai dari dasar dan batas register, tabel
page/ halaman, atau tabel segmen tergantung pada sistem
memori yang digunakan oleh sistem operasi.
5. Informasi pencatatan: Informasi ini termasuk jumlah dari CPU
dan waktu riil yang digunakan, batas waktu, jumlah akun,
jumlah job atau proses, dan banyak lagi.
6. Informasi status I/O: Informasi termasuk daftar dari perangkat
I/O yang di gunakan pada proses ini, suatu daftar open berkas
dan banyak lagi.

 PCB hanya berfungsi sebagai tempat menyimpan/


gudang untuk informasi apa pun yang dapat bervariasi
dari prose ke proses.
Process Control Block

Ilustrasi PCB Ilustrasi di Register CPU


KONSEP PENJADUALAN
 Tujuan dari multiprogramming adalah untuk memiliki
sejumlah proses yang berjalan pada sepanjang waktu,
untuk memaksimalkan penggunaan CPU. Tujuan dari
pembagian waktu adalah untuk mengganti CPU diantara
proses-proses yang begitu sering sehingga pengguna
dapat berinteraksi dengan setiap program sambil CPU
bekerja. Untuk sistem uniprosesor, tidak akan ada lebih
dari satu proses berjalan. Jika ada proses yang lebih
dari itu, yang lainnya akan harus menunggu sampai
CPU bebas dan dapat dijadualkan kembali.
1. Penjadualan Antrian
 Ketika proses memasuki sistem, mereka diletakkan dalam antrian
job. Antrian ini terdiri dari seluruh proses dalam sistem. Proses yang
hidup pada memori utama dan siap dan menunggu/ wait untuk
mengeksekusi disimpan pada sebuah daftar bernama ready queue.
Antrian ini biasanya disimpan sebagai daftar penghubung. Sebuah
header ready queue berisikan penunjuk kepada PCB-PCB awal dan
akhir. Setiap PCB memiliki pointer field yang menunjukkan proses
selanjutnya dalam ready queue.
 Juga ada antrian lain dalam sistem. Ketika sebuah proses
mengalokasikan CPU, proses tersebut berjalan/bekerja sebentar lalu
berhenti, di interupsi, atau menunggu suatu kejadian tertentu, seperti
penyelesaian suatu permintaan I/O. Pada kasus ini sebuah
permintaan I/O, permintaan seperti itu mungkin untuk sebuah tape
drive yang telah diperuntukkan, atau alat yang berbagi, seperti disket.
Karena ada banyak proses dalam sistem, disket bisa jadi sibuk
dengan permintaan I/O untuk proses lainnya. Maka proses tersebut
mungkin harus menunggu untuk disket tersebut. Daftar dari proses
yang menunggu untuk peralatan I/O tertentu disebut sebuah device
queue. Tiap peralatan memiliki device queuenya sendiri
1. Penjadualan Antrian
1. Penjadualan Antrian
 Reprensentasi umum untuk suatu diskusi mengenai
penjadualan proses adalah diagram antrian. Setiap kotak segi
empat menunjukkan sebuah antrian. Dua tipe antrian
menunjukan antrian yang siap dan suatu perangkat device
queues. Lingkaran menunjukkan sumber-sumber yang
melayani sistem. Sebuah proses baru pertama-tama ditaruh
dalam ready queue. Lalu menunggu dalam ready queue
sampai proses tersebut dipilih untuk dikerjakan/lakukan atau di
dispatched. Begitu proses tersebut mengalokasikan CPU dan
menjalankan/ mengeksekusi, satu dari beberapa kejadian
dapat terjadi.
1. Proses tersebut dapat mengeluarkan sebuah permintaan
I/O, lalu di tempatkan dalam sebuah antrian I/O.
2. Proses tersebut dapat membuat subproses yang baru dan
menunggu terminasinya sendiri.
3. Proses tersebut dapat digantikan secara paksa dari CPU,
sebagai hasil dari suatu interupsi, dan diletakkan kembali
dalam ready queue.
1. Penjadualan Antrian
2. Penjadualan
 Sebuah proses berpindah antara berbagai penjadualan antrian
selama umur hidupnya. Sistem operasi harus memilih, untuk
keperluan penjadualan, memproses antrian-antrian ini dalam
cara tertentu. Pemilihan proses dilaksanakan oleh penjadual
yang tepat/ cocok. Dalam sistem batch, sering ada lebih
banyak proses yang diserahkan daripada yang dapat
dilaksanakan segera. Proses ini dipitakan/ disimpan pada
suatu alat penyimpan masal (biasanya disket), dimana proses
tersebut disimpan untuk eksekusi dilain waktu. Penjadualan
long term, atau penjadual job, memilih proses dari pool ini dan
mengisinya kedalam memori eksekusi.
 Sebuah proses dapat mengeksekusi untuk hanya beberapa
milidetik sebelum menunggu permintaan I/O. Seringkali,
penjadualan shorterm mengeksekusi paling sedikit sekali
setiap 100 milidetik. Karena durasi waktu yang pendek antara
eksekusi, penjadualan shorterm haruslah cepat. Jika
memerlukan 10 mili detik untuk menentukan suatu proses
eksekusi selama 100 mili detik, maka 10/(100 + 10) = 9 persen
CPU sedang digunakan (terbuang) hanya untuk pekerjaan
penjadualan.
2. Penjadualan
 Penjadualan longterm pada sisi lain, mengeksekusi jauh
lebih sedikit. Mungkin ada beberapa menit antara
pembuatan proses baru dalam sistem. Penjadualan
longterm mengkontrol derajat multiprogramming (jumlah
proses dalam memori). Jika derajat multiprogramming
stabil, lalu tingkat rata-rata dari penciptaan proses harus
sama dengan tingkat kepergian rata rata dari proses yang
meninggalkan sistem. Maka penjadualan longterm
mungkin diperlukan untuk dipanggil hanya ketika suatu
proses meninggalkan sistem. Karena interval yang lebih
panjang antara eksekusi, penjadualan longterm dapat
memakai waktu yang lebih lama untuk menentukan
proses mana yang harus dipilih untuk dieksekusi.
2. Penjadualan
 Adalah penting bagi penjadualan longterm membuat seleksi
yang hati-hati. Secara umum, kebanyakan proses dapat
dijelaskan sebagai I/O bound atau CPU bound. Sebuah proses
I/O bound adalah salah satu yang membuang waktunya untuk
mengerjakan I/O dari pada melakukan perhitungan. Suatu
proses CPU-bound, pada sisi lain, adalah salah satu yang
jarang menghasilkan permintaan I/O, menggunakan lebih
banyak waktunya melakukan banyak komputasi daripada yang
digunakan oleh proses I/O bound. Penting untuk penjadualan
longterm memilih campuran proses yang baik antara proses
I/O bound dan CPU bound. Jika seluruh proses adalah I/O
bound, ready queue akan hampir selalu kosong, dan
penjadualan short term akan memiliki sedikit tugas. Jika
seluruh proses adalah CPU bound, I/O waiting queue akan
hampir selalu kosong, peralatan akan tidak terpakai, dan
sistem akan menjadi tidak imbang. Sistem dengan kinerja
yang terbaik akan memiliki kombinasi proses CPU bound dan
I/O bound.
2. Penjadualan

Ilustrasi Penjadualan Medium-term


2. Penjadualan
 Ide utama/kunci dibelakang sebuah penjadual medium
term adalah kadang kala akan menguntungkan untuk
memindahkan proses dari memori (dan dari pengisian
aktif dari CPU), dan maka untuk mengurangi derajat dari
multiprogramming. Dikemudian waktu, proses dapat
diperkenalkan kedalam memori dan eksekusinya dapat
dilanjutkan dimana proses itu di tinggalkan/ diangkat.
Skema ini disebut swapping. Proses di swapped out, dan
lalu di swapped in, oleh penjadual jangka menengah.
Swapping mungkin perlu untuk meningkatkan
pencampuran proses, atau karena suatu perubahan
dalam persyaratan memori untuk dibebaskan.
3. Alih Konteks
 Mengganti CPU ke proses lain memerlukan penyimpanan suatu
keadaan proses lama (state of old process) dan kemudian beralih ke
proses yang baru. Tugas tersebut diketahui sebagai alih konteks
(context switch). Alih konteks sebuah proses digambarkan dalam
PCB suatu proses; termasuk nilai dari CPU register, status proses
dan informasi managemen memori.

 Ketika alih konteks terjadi, kernel menyimpan konteks dari proses


lama kedalam PCB nya dan mengisi konteks yang telah disimpan
dari process baru yang telah terjadual untuk berjalan. Pergantian
waktu konteks adalah murni overhead, karena sistem melakukan
pekerjaan yang tidak perlu. Kecepatannya bervariasi dari mesin ke
mesin, bergantung pada kecepatan memori, jumlah register yang
harus di copy, dan keberadaan instruksi khusus (seperti instruksi
tunggal untuk mengisi atau menyimpan seluruh register). Tingkat
kecepatan umumnya berkisar antara 1 sampai 1000 mikro detik
3. Alih Konteks

Ilustrasi Alih Konteks


3. Alih Konteks
 Waktu alih konteks sangat begantung pada dukungan
perangkat keras. Sebagai contoh, prosesor seperti
UltraSPARC menyediakan dua rangkap register. Sebuah
alih konteks hanya memasukkan perubahan pointer ke
perangkat register yang ada. Tentu saja, jika ada lebih
proses-proses aktif yang ada dari pada yang ada di
perangkat register, sistem menggunakan bantuan untuk
meng-copy data register pada dan dari memori,
sebagaimana sebelumnya. Semakin sistem operasi
kompleks, makin banyak pekerjaan yang harus
dilakukan selama alih konteks.
OPERASI PADA PROSES
1. Pembuatan Proses
 Secara umum, suatu proses akan memerlukan sumber
tertentu (waktu CPU, memori, berkas, perangkat I/O) untuk
menyelesaikan tugasnya. Ketika suatu proses membuat
sebuah subproses, sehingga subproses dapat mampu untuk
memperoleh sumbernya secara langsung dari sistem operasi.
Induk mungkin harus membatasi sumber diantara anaknya,
atau induk dapat berbagi sebagian sumber (seperti memori
berkas) diantara beberapa dari anaknya. Membatasi suatu
anak proses menjadi subset sumber daya induknya
mencegah proses apa pun dari pengisian sistem yang telalu
banyak dengan menciptakan terlalu banyak subproses.
1. Pembuatan Proses
 Sebagai tambahan pada berbagai sumber fisik dan logis bahwa
suatu proses diperoleh ketika telah dibuat, data pemula (masukan)
dapat turut lewat oleh induk proses sampai anak proses. Sebagai
contoh, anggap suatu proses yang fungsinya untuk menunjukkan
status sebuah berkas, katakan F1, pada layar terminal. Ketika
dibuat, akan menjadi sebagai sebuah masukan dari proses
induknya, nama dari berkas F1, dan akan mengeksekusi
menggunakan kumpulan data tersebut untuk memperoleh informasi
yang diinginkan. Proses tersebut juga mendapat nama dari
perangkat luar. Sebagian sistem operasi melewati sumber-sumber
ke anak proses. Pada sistem tersebut, proses baru bisa mendapat
dua berkas terbuka yang baru, F1 dan perangkat terminal dan
hanya perlu untuk mentransfer data antara kedua berkas tersebut.
1. Pembuatan Proses
 Ketika suatu proses membuat proses baru, dua
kemungkinan ada dalam term eksekusi:
1. Induk terus menerus untuk mengeksekusi secara bersama-sama
dengan anaknya.
2. Induk menunggu sampai sebagian dari anaknya telah
diakhiri/terminasi.
 Juga ada dua kemungkinan dalam term dari address
space pada proses baru:
1. Anak proses adalah duplikat dari induk proses.
2. Anak proses memiliki program yang terisikan didalamnya.
2. Penghentian Proses
 Sebuah proses berakhir ketika proses tersebut selesai mengeksekusi
pernyataan akhirnya dan meminta sistem operasi untuk menghapusnya
dengan menggunakan sistem pemanggilan exit. Pada titik itu, proses
tersebut dapat mengembalikan data (keluaran) pada induk prosesnya
(melalui sistem pemanggilan wait) Seluruh sumber-sumber dari proses-
termasuk memori fisik dan virtual, membuka berkas, dan penyimpanan I/O
di tempatkan kembali oleh sistem operasi.
 Ada situasi tambahan tertentu ketika terminasi terjadi. Sebuah proses dapat
menyebabkan terminasi dari proses lain melalui sistem pemanggilan yang
tepat (contoh abort). Biasanya, sistem seperti itu dapat dipanggil hanya oleh
induk proses tersebut yang akan diterminasi. Bila tidak, pengguna dapat
secara sewenang-wenang membunuh job antara satu sama lain. Catat
bahwa induk perlu tahu identitas dari anaknya. Maka, ketika satu proses
membuat proses baru, identitas dari proses yang baru diberikan kepada
induknya.
2. Penghentian Proses
 Induk dapat menterminasi/ mengakhiri satu dari anaknya untuk
beberapa alasan, seperti:
1. Anak telah melampaui kegunaannya atas sebagaian sumber yang telah
diperuntukkan untuknya.
2. Pekerjaan yang ditugaskan kepada anak telah keluar, dan sistem operasi
tidak memeperbolehkan sebuah anak untuk meneruskan jika induknya
berakhir.
 Untuk menentukan kasus pertama, induk harus memiliki
mekanisme untuk memeriksa status anaknya. Banyak sistem,
termasuk VMS, tidak memperbolehkan sebuah anak untuk ada
jika induknya telah berakhir. Dalam sistem seperti ini, jika suatu
proses berakhir (walau secara normal atau tidak normal), maka
seluruh anaknya juga harus diterminasi. Fenomena ini, mengacu
pada terminasi secara cascading, yang normalnya dimulai oleh
sistem operasi.
2. Penghentian Proses
 Untuk mengilustrasikan proses eksekusi dan proses terminasi, kita
menganggap bahwa, dalam UNIX, kami dapat mengakhiri suatu
proses dengan sistem pemanggilan exit; proses induknya dapat
menunggu untuk terminasi anak proses dengan menggunakan
sistem pemanggilan wait. Sistem pemanggilan wait kembali ke
pengidentifikasi proses dari anak yang telah diterminasi, maka induk
dapat memberitahu kemungkinanan anak mana yang telah
diterminasi. Jika induk menterminasi. Maka, anaknya masih punya
sebuah induk untuk mengumpulkan status mereka dan
mengumpulkan statistik eksekusinya.
HUBUNGAN ANTAR PROSES
1. Proses Kooperatif
 Proses yang bersifat simultan (concurrent) dijalankan pada sistem
operasi dapat dibedakan menjadi yaitu proses independent dan
proses kooperatif.
 Suatu proses dikatakan independen apabila proses tersebut
tidak dapat terpengaruh atau dipengaruhi oleh proses lain yang
sedang dijalankan pada sistem. Berarti, semua proses yang
tidak membagi data apa pun (baik sementara/ tetap) dengan
proses lain adalah independent.
 Sedangkan proses kooperatif adalah proses yang dapat
dipengaruhi atau pun terpengaruhi oleh proses lain yang sedang
dijalankan dalam sistem. Dengan kata lain, proses dikatakan
kooperatif bila proses dapat membagi datanya dengan proses
lain.
HUBUNGAN ANTAR PROSES
Syarat lingkungan yang memperbolehkan terjadinya proses
kooperatif:

1. Pembagian informasi: apabila beberapa pengguna dapat


tertarik pada bagian informasi yang sama (sebagai contoh,
sebuah berkas bersama), kita harus menyediakan sebuah
lingkungan yang mengizinkan akses secara terus menerus
ke tipe dari sumber-sumber tersebut.
2. Kecepatan penghitungan/ komputasi: jika kita
menginginkan sebuah tugas khusus untuk menjalankan
lebih cepat, kita harus membagi hal tersebut ke dalam
subtask, setiap bagian dari subtask akan dijalankan secara
parallel dengan yang lainnya. Peningkatan kecepatan
dapat dilakukan hanya jika komputer tersebut memiliki
elemen-elemen pemrosesan ganda (seperti CPU atau jalur
I/O).
HUBUNGAN ANTAR PROSES
Syarat lingkungan yang memperbolehkan terjadinya proses
kooperatif (lanjutan):

3. Modularitas: kita mungkin ingin untuk membangun


sebuah sistem pada sebuah model modular-
modular, membagi fungsi sistem menjadi
beberapa proses atau threads.
4. Kenyamanan: bahkan seorang pengguna individu
mungkin memiliki banyak tugas untuk dikerjakan
secara bersamaan pada satu waktu. Sebagai
contoh, seorang pengguna dapat mengedit,
memcetak, dan meng-compile secara paralel.
HUBUNGAN ANTAR PROSES
2. Komunikasi Proses Dalam Sistem

 Cara lain untuk meningkatkan efek yang sama adalah untuk sistem
operasi yaitu untuk menyediakan alat-alat proses kooperatif untuk
berkomunikasi dengan yang lain lewat sebuah komunikasi dalam
proses (IPC = Inter-Process Communication).
 IPC menyediakan sebuah mekanisme untuk mengizinkan proses-
proses untuk berkomunikasi dan menyelaraskan aksi-aksi mereka
tanpa berbagi ruang alamat yang sama.
 IPC adalah khusus digunakan dalam sebuah lingkungan yang
terdistribusi dimana proses komunikasi tersebut mungkin saja tetap
ada dalam komputer-komputer yang berbeda yang tersambung dalam
sebuah jaringan.
 IPC adalah penyedia layanan terbaik dengan menggnakan sebuah
sistem penyampaian pesan, dan sistem-sistem pesan dapat diberikan
dalam banyak cara.
HUBUNGAN ANTAR PROSES
2.1. Sistem Penyampaian Pesan

 Fungsi dari sebuah sistem pesan adalah untuk


memperbolehkan komunikasi satu dengan yang lain tanpa
perlu menggunakan pembagian data.
 Sebuah fasilitas IPC menyediakan paling sedikit dua
operasi yaitu kirim (pesan) dan terima (pesan).
 Pesan dikirim dengan sebuah proses yang dapat
dilakukan pada ukuran pasti atau variabel. Jika hanya
pesan dengan ukuran pasti dapat dikirimkan, level sistem
implementasi adalah sistem yang sederhana.
 Pesan berukuran variabel menyediakan sistem
implementasi level yang lebih kompleks.
HUBUNGAN ANTAR PROSES
2.2. Metode untuk mengimplementasikan sebuah
jaringan dan operasi pengiriman/ penerimaan
secara logika:

1. Komunikasi langsung atau tidak langsung.


2. Komunikasi secara simetris/ asimetris.
3. Buffer otomatis atau eksplisit.
4. Pengiriman berdasarkan salinan atau referensi.
5. Pesan berukuran pasti dan variabel.
HUBUNGAN ANTAR PROSES
2.2.1. Komunikasi Langsung

 Proses-proses yang ingin dikomunikasikan harus memiliki


sebuah cara untuk memilih satu dengan yang lain. Mereka
dapat menggunakan komunikasi langsung/ tidak langsung.
 Setiap proses yang ingin berkomunikasi harus memiliki
nama yang bersifat eksplisit baik penerimaan atau
pengirim dari komunikasi tersebut. Dalam konteks ini,
pengiriman dan penerimaan pesan secara primitive dapat
dijabarkan sebagai:
1. Send (P, message) - mengirim sebuah pesan ke
proses P.
2. Receive (Q, message) - menerima sebuah pesan
dari proses Q.
HUBUNGAN ANTAR PROSES
2.2.1. Komunikasi Langsung (Lanjutan)

 Sebuah jaringan komunikasi pada bahasan ini memiliki beberapa sifat,


yaitu:
1. Sebuah jaringan yang didirikan secara otomatis diantara setiap pasang dari
proses yang ingin dikomunikasikan. Proses tersebut harus mengetahui identitas
dari semua yang ingin dikomunikasikan.
2. Sebuah jaringan adalah terdiri dari penggabungan dua proses.
3. Diantara setiap pesan dari proses terdapat tepat sebuah jaringan.

 Pembahasan ini memperlihatkan sebuah cara simetris dalam


pemberian alamat. Oleh karena itu, baik keduanya yaitu pengirim dan
penerima proses harus memberi nama bagi yang lain untuk
berkomunikasi, hanya pengirim yang memberikan nama bagi
penerima sedangkan penerima tidak menyediakan nama bagi
pengirim. Dalam konteks ini, pengirim dan penerima secara sederhana
dapat dijabarkan sebagai:
1. Send (P, message) - mengirim sebuah pesan kepada proses P.
2. Receive (id, message) - menerima sebuah pesan dari semua proses. Variabel
id diatur sebagai nama dari proses dengan komunikasi.
HUBUNGAN ANTAR PROSES
2.2.2. Komunikasi Tidak Langsung

 Dengan komunikasi tidak langsung, pesan akan dikirimkan pada dan


diterima dari/ melalui mailbox (kotak surat) atau terminal-terminal,
sebuah mailbox dapat dilihat secara abstrak sebagai sebuah objek
didalam setiap pesan yang dapat ditempatkan dari proses dan dari
setiap pesan yang bias dipindahkan.
 Setiap kotak surat memiliki sebuah identifikasi (identitas) yang unik,
sebuah proses dapat berkomunikasi dengan beberapa proses lain
melalui sebuah nomor dari mailbox yang berbeda.
 Dua proses dapat saling berkomunikasi apabila kedua proses tersebut
sharing mailbox.
 Pengirim dan penerima dapat dijabarkan sebagai:
1. Send (A, message) - mengirim pesan ke mailbox A.
2. Receive (A, message) - menerima pesan dari mailbox A.
HUBUNGAN ANTAR PROSES
2.2.2. Komunikasi Tidak Langsung (Lanjutan)
 Dalam masalah ini, link komunikasi mempunyai sifat sebagai berikut:
1. Sebuah link dibangun diantara sepasang proses dimana kedua proses tersebut
membagi mailbox.
2. Sebuah link mungkin dapat berasosiasi dengan lebih dari dua proses.
3. Diantara setiap pasang proses komunikasi, mungkin terdapat link yang
berbeda-beda, dimana setiap link berhubungan pada satu mailbox.
 Misalkan terdapat proses P1, P2 dan P3 yang semuanya share
mailbox. Proses P1 mengirim pesan ke A, ketika P2 dan P3 masing-
masing mengeksekusi sebuah kiriman dari A. Proses mana yang akan
menerima pesan yang dikirim P1? Jawabannya tergantung dari jalur
yang kita pilih:
1. Mengizinkan sebuah link berasosiasi dengan paling banyak 2 proses.
2. Mengizinkan paling banyak satu proses pada suatu waktu untuk mengeksekusi
hasil kiriman (receive operation).
3. Mengizinkan sistem untuk memilih secara mutlak proses mana yang akan
menerima pesan (apakah itu P2 atau P3 tetapi tidak keduanya, tidak akan
menerima pesan). Sistem mungkin mengidentifikasi penerima kepada pengirim.
HUBUNGAN ANTAR PROSES
2.2.2. Komunikasi Tidak Langsung (Lanjutan)
 Mailbox mungkin dapat dimiliki oleh sebuah proses atau sistem operasi. Jika
mailbox dimiliki oleh proses, maka kita mendefinisikan antara pemilik (yang
hanya dapat menerima pesan melalui mailbox) dan pengguna dari mailbox (yang
hanya dapat mengirim pesan ke mailbox).
 Selama setiap mailbox mempunyai kepemilikan yang unik, maka tidak akan ada
kebingungan tentang siapa yang harus menerima pesan dari mailbox. Ketika
proses yang memiliki mailbox tersebut diterminasi, mailbox akan hilang. Semua
proses yang mengirim pesan ke mailbox ini diberi pesan bahwa mailbox tersebut
tidak lagi ada. Dengan kata lain, mempunyai mailbox sendiri yang independent,
dan tidak melibatkan proses yang lain. Maka sistem operasi harus memiliki
mekanisme yang mengizinkan proses untuk melakukan hal-hal dibawah ini:
1. Membuat mailbox baru.
2. Mengirim dan menerima pesan melalui mailbox.
3. Menghapus mailbox.
 Proses yang membuat mailbox pertama kali secara default akan memiliki mailbox
tersebut. Untuk pertama kali, pemilik adalah satu-satunya proses yang dapat
menerima pesan melalui mailbox ini.
HUBUNGAN ANTAR PROSES
3. Sinkronisasi
 Komunikasi antara proses membutuhkan place by calls untuk
mengirim dan menerima data primitive. Terdapat rancangan yang
berbeda-beda dalam implementasi setiap primitive. Pengiriman pesan
mungkin dapat diblok (blocking) atau tidak dapat dibloking
(nonblocking) - juga dikenal dengan nama sinkron atau asinkron.
1. Pengiriman yang diblok: Proses pengiriman di blok sampai
pesan diterima oleh proses penerima (receiving process) atau
oleh mailbox.
2. Pengiriman yang tidak diblok: Proses pengiriman pesan dan
mengkalkulasi operasi.
3. Penerimaan yang diblok: Penerima mem blok samapai pesan
tersedia.
4. Penerimaan yang tidak diblok: Penerima mengembalikan pesan
valid atau null.
HUBUNGAN ANTAR PROSES
4. Buffering
 Baik komunikasi itu langsung atau tak langsung, penukaran pesan
oleh proses memerlukan antrian sementara. Pada dasarnya, terdapat
tiga jalan dimana antrian tersebut diimplementasikan:
1. Kapasitas nol: antrian mempunyai panjang maksimum 0, maka link tidak
dapat mempunyai penungguan pesan (message waiting). Dalam kasus ini,
pengirim harus memblok sampai penerima menerima pesan.
2. Kapasitas terbatas: antrian mempunyai panjang yang telah ditentukan,
paling banyak n pesan dapat dimasukkan. Jika antrian tidak penuh ketika
pesan dikirimkan, pesan yang baru akan menimpa, dan pengirim pengirim
dapat melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas
terbatas. Jika link penuh, pengirim harus memblok sampai terdapat ruang
pada antrian.
3. Kapasitas tak terbatas: antrian mempunyai panjang yang tak
terhingga, maka, semua pesan dapat menunggu disini. Pengirim
tidak akan pernah di blok.
THREAD
 Thread, atau kadang-
kadang disebut proses
ringan (lightweight),
adalah unit dasar dari
utilisasi CPU. Di
dalamnya terdapat ID
thread, program counter,
register, dan stack. Dan
saling berbagi dengan
thread lain dalam proses
yang sama.
THREAD
1. Konsep Dasar
 Secara informal, proses adalah program yang sedang
dieksekusi. Ada dua jenis proses, proses berat
(heavyweight) atau biasa dikenal dengan proses
tradisional, dan proses ringan atau kadang disebut
thread.
 Thread saling berbagi bagian program, bagian data dan
sumber daya sistem operasi dengan thread lain yang
mengacu pada proses yang sama. Thread terdiri atas ID
thread, program counter, himpunan register, dan stack.
Dengan banyak kontrol thread proses dapat melakukan
lebih dari satu pekerjaan pada waktu yang sama.
THREAD
2. Keuntungan
 Tanggap: Multithreading mengizinkan program untuk berjalan terus
walau pun pada bagian program tersebut di block atau sedang
dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai
contoh, multithread web browser dapat mengizinkan pengguna
berinteraksi dengan suatu thread ketika suatu gambar sedang diload
oleh thread yang lain.
 Pembagian sumber daya: Secara default, thread membagi memori
dan sumber daya dari proses. Keuntungan dari pembagian kode
adalah aplikasi mempunyai perbedaan aktifitas thread dengan
alokasi memori yang sama.
THREAD
2. Keuntungan (LANJUTAN)
 Ekonomis: Mengalokasikan memori dan sumber daya untuk
membuat proses adalah sangat mahal. Alternatifnya, karena thread
membagi sumber daya dari proses, ini lebih ekonomis untuk
membuat threads.
 Pemberdayaan arsitektur multiprosesor: Keuntungann dari
multithreading dapat ditingkatkan dengan arsitektur multiprosesor,
dimana setiap thread dapat jalan secara parallel pada prosesor yang
berbeda. Pada arsitektur prosesor tunggal, CPU biasanya
berpindah-pindah antara setiap thread dengan cepat, sehingga
terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu
thread yang berjalan di setiap waktu.
THREAD
3. User thread
 Didukung oleh kernel dan
diimplementasikan oleh thread
library ditingkat pengguna.
Library mendukung untuk User Thread & Kernel Thread
pembentukan thread,
penjadualan, dan managemen
yang tidak didukung oleh kernel.
THREAD
4. Kernel Threads
 Kernel thread didukung secara langsung oleh sistem operasi:
pembentukan thread, penjadualan, dan managemen dilakukan oleh
kernel dalam ruang kernel. Karena managemen thread telah
dilakukan oleh sistem operasi, kernel thread biasanya lebih lambat
untuk membuat dan mengelola daripada pengguna thread.
 Bagaimana pun, selama kernel mengelola thread, jika suatu thread
di block tehadap sistem pemanggilan, kernel dapat menjadualkan
thread yang lain dalam aplikasi untuk dieksekusi. Juga, di dalam
lingkungan multiprosesor, kernel dapat menjadualkan thread dalam
prosesor yang berbeda. Windows NT, Solaris, dan Digital UNIX
adalah sistem operasi yang mendukung kernel thread.
MULTI THREADING
MULTI THREADING
Model Many to One
 Model many-to-one ini memetakan
beberapa tingkatan pengguna thread
hanya ke satu buah kernel thread.
Managemen proses thread dilakukan
oleh (di ruang) pengguna, sehingga
menjadi efisien, tetapi apabila sebuah
thread melakukan sebuah
pemblokingan terhadap sistem
pemanggilan, maka seluruh proses
akan berhenti (blocked). Kelemahan
dari model ini adalah multihreads tidak
dapat berjalan atau bekerja secara
paralel di dalam multiprosesor
dikarenakan hanya satu thread saja
yang bisa mengakses kernel dalam
suatu waktu.
MULTI THREADING
Model One to One

 Model one-to-one memetakan setiap thread


pengguna ke dalam satu kernel thread. Hal
ini membuat model one-to-one lebih sinkron
daripada model many-to-one dengan
mengizinkan thread lain untuk berjalan
ketika suatu thread membuat pemblokingan
terhadap sistem pemanggilan; hal ini juga
mengizinkan multiple thread untuk berjalan
secara parallel dalam multiprosesor.

Kelemahan model ini adalah dalam pembuatan thread pengguna


dibutuhkan pembuatan korespondensi thread pengguna. Karena
dalam proses pembuatan kernel thread dapat mempengaruhi kinerja
dari aplikasi maka kebanyakan dari implementasi model ini
membatasi jumlah thread yang didukung oleh sistem. Model one-to-
one diimplementasikan oleh Windows NT dan OS/2.
MULTI THREADING
Model Many to Many
 Beberapa tingkatan thread pengguna
dapat menggunakan jumlah kernel
thread yang lebih kecil atau sama
dengan jumlah thread pengguna. Jumlah
dari kernel thread dapat dispesifikasikan
untuk beberapa aplikasi dan beberapa
mesin (suatu aplikasi dapat dialokasikan
lebih dari beberapa kernel thread dalam
multiprosesor daripada dalam
uniprosesor) dimana model many-to-one
mengizinkan pengembang untuk
membuat thread pengguna sebanyak
mungkin, konkurensi tidak dapat tercapai
karena hanya satu thread yang dapat Model one-to-one mempunyai
dijadualkan oleh kernel dalam satu konkurensi yang lebih tinggi,
waktu. tetapi pengembang harus hati-
hati untuk tidak membuat
terlalu banyak thread tanpa
aplikasi dan dalam kasus
tertentu mungkin jumlah
thread yang dapat dibuat
dibatasi.
Penjadwalan
Proses
Rachmat Jaenal Abidin, M.T
Materi

1 Deskripsi penjadwalan

2 Kriteria pengukuran penjadwalan

3 Tipe-tipe penjadwalan

4 Strategi Penjadwalan
Pengertian Penjadwalan
Pengertian
• Penjadwalan proses merupakan kumpulan
kebijaksanaan dan mekanisme di sistem
operasi yang berkaitan dengan urutan
kerja yang dilakukan sistem komputer
Pengertian Penjadwalan (lanj)
Adapun penjadwalan bertugas memutuskan:
1. Proses yang harus berjalan
2. Kapan dan berapa lama proses itu
berjalan
Sasaran Penjadwalan
Kriteria-kriteria yang digunakan sebagai
sasaran penjadwalan, meliputi:
1. Adil (fairness)
2. Efisiensi (eficiency)
3. Waktu tanggap (response time)
• Sistem interaktif
• Sistem waktu nyata
4. Turn around time
5. Throughput
1. Adil (fairness)
Adalah proses-proses yang diperlakukan
sama, yaitu mendapat jatah waktu
pemroses yang sama dan tak ada proses
yang tak kebagian layanan pemroses
sehingga mengalami kekurangan waktu.

Sasaran penjadwalan:
Menjamin setiap proses mendapat
pelayanan dari pemroses secara adil.
2. Efisiensi (eficiency)
• Efisiensi atau utilisasi pemroses dihitung dengan
perbandingan (rasio) waktu sibuk pemroses
• Keadaan sibuk berarti pemroses tidak menganggur.
• Layanan pemroses termasuk waktu yang dihabiskan
untuk mengeksekusi program pemakai dan layanan
sistem operasi

Sasaran penjadwalan:
• Menjaga agar pemroses tetap dalam keadaan sibuk
sehingga efisiensi sistem komputer mencapai
maksimum.
3. Waktu tanggap (response time)

Waktu tanggap dalam Sistem Interaktif


Didefinisikan sebagai waktu yang dihabiskan dari saat
karakter terakhir perintah dimasukkan
Atau transaksi sampai hasil pertama muncul di layar
(terminal). Waktu tanggap ini disebut terminal response
time.
Waktu tanggap dalam Sistem waktu nyata (real
time)
Didefinisikan sebagai waktu dari saat kemunculan suatu
kejadian sampai instruksi layanan rutin pertama
terhadap kejadian yang dieksekusi, disebut event
respons time.
3. Waktu tanggap (response time)

Sasaran penjadwalan pada kriteria ini adalah


meminimalkan waktu tanggap sehingga
menghasilkan system yang reponsif
4. Turn Around Time

Adalah waktu yang dihabiskan dari saat program


atau job mulai masuk ke sistem sampai proses
diselesaikan sistem. Waktu yang dimaksud adalah
waktu yang dihabiskan di dalam sistem.

• Turn arround time = waktu eksekusi + waktu


menunggu.
• Sasaran Penjadwalan adalah meminimalkan
turn arround time
5. Throughput

• Adalah jumlah kerja yang dapat diselesaikan


dalam satu unit waktu.
• Cara untuk mengekspresikan throughput adalah
dengan jumlah job pemakai yang dapat
dieksekusi dalam satu unit/interval waktu

Sasaran Penjadwalan:
• Memaksimalkan jumlah job yang diproses
persatu interval waktu.
• Lebih besar angka throughput, lebih banyak
kerja yang dilakukan sistem.
Tipe Penjadwalan (1)

• Terdapat 3 tipe penjadwal berada secara


bersama-sama pada sistem operasi yang
kompleks, yaitu:
1. Penjadwal jangka pendek (short term
scheduller)
2. Penjadwal jangka menengah (medium
term scheduller)
3. Penjadwal jangka panjang (long term
scheduller)
Tipe Penjadwalan (2)

• Penjadwalan jangka pendek (short-


termscheduller)
Penjadwalan ini bertugas menjadwalkan
alokasi pemroses diantara proses-proses
ready di memori utama.
• Penjadwalan jangka menengah
(medium termscheduller )
Penjadwalan jangka menengah adalah
menangani proses-proses swapping
(aktivitas pemindahan proses yang
Penjadwal jangka pendek (short term
scheduller)
• Digunakan untuk memilih diantara proses-
proses yang siap dieksekusi. kemudian
proses tersebut salah satunya
dialokasikan ke CPU
• Short term scheduler juga digunakan
untuk memilih proses baru untuk CPU
• Dan memilih proses berikutnya yang harus
dijalankan.
Penjadwal jangka menengah (medium term
scheduller)
• Proses-proses yang mempunyai kepentingan
kecil saat itu sebagai proses yang tertunda
ataupun tertunda karena memuat layanan I/O
atau memanggil sekumpulan layanan
• Aktivitas pemindahan proses yang tertunda dari
memori utama ke memori sekunder disebut
swapping
Penjadwal jangka menengah (medium term
scheduller)
• Begitu kondisi yang membuatnya tertunda
hilang, proses dimasukkan kembali ke
memori utama dan ready
Penjadwal jangka menengah (medium term
scheduller)
Penjadwal jangka panjang (long term
scheduller)
• Long term scheduller menentukan
program mana yang diakui pada sistem
untuk diproses, kapan dan mana yang
harus dikeluarkan

• Penjadwalan ini bekerja terhadap antrian


batch dan memilih batch berikutnya yang
harus dieksekusi
Penjadwal jangka panjang (long
term scheduller)
• Batch biasanya adalah proses-proses
dengan penggunaan sumber daya yang
intensif (yaitu waktu pemroses, memori,
perangkat input/output)

• Program-program ini berprioritas rendah,


digunakan sebagai pengisi (agar
pemroses sibuk) selama periode aktivitas
job-job interaktif rendah.
Tipe-tipe Penjadwalan
Strategi Penjadwalan
1.Penjadwalan non-preemptive (run to
completion)
Proses diberi jatah waktu oleh pemroses dan
pemroses tidak dapat diambil alih oleh proses
lain sampai proses itu selesai
2.Penjadwalan preemptive
Proses diberi jatah waktu oleh pemroses dan
pemroses dapat diambil alih proses lain.
Sehingga proses disela sebelum selesai dan
harus dilanjutkan menunggu jatah waktu
pemroses tiba kembali pada proses itu
THANKS
 Student:xxxx  Teacher:xxxx
Algoritma Penjadwalan
Algoritma Penjadwalan
Berikut jenis-jenis algoritma berdasarkan
penjadwalan
1. Nonpreemptive
2. Preemtive
Klasifikasi lain berdasarkan adanya prioritas
di proses-proses, yaitu :
1. Algoritma penjadwalan tanpa berprioritas
2. Algoritma penjadwalan berprioritas
Algoritma Penjadwalan
1. Nonpreemptive
 FIFO (First In First Out) atau FCFS (First
Come First Serve)
 SJF (Shortest Job First)
 HRN (Highest Ratio Next)
 MFQ (Multiple Feedback Queues).
Algoritma Penjadwalan
2. Nonpreemptive
 RR (Round Robin)
 SRF (Shortest Remaining First)
 PS (Priority Schedulling)
 GS (Guaranteed Schedulling)
Penjadwalan Non Preemtive
Penjadwalan FIFO (First In First Out) [1]
Merupakan penjadwalan nonpreemptive dan penjadwalan tidak berprioritas.
Penjadwalan FIFO adalah penjadwalan paling sederhana, yaitu :
• Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan
• Saat proses mendapat jatah waktu pemroses, proses dijalankan sampai
selesai

Penjadwalan ini adil yaitu proses yang datang duluan, dilayani duluan juga.
Dikatakan tidak adil karena job-job yang perlu waktu lama membuat job-job
pendek menunggu. Job-job tak penting dapat membuat job-job penting
menunggu.

Contoh Soal:

Jika diketahui 5 macam antrian proses yaitu : A-B-C-D-E dengan waktu


kedatangan semuanya 0 dan prosesor sedang tidak aktif (PP=0), lama
proses berturut-turut antara lain 5,2,6,8,3.
Penjadwalan FIFO (First In First Out) [2]
Penjadwalan FIFO (First In First Out) [3]
Terlihat lama tanggap : 14 Nilai ini cukup besar bila dibanding lama
proses masing2.
Contoh diatas tidak disertai waktu tiba.

Berikut ini adalah contoh dengan waktu tiba yang berbeda:


Penjadwalan FIFO (First In First Out) [4]

Selesai Eksekusi = Mulai Eksekusi + Lama Eksekusi

TA = Selesai Eksekusi - Total Waktu Tiba


Penjadwalan FIFO (First In First Out) [5]
Cara lain untuk mengerjakan
Misal ada tiga proses P1, P2, P3 yang
datang dengan lama waktu kerja CPU
(CPU Burst-time) masing-masing sbb :
Jika proses datang dengan urutan P1, P2,
P3 dan dilayani dengan algoritma FIFO
maka dapat digambarkan Gantt Chart-nya :

Dari Gantt Chart dapat diambil kesimpulan waktu tunggu untuk P1 adalah 0
milidetik, waktu tunggu untuk P2 adalah 24 milidetik, waktu tunggu P3 adalah 27
milidetik. Jadi rata-rata waktu tunggu (Average Waiting Time / AWT) adalah
(0+24+27)/3 = 17 milidetik.
Kemudian jika waktu kedatangan proses adalah P3, P2, P1 maka Gantt Chartnya
adalah
Penjadwalan FIFO (First In First Out) [5]
Menentukan Turn Around Time dengan FIFO berdasarkan contoh diatas :

Turn around time (waktu penyelesaian) P1 adalah 24, P2 = 27, P3 = 30, maka rata-
rata turn around time = (24+27+30)/3 = 27 milidetik.
Penjadwalan Shortest Job First (SJF) [1]
Penjadwalan dengan tipe prioritas tanpa
preeemptive.
• Dasar prioritasnya adalah pendeknya proses.
• Makin pendek prosesnya makin tinggi
prioritasnya.

Waktu tiba =
sama (0)
Penjadwalan Shortest Job First (SJF) [2]
Latihan Penjadwalan Non Preemtive
Hitunglah waktu Turn Around (TA), Total dan Reratanya!
1. Diketahui 10 antrian proses yaitu : A-B-C-D-E-F-G-H-I-J
dengan waktu kedatangan semuanya 0 dan prosesor sedang
tidak aktif (PP=0), lama proses berturut-turut antara lain
8,5,4,10,3,9,2,1,7,8 (Menggunakan FIFO).

2. Diketahui 7 antrian proses yaitu : P-Q-R-S-T-U-V dengan


waktu kedatangan semuanya 0 dan prosesor sedang tidak
aktif (PP=0), lama proses berturut-turut antara lain
6,9,1,5,7,7,2 (Menggunakan SJF).
Latihan Penjadwalan Non Preemtive
3. Diketahui 5 antrian proses yaitu : P-Q-R-S-T dengan waktu
kedatangan berturut-turut 0,1,3,5,8 dan prosesor sedang tidak
aktif (PP=0), lama proses berturut-turut antara lain 8,5,4,10,3
(Menggunakan FIFO).

4. Diketahui 6 antrian proses yaitu : E-F-G-H-I-J dengan waktu


kedatangan berturut-turut 0,2,3,5,7,9 dan prosesor sedang
tidak aktif (PP=0), lama proses berturut-turut antara lain
1,5,7,9,10,12 (Menggunakan SJF)
Thread
THREAD

 Thread merupakan unit dasar dari penggunaan


CPU
 Thread terdiri dari Thread_ID, program counter,
register set, dan stack
 Thread juga sering disebut lightweight process
THREAD DALAM PROCESS

 Perbedaan antara proses dengan thread tunggal


dengan proses dengan thread yang banyak
adalah proses dengan thread yang banyak dapat
mengerjakan lebih dari satu tugas pada satu satuan
waktu
THREAD DALAM PROCESS
CONTOH MULTI-THREADING

 Banyak perangkat lunak yang berjalan pada PC


modern dirancang secara multi-threading
 Contohnya sebuah web browser mempunyai
thread untuk menampilkan gambar atau tulisan
sedangkan thread yang lain berfungsi sebagai
penerima data dari network.
CONTOH MULTI-THREADING

 Situasi dimana sebuah aplikasi diperlukan untuk


menjalankan beberapa tugas yang serupa
 Contohnya adaah sebuah web server yang dapat
mempunyai ratusan klien yang mengaksesnya
secara concurrent
Keuntungan Thread

1. Responsi:

Membuat aplikasi yang interaktif menjadi multithreading dapat

membuat sebuah program terus berjalan meskipun sebagian dari

program tersebut diblok atau melakukan operasi yang panjang, karena

itu dapat meningkatkan respons kepada pengguna. Sebagai

contohnya dalam web browser yang multithreading, sebuah thread

dapat melayani permintaan pengguna sementara thread lain berusaha

menampilkan image.
2. Berbagi sumber daya:

thread berbagi memori dan sumber daya dengan

thread lain yang dimiliki oleh proses yang sama.

Keuntungannya adalah mengizinkan sebuah aplikasi

untuk mempunyai beberapa thread yang berbeda

dalam lokasi memori yang sama.


Keuntungan Thread

3. Ekonomi: dalam pembuatan sebuah proses banyak dibutuhkan


pengalokasian memori dan sumber daya. Alternatifnya adalah dengan
penggunaan thread, karena thread berbagi memori dan sumber daya
proses yang memilikinya maka akan lebih ekonomis untuk membuat dan
context switch thread. Akan susah untuk mengukur perbedaan waktu
antara proses dan thread dalam hal pembuatan dan pengaturan, tetapi
secara umum pembuatan dan pengaturan proses lebih lama
dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali
dibandingkan pembuatan thread, dan context switch proses 5 kali lebih
lama dibandingkan context switch thread.
Keuntungan Thread

4. Utilisasi arsitektur multiprocessor: Keuntungan dari


multithreading dapat sangat meningkat pada arsitektur
multiprocessor, dimana setiap thread dapat berjalan
secara pararel di atas processor yang berbeda. Pada
arsitektur processor tunggal, CPU menjalankan setiap
thread secara bergantian tetapi hal ini berlangsung
sangat cepat sehingga menciptakan ilusi pararel, tetapi
pada kenyataannya hanya satu thread yang
dijalankan CPU pada satu-satuan waktu (satu-satuan
waktu pada CPU biasa disebut time slice atau
quantum).
User vs Kernel Threads

 User thread didukung di atas kernel dan diimplementasi

oleh thread library pada user level

 Library menyediakan fasilitas untuk pembuatan thread,

penjadualan thread, dan managemen thread tanpa

dukungan dari kernel

 Kelemahannya yaitu apabila kernelnya merupakan thread

tunggal maka apabila salah satu user-level thread

menjalankan blocking system call maka akan

mengakibatkan seluruh proses diblok walau pun ada

thread lain yang dapat jalan dalam aplikasi tersebut


User vs Kernel Threads

 Kernel thread didukung langsung oleh sistem


operasi
 Pembuatan, penjadualan, dan managemen thread
dilakukan oleh kernel pada kernel space.
 Pembuatan dan pengaturan kernel thread lebih
lambat dibandingkan user thread
User vs Kernel Threads

 Keuntungannya adalah jika sebuah thread


menjalankan blocking system call maka kernel
dapat menjadualkan thread lain di aplikasi
untuk melakukan eksekusi
 Keuntungan lainnya adalah pada lingkungan
multiprocessor, kernel dapat menjadual
thread-thread pada processor yang berbeda.
 Contoh sistem operasi yang mendukung kernel
thread adalah Windows NT, Solaris, Digital
UNIX.
Multithreading Models

Many-to-One Model
 memetakan banyak user-level thread ke satu kernel
thread
 Pengaturan thread dilakukan di user space
 Efisien tetapi ia mempunyai kelemahan yang sama
dengan user thread
 tidak dapat berjalan secara pararel pada
multiprocessor
Multithreading Models
Multithreading Models

One-to-One Model

 memetakan setiap user thread ke kernel thread

 menyediakan lebih banyak concurrency dibandingkan

Many-to-One model

 Keuntungannya sama dengan keuntungan kernel thread

 Kelemahannya setiap pembuatan user thread

membutuhkan pembuatan kernel thread yang dapat

menurunkan performa dari sebuah aplikasi

 Sistem operasi yang mendukung One-to-One model

adalah Windows NT dan OS/2


Multithreading Models
Multithreading Models

Many-to-Many Model
 multiplexes banyak user-level thread ke kernel thread yang
jumlahnya lebih kecil atau sama banyaknya dengan user-
level thread
 Jumlah kernel thread dapat spesifik untuk sebagian
aplikasi atau sebagian mesin
 Developer dapat membuat user thread sebanyak yang
diperlukan, dan kernel thread yang bersangkutan dapat
bejalan secara pararel pada multiprocessor.
 Ketika suatu thread menjalankan blocking system call
maka kernel dapat menjadualkan thread lain untuk
melakukan eksekusi.
 Sistem operasi yang mendukung model ini adalah Solaris,
IRIX, dan Digital UNIX.
Multithreading Models
Thread Pools

 Pada web server yang multithreading ada dua masalah


yang timbul:

1. Ukuran waktu yang diperlukan untuk menciptakan


thread untuk melayani permintaan yang diajukan
terlebih pada kenyataannya thread dibuang ketika
ia seketika sesudah ia menyelesaikan tugasnya.

2. Pembuatan thread yang tidak terbatas jumlahnya


dapat menurunkan performa dari sistem.
Thread Pools

 Solusinya adalah dengan penggunaan Thread


Pools :
 Membuat beberapa thread pada proses startup
dan menempatkan mereka ke pools, dimana
mereka duduk diam dan menunggu untuk bekerja
Ketika server menerima permintaan maka ia akan
membangunkan thread dari pool dan jika thread
tersedia maka permintaan tersebut akan dilayani

Ketika thread sudah selesai mengerjakan tugasnya


maka ia kembali ke pool dan menunggu pekerjaan
lainnya
Thread Pools

 Keuntungan thread pool:


1. Biasanya lebih cepat untuk melayani
permintaan dengan thread yang ada
dibanding dengan menunggu thread baru
dibuat.
2. Thread pool membatasi jumlah thread yang
ada pada suatu waktu. Hal ini pentingpada
sistem yang tidak dapat mendukung
banyak thread yang berjalan secara
concurrent.
 Jumlah thread dalam pool dapat
tergantung dari jumlah CPU dalam
sistem, jumlah memori fisik, dan jumlah
permintaan klien yang concurrent.
Cancellation

 Thread cancellation adalah sebuah tugas untuk


memberhentikan thread sebelum thread tersebut selesai.
 Thread yang akan diberhentikan disebut target thread.
 Dua skenario thread cancellationn :
1. Asynchronous cancellation :
satu thread memberhentikan target thread seketika itu
juga.
2. Deferred cancellation :
target thread secara periodik dapat mengecek apakah
ia harus berhenti, skenario ini memberi kesempatan
kepada target thread untuk memberhentikan dirinya
sendiri.
Signal Handling (1)

 Sebuah sinyal digunakan di sistem UNIX


untuk
memberitahu sebuah proses kalau
peristiwa tertentu sedang terjadi.
 Pola sinyal :
- Sebuah sinyal diaktifkan oleh munculnya
suatu peristiwa.
- Sinyal yang diaktifkan dikirim ke proses.
- Sesudah dikirim, sinyal tersebut harus
ditangani.
Signal Handling (2)

 Setiap sinyal bisa ditangani oleh salah satu dari 2


handler
yang ada :
1. A default signal handler
2. A user defined signal handler
 Beberapa pilihan kemana sebuah sinyal seharusnya
dikirim :
1. Mengirim sinyal ke thread yang dituju.
2. Mengirim sinyal ke semua thread dalam proses.
3. Mengirim sinyal ke thread tertentu dalam proses.
4. Menugaskan thread khusus untuk menerima semua
sinyal yang ditujukan pada proses tersebut.
KONGKURENSI
R A C H M AT J A E N A L A B I D I N , M T
PENDAHULUAN
 Proses-proses dikatakan konkuren jika lebih dari satu
proses ada pada saat yang sama.
 Proses yang konkuren dapat sepenuhnya tak
bergantung dengan proses lain namun dapat juga
saling berinteraksi.
 Proses yang berinteraksi memerlukan sinkronisasi
agar terkendali dengan baik.
 Menjadi penting ketika seluruh sistem adalah
multiprogramming atau multithreading serta menuju
pemrosesan tersebar.
MASALAH PADA PROSES KONKUREN
Mutual exclusion
persoalan untuk menjamin hanya satu proses yang mengakses
sumber daya pada suatu interval waktu tertentu.
Deadlock
Proses yang menunggu suatu kejadian yang tidak akan pernah
terjadi.
Startvation
keadaan dimana pemberian akses bergantian terus-menerus,dan
ada suatu proses yang tidak mendapatkan gilirannya
Sinkronisasi
proses pengaturan jalannya beberapa proses pada saat yang
bersamaan
PRINSIP-PRINSIP KONKURENSI
Meliputi:
 Alokasi layanan pemroses untuk proses-proses
 Pemakaian bersama dan persaingan utk mendapatkan sumber daya
 Komunikasi antarproses
 Sinkronisasi aktivitas banyak proses
Konkurensi dapat muncul pada konteks:
 Untuk banyak aplikasi
 Untuk strukturisasi dari aplikasi
 Untuk strukturisasi dari satu proses
 Untuk strukturisasi sistem operasi
 Konteks kongkurensi untuk banyak aplikasi :
 Sistem multiprogramming memungkinkan banyak aplikasi/proses
dijalankan di satu pemroses
 Pada sistem multiprogramming memungkinkan banyak aplikasi
sekaligus dijalankan di sistem komputer
 Contoh :
 Implementasi TCP/IP dipecah menjadi banyak aplikasi yang
saling bekerja sama misalnya : pppd, ftp, ping, finger, pine,
diald, dsb.
 Konteks kongkurensi untuk strukturisasi aplikasi :
 Perluasan prinsip perancangan modular dan pemrograman terstruktur yakni
suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan
proses.
 Dengan sekumpulan proses maka masing-masing proses menyediakan satu
layanan spesifik tertentu.
Konteks konkurensi untuk strukturisasi satu proses :
 Untuk meningkatkan kinerja maka satu proses dapat memiliki banyak
thread yang independen
 Thread adalah sebuah alur kendali dari sebuah proses
 Strukturisasi satu aplikasi dapat dilakukan dengan banyak proses atau
banyak thread.
Konteks konkurensi untuk strukturisasi Sistem Operasi :
Keunggulan strukturisasi dapat diterapkan ke pemrograman
sistem. Beberapa sistem operasi aktual yang dipasarkan dan yang
sedang dalam riset telah diimplementasikan sebagai kumpulan
proses. Sistem operasi bermodelkan client/server menggunakan
pendekatan ini.
KESULITAN KONGKURENSI
Pemakaian bersama sumber daya global
Memungkinkan keadaan kritis saat pembacaan dan
penulisan variabel atau data bersama.
Pengelolaan alokasi sumber daya agar optimal
Ketika suatu proses menggunakan sumber daya kemudian
di tunda, dan jika SO memiliki kebijakan mengunci sumber
daya untuk proses lain, dlm hal ini menghasilkan inefisiensi
sistem komputer.
Pencarian kesalahan pemrograman
Pencarian kesalahan program kongkuren lebih sulit dari
program sequent.
INTERAKSI ANTARPROSES
Pada sistem banyak proses (konkuren), terdapat tiga kategori interaksi :
Proses proses saling tidak perduli (independen)
Proses proses saling mempedulikan secara tidak langsung
Proses proses saling mempedulikan secara langsung.
Proses-proses saling tidak peduli (independen)
 Proses ini tidak dimaksudkan agar bekerja bersama untuk mencapai
tujuan tertentu.
 Meskipun proses-proses tidak bekerja bersama, sistem operasi perlu
mengatur persaingan diantara proses-proses dalam memperoleh sumber
daya yang terbatas.
Proses-proses saling mempedulikan secara tidak langsung:
 Proses yang secara bersama-sama mengakses sumberdaya tertentu perlu
bekerjasama mesipun tidak saling mempedulikan identitas proses lain.

 Misalkan proses secara bersama mengakses buffer masukan/keluaran, proses-


proses tersebut perlu bekerja sama dalam memakai bersama sumber daya
tersebut.
Proses-proses saling mempedulikan secara langsung:
 Proses – proses dapat saling berkomunikasi dan dirancang bekerja sama untuk
suatu aktivitas.
Interaksi antara proses-proses dan masalah-masalah yang harus diatasi
ditabelkan pada tabel 5-1. [STA-95]
Derajat Hubungan Akibat satu proses Masalah
kepentingan thd lainya pengendalian yg
perlu dilakukan
Proses tak peduli Persaingan 1. Hasil satu proses 1. Mutual exclusion
independen thd 2. Deadlock
aksi proses lain 3. Startvation
2. Pewaktuan proses
dapat berdampak
Proses secara tak Kerjasama dengan 1. Hasil satu proses 1. Mutual exclusion
langsung peduli thd pemakaian bersama dapat bergantung 2. Deadlock
proses lain informasi yang 3. Startvation
diperoleh dari
proses lain 4. Koherensi data
2. Pewaktuan proses
dapat berdampak
Proses secara langsung Kerjasama dengan 1. Hasil satu proses 1. Deadlock
peduli thd proses lain komunikasi dapat bergantung 2. Startvation
dari informasi
yang diperoleh
proses lain
2. Pewaktuan proses
dapat berdampak
PERSAINGAN UNTUK SUMBERDAYA

• Proses konkuren berkompetisi ketika proses-proses bersaing


menggunakan sumber daya yang sama.
• Proses yang ditolak pengaksesanya menjadi melambat
• Kasus yang dapat terjadi adalah proses menjadi blocked terus-menerus
sehingga tidak pernah mengakses sumberdaya.
• Persaingan proses untuk memperoleh sumberdaya menimbulkan tiga
masalah yang harus diselesaikan.
– Mutual exclusion
– Deadlock
– startvation
KERJASAMA ANTAR PROSES
DENGAN PEMAKAIAN BERSAMA

• Dalam kasus kerjasama pemakaian sumber daya bersama meliputi


proses-proses yang saling berinteraksi tanpa dinyatakan secara
eksplisit.
• Masalah dalam pemakaian bersama
– Mutual exclusion
– Deadlock
– startvation
KERJASAMA ANTAR PROSES
DENGAN KOMUNIKASI
 Dalam kasus ini proses-proses memakai sumberdaya secara bersama, meskipun
antar proses tidak peduli thd proses lain namun masing-masing peduli untuk
menjaga integritas data.

 Komunikasi menyediakan cara untuk sinkronisasi atau koordinasi beragam


aktivitas.

 Komunikasi dicirikan dengan berisi pesan-pesan dengan suatu urutan

 Primitif untuk mengirim dan menerima pesan disediakan sebagai bagian bahasa
pemrograman atau disediakan kernel sistem operasi.
Manajemen Memori
Rachmat Jaenal Abidin, M.T
Memori
 Memori adalah pusat kegiatan pada sebuah
komputer, karena setiap proses yang akan
dijalankan harus melalui memori terlebih
dahulu
 Tugas sistem operasi adalah mengatur
peletakan banyak proses pada suatu memori
 Algoritma untuk manajemen memori ini
bervariasi dari yang menggunakan
pendekatan primitif pada mesin sampai
pemberian halaman dan strategi segmentasi
Address Binding
 Binding adalah pemetaan dari satu ruang alamat ke
alamat yang lain
 Binding instruksi dan data ke memori dapat terjadi
dalam tiga cara yang berbeda:
 Compilation Time  Jika kita tahu dimana proses akan
ditempatkan di memori pada saat mengkompilasi,
maka kode yang absolut dapat dibuat
 Load Time  jika pada saat mengkompilasi kita tidak
tahu proses akan ditempatkan dimana dalam memori
 Execution Time  jika pada saat dieksekusi proses
dapat dipindah dari satu segmen ke segmen yang
lain di dalam memori
Manajemen Memori
 Manajemen memori pada sistem
Monoprogramming
 Manajemen memori pada sistem
Multiprogramming
Manajemen memori pada
sistem Monoprogramming
Ciri-ciri:
 Hanya ada satu proses pada suatu saat dan
menggunakan seluruh area memori.
 Program diletakkan seluruhnya ke memori
dari disk.
 Program mengambil kendali seluruh sumber
daya komputer.
Manajemen memori pada
sistem Multiprogramming
Ciri-ciri:
 Terdapat sejumlah proses yang menempati
memori
 Alokasi memori ke proses dapat berurutan
atau tidak
 Dimungkinkan suatu lokasi memori utama
diakses bersama oleh sejumlah proses
(memory sharing)
Manajemen memori pada
sistem Multiprogramming
 Berdasarkan
pengalokasian memori

Alokasi pada sistem multiprogramming

Alokasi berurut Alokasi tidak berurut (non-


(contiguous) contiguous)

Partisi Partisi Sistem Paging Segme kombin


statis dinamis buddy ntasi asi
Contiguous Allocation
 Memori harus mengakomodasi kebutuhan SO dan
proses user
 Memori utama biasanya terbagi dalam dua bagian:
 Resident operating system, biasanya tersimpan di alamat
memori rendah.
 User proces menggunakan memori beralamat tinggi/besar.

 Terbagi menjadi:
 Partisi statis
 Partisi dinamis
 Sistem buddy
Pengalokasian berurut dengan
partisi statis
Ciri-ciri
 Memori dibagi menjadi partisi-partisi dengan
ukuran yang tetap.
 Satu proses hanya memakai satu partisi. Jika
proses sudah selesai, partisi tersebut dapat
digunakan proses yang lain.
 Dibagi menjadi 2 bagian:
 Berukuran sama
 Berukuran tidak sama
Pengalokasian berurut dengan
partisi statis dengan ukuran sama
 Banyak kelemahan, antara lain:
 Proses yang ukurannya lebih besar dari ukuran
partisi tidak dapat dialokasikan.
 Sebaliknya bila ukuran proses lebih kecil daripada
ukuran partisi, maka akan terjadi pemborosan
ruang memori (Fragmentasi internal).
Pengalokasian berurut dengan
partisi statis dengan ukuran tidak
sama
 Untuk mengatasi kelemahan dari
Pengalokasian berurut dengan partisi statis
dengan ukuran sama, yaitu proses ukuran
kecil diletakkan ke partisi yang kecil dan
sebaliknya.
 Ada 2 jenis strategi:
 Satu antrian untuk setiap partisi
 Satu antrian untuk seluruh partisi
Pengalokasian berurut dengan
partisi statis dengan ukuran tidak
sama
 Satu antrian untuk setiap partisi
 Tiap proses diletakkan pada partisi dengan ukuran terkecil
yang dapat dimuatnya.
 Kelemahan:ada partisi yang memiliki antrian panjang dan
ada yang kosong.
 Satu antrian untuk seluruh partisi
 Semua proses dimasukkan pada satu antrian yang sama
 Algoritma penjadwalan melakukan pemilihan partisi
 Kelemahan: jika proses yang berukuran kecil terpaksa
masuk ke partisi sisa yang besar, sehingga terjadi
pemborosan ruang.
PARTISI DINAMIS
Pengalokasian berurut dengan
partisi dinamis
Ciri-ciri:
 Pada kondisi awal, memori tidak dibagi menjadi
partisi-partisi
 Pemartisian dilakukan pada saat image proses akan
disalin ke memori utama.
 Ukuran partisi yang dialokasikan akan disesuaikan
dengan ukuran image proses.
 Partisi akan dibebaskan jika program sudah selesai.
 Keuntungan : tidak terjadi fragmentasi internal
alokasi memori disesuaikan dengan besarnya image
proses.
Pengalokasian berurut dengan
partisi dinamis
Cara kerja:
 Pengalokasian dilakukan dengan mencari
hole  suatu ruang memori utama yang
kosong, yang cukup besar untuk menampung
image proses.
 Hole sisa kadang kala terlalu kecil untuk
dapat dialokasikan ke proses lainnya
sehingga tidak bisa digunakan lagi 
fragmentasi eksternal.
Pengalokasian berurut dengan
partisi dinamis
 Salah satu cara untuk mengatasi masalah ini
adalah melakukan memory compaction.
 Yaitu: menggeser image proses-proses yang
ada di memori sehingga hole terkumpul di
satu tempat saja.
1000
Pengalokasian berurut dengan
partisi dinamis
 Kelemahan:
 proses alokasi dan dealokasi menjadi lebih rumit
 Perlu pengelolaan informasi area memori yang
masih kosong.
 Ada 2 metode pengelolaan memori kosong:
 Peta bit (bitmap)
 Linked list
Pengalokasian berurut dengan
partisi dinamis
 Peta bit (bitmap)
 Menggunakan area memori khusus untuk
mencatat seluruh area kosong pada memori
utama.
 Memakai nilai 0 dan 1
 Nilai 0  alamat memori tersebut masih kosong
 Nilai 1  alamat memori tersebut sudah terisi
Pengalokasian berurut dengan
partisi dinamis
 Linked list
 Informasi mengenai hole kosong berikutnya
dicatat pada hole kosong sebelumnya.
 Tidak diperlukan area memori khusus. Karena
seluruh informasi tercatat di area memori kosong
itu sendiri sehingga menghemat kapasitas
memori utama.
Pengalokasian berurut dengan
partisi dinamis
 Diperlukan algoritma untuk menentukan hole
mana yang akan dialokasikan ke suatu
proses.
 Algoritma Best-fit
 Algoritma First-fit
 Algoritma Next-fit
 Algoritma Worst-fit
Pengalokasian berurut dengan
partisi dinamis
 Algoritma Best-fit
 Mencari memori blok yang paling kecil yang dapat
menampung image proses
 Memerlukan waktu lama karena harus searching
seluruh blok memori utama
 Fragmentasi eksternal dapat ditekan sekecil
mungkin
Pengalokasian berurut dengan
partisi dinamis
 Algoritma First-fit
 Mencari memori kosong dari alamat awal sampai
menemukan blok yang dapat menampung image
proses
 Sederhana dan cepat.
 Algoritma Next-fit
 Hampir sama dengan First-fit.
 Bedanya: proses searching dimulai dari alamat
alokasi terakhir
Pengalokasian berurut dengan
partisi dinamis
 Algoritma worst-fit
 Mencari hole yang paling besar di seluruh area
memori utama.
 Tujuannya: hole sisa yang tercipta setelah alokasi
masih cukup besar untuk dialokasikan ke proses
lainnya.
Pengalokasian berurut dengan
sistem buddy
 Berupa pemartisian secara dinamis
 Ciri khusus adalah partisi yang terbentuk
senantiasa berukuran besar sebesar
bilangan 2n
2,4,8,16…..256,512,1024(1Mb)
Pengalokasian berurut dengan
sistem buddy
Alokasi memori pada sistem buddy:
1. Menentukan ukuran partisi

 Ditentukan ukuran partisi untuk menampung


image proses yaitu ukuran bilangan pangkat
2 terkecil
 Misal : ukuran image proses = 12kb

maka ukuran partisi yang bisa digunakan


adalah 16kb.
Pengalokasian berurut dengan
sistem buddy
2. Pengalokasian
 Selanjutnya adalah mencari hole yang ukurannya
sebesar perhitungan.
 Jika tidak ada maka dicarikan hole yang berukuran
sedikit lebih besar. Kemudian dipecah secara
bertahap sesuai dengan aturan bilangan pangkat
2.
 Misal : ukuran image proses = 12kb
dan hole yang paling kecil adalah 64kb.
 maka dipecah menjadi 2 partisi 32kb, selanjutnya dipecah
lagi menjadi 2 partisi 16kb.
 dan partisi 16kb pertama yang bisa dipakai untuk image
proses 12kb.
128
Pengalokasian tak berurut
dengan sistem paging
 Pada model pengalokasian tak berurut, bagian-
bagian dari image proses dapat diletakkan secara
terpisah di memori utama.
 Pada sistem paging memerlukan pengalamatan
logika khusus yang membagi menjadi blok-blok
dengan ukuran sama yang disebut page
 Pada sistem paging , perlua adanya translasi alamat
ke memori fisik yang dipartisi secara statis yang
disebut frame, yang ukurannya sama dengan page
pada ruang alamat logika
Pengalokasian tak berurut
dengan sistem paging
Konsep dasar alokasi memori :
 Memori utama dibagi menjadi frame-frame
kecil berukuran sama dan diberi nomor frame
sebagai referensi.
 Ruang alamat logika proses dibagi menjadi
page-page seukuran frame
 Loading time: page-page image proses
diletakkan pada frame-frame kosong dan
dicatat pada page table
Proteksi Memori pada sistem
paging
 Berfungsi menghindari pengaksesan memori
secara ilegal.
misal: pengaksesan bagian memori yang
sudah ditempati proses lain.
 Proteksi frame dilakukan dengan cara
menambahkan bit proteksi untuk tiap entry
page table
misal: cek apakah frame tersebut bersifat
read atau read-write.
cek apakah alamat logika yang dituju suatu
proses valid atau invalid.
Memory Sharing pada sistem
paging
 Untuk menghemat penggunaan kapasitas
memori.
 Jika ada 2 atau lebih proses yang memiliki
bagian kode instruksi, atau data yang sama
maka dapat digunakan bersama dan cukup
diletakkan sekali di frame memori.
 Masing-masing proses mengacu ke frame
yang sama pada page table nya.
Pengalokasian tak berurut
dengan sistem segmentation
 Memakai sistem partisi dinamis.
 Pada pengalamatan logika, image proses
dibagi menjadi bagian-bagian yang disebut
segmen.
 Pembagian segmen biasanya mengikuti
struktur program oleh kompiler, yang
biasanya tiap segmen berupa main program,
stack, routine, symbol table
 Partisi memori utama terjadi pada saat
alokasi yang besarnya sesuai dengan besar
segmen program yang dialokasikan
Pengalokasian tak berurut
dengan sistem segmentation
Konsep alokasi memori:
 Image proses dibagi menjadi beberapa
segmen yang ukurannya tidak harus sama.
 Segmen-segmen image proses dialokasikan
ke tempat-tempat kosong di memori utama,
dan informasi alokasi dicatat pada segmen
table.
 Segmen table berisi nilai limit (panjang
segmen) dan nilai base (alamat awal bagian
memori yang dialokasikan)
Segmentasi
Proteksi memori pada sistem
segmentation
 Membandingkan nilai segmen yang ada di
pengalamatan logika dengan nilai limit yang
ada di segmen table.
 Apabila nilai segmen yang ada di
pengalamatan logika lebih besar (>) daripada
nilai limit yang ada di segmen table, berarti
terjadi usaha pengaksesan lokasi diluar area
segmen program itu, sehingga memicu
terjadinya trap (addresing error)
Memori sharing pada sistem
segmentation
 Sharing segmen antara 2 atau lebih proses
dapat dilakukan dengan mencatat lokasi
alokasi segmen tersebut ke tabel segmen
masing-masing proses.

Anda mungkin juga menyukai