sistem operasi

285
1 Sistem Operasi Perkenalan

Upload: fembi-rekrisna-grandea-putra

Post on 21-Mar-2017

122 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Sistem Operasi

1

Sistem Operasi

Perkenalan

Page 2: Sistem Operasi

2

Identitas Mata Kuliah

• Nama Mata Kuliah : Sistem Operasi

• Kode Mata Kuliah : 0953333203

• SKS Mata Kuliah : 3 (Teori : 2 dan Praktikum : 1)

• Jurusan Informatika, Semester III (2014 / 2015)

• Ruang Kuliah : B.404

• Ruang Praktikum : Laboratorium Pusat Komputer UNS

• Jadwal Kuliah : Jumat jam 07:30 – 09:15 WIB

• Jadwal Praktikum : Selasa jam 09:20 – 11:05 WIB

• Dosen Pengampu : Meiyanto Eko Sulistyo, S.T., M.Eng.

Page 3: Sistem Operasi

3

Peraturan Perkuliahan

1. Mahasiswa/i wajib menjaga kerapian diri seperti

menggunakan sepatu, baju berkerah, celana

panjang tidak sobek, tidak merokok, tidak

berbusana yang terlihat aurat, tidak berbusana

ketat, tidak berbusana transparan, tidak berkaca

mata gelap, tidak bermake-up berlebihan, dll.

2. Mahasiswa/i yang tidak hadir kuliah, praktikum,

kuis, dan ujian KD harus bisa menunjukkan

surat keterangan sakit/ijin keperluan keluarga.

3. Ujian Remidi wajib bagi mahasiswa/i yang tidak

hadir Ujian KD dengan keterangan, hadir Ujian

KD, dan nilai KD < 60.

Page 4: Sistem Operasi

4

Standar Kompetensi

Mahasiswa mampu mengenali dan

mengoperasikan beberapa sistem operasi,

kemudian mampu menjelaskan konsep,

cara kerja dan membandingkan antar sistem

operasi serta mengembangkan sebuah

sistem operasi.

Page 5: Sistem Operasi

5

Referensi

1. Abraham Silberschatz, 2004, Operating System Concept with

Java, John Wiley & Sons Inc.

2. Sri Kusumadewi, 2000, Sistem Operasi, J & J Learning.

Yogyakarta.

3. A. S. Tanenbaum, 1992, Modern Operating System, Prentice-

Hall, Inc.

4. Bambang Hariyanto, 2000, Sistem Operasi, Informatika.

Bandung.

5. A. S. Tanenbaum, Albert S. Woodhull, 2006, Operating

Systems Design and Implementation. Third Edition. Prentice-

Hall.

6. A. S. Tanenbaum, Albert S. Woodhull, 2004, Operating

Systems Design and Implementation. Second Edition.

Prentice-Hall.

Page 6: Sistem Operasi

6

Sub Pokok Bahasan Pertemuan Materi

1 Pengenalan Sistem Operasi

2 Struktur Sistem Komputer

3 Proses

4 Ujian Kompetensi Dasar 1

5 Thread

6 Penjadual CPU

7 Sinkronisasi

8 Ujian Kompetensi Dasar 2

9 Deadlock

10 Memory

11 Virtual Memory

12 Ujian Kompetensi Dasar 3

13 Sistem File

14 Input / Output

15 Sistem Penyimpanan Disk

16 Ujian Kompetensi Dasar 4

Page 7: Sistem Operasi

7

Bobot Nilai Akhir Semester

KD1 = ({[(K1+K2+K3)/3]x5%}+{[(P1+P2+P3)/3]x5%}+{UKD1x15%})/25%

KD2 = ({[(K5+K6+K7)/3]x5%}+{[(P4+P5+P6)/3]x5%}+{UKD2x15%})/25%

KD3 = ({[(K9+K10+K11)/3]x5%}+{[(P7+P8+P9)/3]x5%}+{UKD3x15%})/25%

KD4 = ({[(K13+K14+K15)/3]x5%}+{[(P10+P11+P12)/3]x5%}+{UKD4x15%})/25%

Nilai Akhir = (KD1+KD2+KD3+KD4)/4

7

Page 8: Sistem Operasi

8

Bobot Nilai Akhir Semester

(next…) K1 = Nilai Kuis/Tugas Pertemuan ke-1

K2 = Nilai Kuis/Tugas Pertemuan ke-2

K3 = Nilai Kuis/Tugas Pertemuan ke-3

UKD1 = Ujian Kompetensi Dasar 1

K5 = Nilai Kuis/Tugas Pertemuan ke-5

K6 = Nilai Kuis/Tugas Pertemuan ke-6

K7 = Nilai Kuis/Tugas Pertemuan ke-7

UKD2 = Ujian Kompetensi Dasar 2

K9 = Nilai Kuis/Tugas Pertemuan ke-9

K10 = Nilai Kuis/Tugas Pertemuan ke-10

K11 = Nilai Kuis/Tugas Pertemuan ke-11

UKD3 = Ujian Kompetensi Dasar 3

K13 = Nilai Kuis/Tugas Pertemuan ke-13

K14 = Nilai Kuis/Tugas Pertemuan ke-14

K15 = Nilai Kuis/Tugas Pertemuan ke-15

UKD4 = Ujian Kompetensi Dasar 4 8

Page 9: Sistem Operasi

9

Bobot Nilai Akhir Semester

(next…) P1 = Nilai Laporan Praktikum Pertemuan ke-1

P2 = Nilai Laporan Praktikum Pertemuan ke-2

P3 = Nilai Laporan Praktikum Pertemuan ke-3

P4 = Nilai Laporan Praktikum Pertemuan ke-4

P5 = Nilai Laporan Praktikum Pertemuan ke-5

P6 = Nilai Laporan Praktikum Pertemuan ke-6

P7 = Nilai Laporan Praktikum Pertemuan ke-7

P8 = Nilai Laporan Praktikum Pertemuan ke-8

P9 = Nilai Laporan Praktikum Pertemuan ke-9

P10 = Nilai Laporan Praktikum Pertemuan ke-10

P11 = Nilai Laporan Praktikum Pertemuan ke-11

P12 = Nilai Laporan Praktikum Pertemuan ke-12

9

Page 10: Sistem Operasi

10

Nilai Akhir Semester

10

No. Rentang Nilai Nilai Huruf Bobot Arti

1. 80 – 100 A 4 Sangat Baik

2. 70 – 79,9 B 3 Baik

3. 60 – 69,9 C 2 Cukup

4. 40 – 59,9 D 1 Kurang

5. 0 – 39,9 E 0 Gagal

Page 11: Sistem Operasi

Next…

11

Page 12: Sistem Operasi

1

Sistem Operasi

Pengenalan Sistem Operasi

Page 13: Sistem Operasi

2

Apa itu Sistem Operasi?

Perangkat lunak yang bertindak sebagai

perantara antara pemakai komputer dan

perangkat keras

Page 14: Sistem Operasi

3

Sasaran Sistem Operasi

– Menjalankan program-program dari

user dan membantu user dalam

menggunakan komputer

– Menyediakan sarana sehingga

pemakaian komputer menjadi mudah

(convenient)

– Memanfaatkan perangkat keras

komputer yang terbatas secara efisien

(resource manager)

Page 15: Sistem Operasi

4

Komponen Sistem Komputer

1. Hardware menyediakan “basic computing resources”

(CPU, memory, I/O devices).

2. Operating system mengendalikan/mengkoordinasikan

penggunaan hardware diantara berbagai

aplikasi/program dari user.

3. Applications programs menggunakan sistem resource

yang digunakan untuk menyelesaikan masalah

komputasi dari user (compilers, database systems, video

games, business programs).

4. Users (people, machines, other computers).

Page 16: Sistem Operasi

5

Abstraksi Komponen Sistem

Page 17: Sistem Operasi

6

Definisi Sistem Operasi

• Resource allocator – mengatur resource (sumber daya komputer)

– mengalokasikan dan mengontrol pemakaian resources dari/oleh berbagai program/aplikasi.

• Control program – Mengendalikan eksekusi program user dan

pemakaian sistem resource (contoh : operasi pada I/O device) => handal, reliable, terlindung.

• Kernel – Sistem program yang berjalan (“ada) terus

menerus selama komputer aktif`.

– Kontras dengan aplikasi yang di “load”, eksekusi dan terminasi .

Page 18: Sistem Operasi

7

Evolusi Sistem Operasi

• OS sederhana

– Program tunggal, satu user, satu mesin

komputer (CPU) : komputer generasi

pertama, awal mesin PCs, controller: lift,

Playstation etc.

– No problems, no bad people, no bad

programs => interaksi sederhana

– Problem: terbatas pemakaiannya;

Page 19: Sistem Operasi

8

Simple Batch System

• Memakai seorang operator

– User ≠ operator

• Menambahkan card reader

• Mengurangi waktu setup: batch jobs yang mirip/sama

• Automatic job sequencing secara otomatis kontrol akan di transfer dari satu job ke job yang lain.

– Hal tersebut merupakan bentuk OS primitif

• Salah satu bentuk system batch Resident monitor

– Fungsi monitor: awal (initial) melakukan kontrol

– Transfer control ke job (pertama)

– Setelah job selesai, control kembali ke monitor

• Control cards: mengatur batch jobs

Page 20: Sistem Operasi

9

Multiprogrammed Batch Systems

Beberapa jobs disimpan di memori pada saat

bersamaan, dan CPU melakukan multiplexing ke

jobs-jobs tersebut

Page 21: Sistem Operasi

10

Fitur OS yang Dibutuhkan dalam

Multiprogramming

• I/O rutin dikendalikan dan diatur oleh sistem

• Memory management sistem harus mengalokasikan memori untuk beberapa jobs sekaligus

• CPU scheduling sistem harus memilih jobs mana yang telah siap akan dijalankan

• Alokasi dari I/O devices untuk jobs dan proteksi bagi I/O devices tersebut

Sistem menjadi kompleks

– Bagaimana kalau program “loops terus menerus”,going mad etc. proteksi

Page 22: Sistem Operasi

11

Time-Sharing Systems-Interactive Computing

• CPU melakukan multiplex pada beberapa jobs yang

berada di memory (dan disk)

• CPU hanya dialokasikan kepada jobs yang telah siap dan

berada di memori

• Besar memori masih sangat terbatas:

– Pada job dilakukan swapped in dan out dari memory ke

disk.

• Komunikasi on-line (interaktif) antara user dan sistim: jika

OS telah selesai mengeksekusi satu perintah, menunggu

perintah berikut bukan dari “card reader”, tapi dari

terminal user

– On-line system harus tersedia bagi user yang akan

mengakses data dan kode

Page 23: Sistem Operasi

12

Desktop Systems

• Personal computers sistim komputer yang

dirancang khusus untuk single user

• I/O devices keyboards, mice, display screens,

small printers.

• User mendapatkan kemudahan dalam penyesuaian.

• Fungsi dasar mirip (adopsi) dari OS pada sistim yang

besar

– Sederhana: tidak terlalu fokus pada utilisasi CPU

dan proteksi

– Contoh: MS-DOS untuk PC banyak mengambil

features dari UNIX, minus proteksi dan CPU

scheduler yang rumit.

Page 24: Sistem Operasi

13

Parallel Systems

• Sistem multiprosesor: lebih dari satu CPU yang

terhubung secara dekat satu sama lain

• Symmetric multiprocessing (SMP)

– Setiap prosesor menjalankan “identical copy”

dari OS

– Banyak proses dapat berjalan serentak murni

dengan menggunakan resources pada masing-

masing CPU

– Banyak modern operating systems

mendukung SMP

Page 25: Sistem Operasi

14

Parallel Systems

(next…)

• Asymmetric multiprocessing

– Setiap prosesor telah ditentukan

untuk menjalankan task tertentu

– Master processor mengontrol,

menjadwalkan dan mengalokasikan

task ke slave processors

– Banyak digunakan oleh sistem yang

besar (main-frame)

Page 26: Sistem Operasi

15

Real-Time Systems

• Digunakan sebagai control device untuk

aplikasi khusus (misalkan medical imaging

systems, industrial control process dll).

• Kemampuan untuk beroperasi, response

dalam batasan “waktu tertentu” OS

harus sederhana, cepat, dan dapat

memenuhi jadwal task (scheduling dll).

Page 27: Sistem Operasi

16

Real-Time Systems

(next…)

Hard real-time system.

– Secondary storage sangat terbatas atau

tidak ada (menggunakan ROM, flash RAM).

– Task dapat diprediksi/ditentukan: waktu

selesai dan response.

• Soft real-time system

– Lebih leluasa batasan waktu dari “hard real-

time system”.

– Lebih umum digunakan di industri, aplikasi

multimedia (video streaming, virtual reality).

Page 28: Sistem Operasi

17

Distributed Systems

• Distribusikan kemampuan komputasi dan

“resources” ke berbagai komputer di

jaringan.

• Loosely coupled system

– Setiap prosessor memiliki lokal memori

– Komunikasi prosessor satu dengan yang lain

melalui beragam jalur komunikasi, contoh :

high-speed buses dan jalur telepon.

Page 29: Sistem Operasi

18

Distributed Systems

(next…)

• Manfaat distributed systems.

– Resources Sharing

– Waktu komputasi cepat– load sharing

– Reliability

– Komunikasi

• Membutuhkan Infrastruktur jaringan.

• Local Area Networks (LAN) atau Wide Area Networks (WAN)

• Sistem bisa berbentuk client-server atau peer-to-peer .

Page 30: Sistem Operasi

19

Struktur Umum Client-Server

Page 31: Sistem Operasi

20

Clustered Systems

• Clustering memungkinkan dua atau lebih

sistem melakukan share strorage

• Memiliki realibilitas yang tinggi.

• Asymmetric clustering: satu server

menjalankan aplikasi sementara server

lain dalam keadaan standby.

• Symmetric clustering: semual N host

menjalankan aplikasi.

Page 32: Sistem Operasi

21

Handheld Systems

• Personal Digital Assistants (PDAs)

• Telepon seluler

• Issues:

– Memori yang terbatas

– Prosessor yang lambat

– Display screen yang kecil.

Page 33: Sistem Operasi

22

Migrasi Sistem Operasi vs.

Sistem Komputer

Page 34: Sistem Operasi

23

Lingkungan Komputasi

• Komputasi Tradisional

• Komputasi berbasis Web (Web-Based

Computing)

• Komputasi pada Embedded System

(Embedded Computing)

Page 35: Sistem Operasi

24

Struktur Sistem Operasi

• Komponen Sistem

• Layanan Sistem Operasi

• System Calls

• Program System

• Struktur System

• Virtual Machines

• System Design dan Implementation

• System Generation

Page 36: Sistem Operasi

25

Komponen Sistem Umum

• Manajemen Proses

• Manajemen Main Memory

• Manajemen File

• Manajaemen I/O System

• Manajemen Secondary Storage

• Command-Interpreter System

Page 37: Sistem Operasi

Proc

Caches Processor-Memory Bus

Memory

I/O Devices:

Controllers

adapters

Disks

Displays

Keyboards Networks

Semua komponen memiliki organisasi & antar-muka

I/O Bus

Struktur Sistem Operasi

(next…)

Page 38: Sistem Operasi

27

Manajemen Proses

• Proses adalah sebuah program yang sedang dijalankan

(eksekusi).

– Suatu proses memerlukan resources pada saat

ekesekusi: CPU time, memory, files dan I/O devices

• Sistim operasi bertanggung jawab terhadap aktifitas

yang berhubungan dengan manajemen proses:

– Process creation & deletion.

– Process suspension (block) & resumption.

– Mekanisme:

• Sinkronisasi antar proses

• Komunikasi antar proses

Page 39: Sistem Operasi

28

Manajemen Main-Memory

• Memori sebagai tempat penyimpanan instruksi/data dari

program

– Storage yang cepat sehingga dapat mengimbangi kecepatan

eksekusi instruksi CPU

– Terdiri dari “array of words/bytes” yang besar

– Address digunakan untuk mengakses data (shared oleh CPU dan

I/O devices)

• Umumnya main memory bersifat “volatile” – tidak permanent.

Isinya akan hilang jika komputer di matikan.

• Manajemen memori:

– Melacak pemakaian memori (siapa dan berapa besar?).

– Memilih program mana yang akan diload ke memori.

– Alokasi dan De-alokasi memori fisik untuk program.

Page 40: Sistem Operasi

29

Manajemen Secondary-Storage

• Secondary Storage: penyimpanan permanen

– Kapasitas harus besar untuk menyimpan semua

program dan data.

– Secondary storage dapat dijadikan “backup” storage

main memory supaya dapat menjalankan banyak

program.

– Umumnya menggunakan “magnetic disks” (hard

disk).

• OS bertanggung jawab untuk manajemen disk:

– Manajemen ruang kosong

– Alokasi storage

– Penjadualan disk

Page 41: Sistem Operasi

30

Manajemen I/O System

• Sering disebut device manager

– Menyediakan “device driver” yang umum sehingga operasi

I/O dapat seragam (open, read, write, close)

• Contoh: user menggunakan operasi yang sama untuk

read file pada hard disk, CD-ROM dan floppy disk

sama.

• Komponen OS untuk sistim I/O:

– Buffer: menampung sementarai data dari/ke I/O devices

– Spooling: melakukan scheduling pemakaian I/O sistim

supaya lebih efisien (antrian dsb)

– Menyediakan “driver” untuk dapat melakukan operasi “rinci”

(detail) untuk hardware I/O tertentu.

Page 42: Sistem Operasi

31

Manajemen File

• File: kumpulan informasi yang berhubungan (sesuai

dengan tujuan pembuat file tsb).

– File dapat mempunya struktur yang bersifat hirarkis

(direktori, volume dll).

• OS bertanggung jawab:

– Membuat dan menghapus file.

– Membuat dan menghapus directory.

– Dukungan primitif untuk manipulasi file dan directory.

– Pemetaan file ke dalam secondary storage.

– Backup file ke media storage yang stabil (nonvolatile).

Page 43: Sistem Operasi

32

Command-Interpreter System

• OS: menunggu instruksi dari user (command driven)

• Program yang membaca instruksi dan mengartikan

keinginal user (lebih dari sejenis).

– Contoh:

• control-card interpreter

• command-line interpreter

• shell (in UNIX)

– Sangat bervariasi dari satu OS ke OS yang lain dan

disesuaikan dengan tujuan, teknologi I/O devices yang ada.

• CLI, Windows, Pen-based (touch) etc.

Page 44: Sistem Operasi

33

Layanan Sistem Operasi

• Eksekusi Program – Kemampuan sistim untuk “load” program ke memori dan

menjalankan program.

• Operasi I/O – User tidak dapat secara langsung mengakses H/W

resources, OS harus menyediakan mekanisme untuk melakukan operasi I/O atas nama user

• Manipulasi File-system – Kemampuan program untuk operasi pada file (to read,

write, create, and delete files).

Page 45: Sistem Operasi

34

Layanan Sistem Operasi

(next…) • Komunikasi

– Pertukaran data/informasi antar dua atau lebih proses yang

berada pada satu komputer (atau lebih).

• Deteksi Error

– Menjaga kestabilan sistim dengan mendeteksi “error”:

hardware maupun operasi.

• Penggunaan System yang Efisien

– Proteksi : menjamin akses ke system resources dikendalikan

(user dikontrol akses ke sistim).

– Accounting: merekam kegiatan users, jatah pemakaian

resources (fairness atau policy).

Page 46: Sistem Operasi

35

System Call

• System call:

– Menyediakan interface antara program (user program yang berjalan) dan bagian OS.

• System call menjadi jembatan antara proses dan OS.

– System call ditulis dalam assembly language (machine specific) atau bahasa tingkat tinggi yang dapat mengendalikan mesin (C).

– Contoh: UNIX menyediakan system call: read, write => operasi I/O untuk file.

Page 47: Sistem Operasi

36

System Call : Passing Parameter

• Sering user program harus memberikan data

(parameter) ke rutin OS yang akan dipanggil.

– UNIX: read(buffer, max_size, file_id);

• Tiga cara memberikan parameter dari program ke

sistim operasi:

– Melalui registers (resources di CPU).

– Menyimpan parameter pada data struktur (table) di

memory, dan alamat table tsb ditunjuk oleh pointer yang

disimpan di register.

– Push (store) melalui “stack” pada memori dan OS

mengambilnya melalui pop pada stack tsb.

Page 48: Sistem Operasi

37

Tabel Passing Parameter

Page 49: Sistem Operasi

38

Tipe System Calls

• Kontrol Proses

• Manipulasi File

• Managemen Device

• Informasi Lingkungan

• Komunikasi

Page 50: Sistem Operasi

39

Kontrol Proses

• Mengakhiri (end) dan membatalkan (abort)

• Mengambil (load) dan eksekusi (execute)

• Membuat dan mengakhiri proses

• Menentukan dan mengeset atribut proses

• Wait for time

• Wait event, signal event

• Mengalokasikan dan membebaskan

memori

Page 51: Sistem Operasi

40

Eksekusi MS-DOS

At System Start-up Running a Program

Page 52: Sistem Operasi

41

UNIX Menjalankan Multiple Program

Page 53: Sistem Operasi

42

Manipulasi File

• Membuat dan menghapus file

• Membuka dan menutup file

• Membaca, menulis dan mereposisi file

• Menentukan dan mengeset atribut file

Page 54: Sistem Operasi

43

Manajemen Device

• Meminta dan membebaskan device

• Membaca, menulis dan mereposisi device

• Menentukan dan mengeset atribut device

Page 55: Sistem Operasi

44

Informasi Lingkungan

• Mengambil atau mengeset waktu atau

tanggal

• Mengambil atau mengeset sistem data

• Mengambil atau mengeset proses, file

atau atribut-atribut device

Page 56: Sistem Operasi

45

Komunikasi

• Membuat dan mengahpus sambungan

komunikasi

• Mengirim dan menerima pesan

• Mentransfer status informasi

Page 57: Sistem Operasi

46

Komunikasi

(next…)

Message Passing Shared Memory

Komunikasi dilakukan dengan

melewatkan pesan atau sharing

memori

Page 58: Sistem Operasi

47

Program Sistem

• Program sistem menyediakan kemudahan

pembangunan program dan eksekusi.

– Manipulasi File

– Informasi status

– Modifikasi File

– Dukungan bahasa pemrograman

– Loading dan eksekusi program

– Komunikasi

– Aplikasi program

• Kebanyakan user memandang sistem operasi

sebagai program sistem, bukan sebagai

“actual system calls”.

Page 59: Sistem Operasi

48

Struktur Sistem Operasi

• Struktur Sistem Operasi

– Metode untuk mengorganisasi dan membangun sistem operasi

• Contoh: MS-DOS

– Saat dirancang kemampuan PC sangat minimal

• Prosesor: 8086 (10 MHz), Max. memory: 640 Kb

– MS-DOS – dibuat dengan menyediakan “fungsional” dari OS sebanyak mungkin pada resources yang sangat terbatas (memori)

– Tidak dalam bentuk modul => monolithic (satu kesatuan):

• MS-DOS menjadi satu kesatuan besar tanpa batasan jelas – fungsional dan interface

• Terdapat struktur yang sangat sederhana dan “proteksi” yang longgar (single user system)

Page 60: Sistem Operasi

49

Struktur Layer MS-DOS

Page 61: Sistem Operasi

50

Struktur Monolithic

• Tidak terstuktur secara jelas

– Kumpulan program yang menggunakan langsung resources hardware

– Terdapat program-program yang mewakili fungsi OS: processor management, memory management

• OS awal: satu kesatuan proses, dimana kontrol berpindah dari program-program tersebut (“procedure calls)

• Program user (proses): menjadi satu bagian rutin dari (loop) program utama jika tidak melakukan fungsi OS

• User program dijalankan “call” dari OS => eksekusi pada user mode akan berhenti:

– timeout (timer interrupt)

– kembali ke OS (service)

– Interrupt (hardware)

Page 62: Sistem Operasi

51

Pendekatan Sederhana (Kernel)

• Struktur terbatas pada dua layer

– Systems programs: bagian OS yang dibangun di atas kernel – extended machine

– Kernel

• Operasi vital yang penting dan melindungi resources hardware

• Semua service untuk user proses melalui mekanisme system call

• Tugas utama kernel menyediakan fasilitas untuk: multiprogramming/multitasking – dimana proses-proses dapat berjalan serentak (concurrent) dan terpisah

• UNIX (1978)

– Menggunakan pendekatan rancangan sederhana dengan dukungan H/W yang terbatas (PDP-11)

Page 63: Sistem Operasi

52

Struktur Sistem UNIX

Page 64: Sistem Operasi

53

Pendekatan Berlapis

(layer approach) • Susunan berlapis:

– OS dibagi atas sejumlah (lebih dari 2) layer

– Setiap layer melingkupi layer di bawahnya (kendali, akses)

– Layer paling bawah (0) => hardware

– Layer paling atas (N) => user interface

• Rancangan moduler:

– Layer disusun sehingga setiap fungsi/operasi layer atas akan menggunakan “services” pada layer bawah.

Page 65: Sistem Operasi

54

Sistem Operasi Berlapis

Page 66: Sistem Operasi

55

Struktur Berlapis OS/2

Page 67: Sistem Operasi

56

Virtual Machines

• Misalkan terdapat system program => control program yang mengatur pemakaian resources hardware.

• Control program = trap system call + hardware acces.

• Trap suatu software yang memberikan interrupt krn ada error

• Control program memberikan fasilitas ke proses user

– Mendapatkan jatah CPU dan memori.

– Menyediakan interface “identik” dengan apa yang disediakan oleh hardware => sharing devices untuk berbagai proses.

• Virtual machine => control program yang minimal

– VM memberikan ilusi multitasking: seolah-olah terdapat prosesor dan memori ekslusif digunakan (virtual machine).

– VM memilah fungsi multitasking dan implementasi extended machine (tergantung user proses) => flexible dan lebih mudah untuk maintained (proteksi).

Page 68: Sistem Operasi

57

Model Sistem Virtual Machines

Non-virtual Machine Virtual Machine

Virtual Machines

(next…)

Page 69: Sistem Operasi

58

Virtual Machines

(next…) • Jika setiap user diberikan satu virtual machine =>user

bebas untuk menjalankan OS (kernel) yang diinginkan pada VM tersebut.

– Potensi lebih dari satu OS dalam satu komputer.

– Contoh:

• IBM VM370: menyediakan VM untuk berbagai OS: CMS (interaktif), MVS, CICS, dll.

– Problem:

• Sharing disk => setiap OS mempunyai file system yang mungkin berbeda.

• IBM: virtual disk (minidisk) yang dialokasikan untuk user melalui VM.

Page 70: Sistem Operasi

59

Java Virtual Machine

• Program Java dikompile pada platform-

neutral bytecodes yang dieksekusi oleh

Java Virtual Machine (JVM)

• JVM terdiri dari :

- class loader

- class verifier

- runtime interpreter

• Kompiler Just-In-Time (JIT) meningkatkan

kinerja

Page 71: Sistem Operasi

60

Java Virtual Machine

(next…)

Page 72: Sistem Operasi

61

Model Client-Server

• Implementasi fungsi OS (extended machine) dapat menjadi bagian dari user proses (client)

– Request service ke server proses (kernel).

– Kernel: terdiri dari server (file, memory, I/O dll) yang melayani request dari client proses.

– Akses ke hardware harus melalui server proses dari kernel yang mengontrol hardware tersebut.

• Proses : partisi dan struktur yang sangat jelas (interface dan fungsional).

• Konsekuensi : lambat (komunikasi antar client dan server), tidak efisien dalam menggunakan resources.

Page 73: Sistem Operasi

62

Windows NT Client-Server

Structure

Page 74: Sistem Operasi

63

Perancangan Sistem

Tujuan Perancangan Sistem

• Tujuan User – sistem operasi mudah

digunakan, mudah dipelajari, handal,

aman dan cepat

• Tujuan Sistem – sistem operasi mudah

didisain, diimplementasikan dan dikelola,

memiliki fleksibilitas, handal, bebas

kesalahan dan efisien

Page 75: Sistem Operasi

64

Implementasi Sistem

• Secara tradisional ditulis dalam bahasa assemby,

saat ini sistem operasi dapat ditulis dalam bahasa

tingkat tinggi.

• Kode yang ditulis dalam bahasa tingkat tinggi :

• Code written in a high-level language:

– Dapat ditulis secara cepat.

– Lebih compact.

– Lebih mudah dipahami dan debug.

• Sistem operasi jauh lebih mudah untuk di port

(dipindahkan ke hardware lain) jika ditulis dalam

bahasa tingkat tinggi)

Page 76: Sistem Operasi

65

System Generation (SYSGEN)

• Sistem operasi didisain untuk dijalankan pada

berbagai kelas mesin. Sistem harus dikonfirgurasi

untuk setiap komputer secara spesifik

• Program SYSGEN memiliki informasi dalam

mengkonfigurasi sistem hardware secara spesifik

• Booting –awal komputer diaktifkan dengan

melakukan loading kernel.

• Bootstrap program – kode yang disimpan di ROM

yang dapat ditempatkan pada kernel, di load ke

memori dan memulai eksekusi.

Page 77: Sistem Operasi

Next…

66

Page 78: Sistem Operasi

1

Sistem Operasi

Struktur Sistem Komputer

Page 79: Sistem Operasi

2

Arsitektur Sistem Komputer

Page 80: Sistem Operasi

3

Operasi Sistem Komputer

• CPU devices dan I/O dapat beroperasi secara serentak

(concurrent)

– TujuanyaEfisiensi pemakaian CPU

• Semua request ke I/O dikendalikan oleh I/O systems:

– Setiap device terdapat controller yang mengendalikan device

tertentu, misalkan video display => video card, disk => disk

controller.

– Setiap device controller mempunyai local buffer.

• CPU memindahkan data dari/ke memory ke/dari local buffer.

– Setelah itu controller akan mengirimkan data dari local buffer ke

device.

• Bagaimana mekanisme I/O supaya CPU dapat melakukan

switch dari satu job ke job lain???

Page 81: Sistem Operasi

4

Operasi Sistem Komputer

(next…)

• Ilustrasi:

– Instruksi CPU dalam orde: beberapa mikro-detik

– Operasi read/write dari disk: 10 – 15 mili-detik

– Ratio: CPU ribuan kali lebih cepat dari operasi I/O

• Jika CPU harus menunggu (idle) sampai data transfer

selesai, maka utilisasi CPU sangat rendah (lebih kecil

1%).

• Solusi: operasi CPU dan I/O harus overlap

– Concurrent: CPU dapat menjalankan beberapa I/O device

sekaligus

– CPU tidak menunggu sampai operasi I/O selesai tapi

melanjutkan tugas yang lain

– Bagaimana CPU mengetahui I/O telah selesai?

Page 82: Sistem Operasi

5

Programmed I/O

• Programmed I/O

– Mekanisme CPU yang bertanggung jawab

memindahkan data dari/ke memori ke/dari controller

(local buffer)

• CPU bertanggung jawab untuk jenis operasi I/O

– Transfer data dari/ke buffer

• Controller melakukan detil operasi I/O

– Jika telah selesai memberikan informasi ke CPU

flag

• Bagaimana CPU mengetahui operasi telah selesai?

– Apakah menguji flag? Seberapa sering?

Page 83: Sistem Operasi

6

Programmed I/O

(next…)

• CPU harus mengetahui jika I/O telah selesai

hardware flag (controller)

• Polling: CPU secara periodik menguji flag (true or

false)

– Menggunakan instruksi khusus untuk menguji flag

– Masalah: seberapa sering? “wasted CPU time !”?

Antar I/O device berbeda “speed”!

• Interrupt:

– Bantuan hardware – melakukan interupsi pada

CPU jika flag tersebut telah di-set (operasi I/O telah

selesai)

Page 84: Sistem Operasi

7

Interrupt

• Interrupt:

– CPU transfer control ke “interrupt service routine”, address dari

service routine yang diperlukan untuk device tsb.

– Interrupt handler: menentukan aksi/service yang diperlukan

• Struktur interrupt harus menyimpan address dari instruksi yang

sedang dikerjakan oleh CPU (interrupted).

– CPU dapat resume ke lokasi tersebut jika service routine telah

selesai dikerjakan

• Selama CPU melakukan service interrupt, maka interrupt

selanjutnya tidak akan dilayani “disabled”, karena CPU tidak

dapat melayani interrupt (lost).

• Pengoperasian sistem tersebut menggunakan interrupt driven.

Page 85: Sistem Operasi

Proses Interrupt

8

Page 86: Sistem Operasi

9

Interrupt Handling

• Hardware dapat membedakan devices mana yang

melakukan interupsi.

– Jenis interupsi :

• polling

• vectored interrupt system

• Tugas sistim operasi menyimpan status CPU (program

counter, register dll)

– Jika service routine telah selesai CPU dapat

melanjutkan instruksi terakhir yang dikerjakan

– Sistem operasi akan “load” kembali status CPU

tersebut.

Page 87: Sistem Operasi

10

Struktur I/O

• User request I/O:

– CPU: load instruksi ke register controller

– Controller: menjalankan instruksi

• Setelah I/O mulai, control kembali ke program user jika operasi I/O telah selesai

– Instruksi khusus: wait CPU menunggu sampai ada interrupt berikutnya dari I/O tersebut.

– Paling banyak hanya mempunyai satu I/O request.

– Keuntungan: CPU mengetahui secara pasti device mana yang melakukan interrupt (operasi I/O selesai).

– Kerugian: operasi I/O tidak dapat serentak untuk semua device

Page 88: Sistem Operasi

11

I/O Interrupt

• Pilihan lebih baik: asynchronous I/O dibandingkan synchronous

• Setelah I/O mulai, kendali langsung kembali ke user program tanpa menunggu I/O selesai

– CPU dapat melanjutkan operasi I/O untuk device yang lain

– User program dapat menjalankan program tanpa menunggu atau harus menunggu sampai I/O selesai.

– System call – request ke OS untuk operasi I/O dan menunggu sampai I/O selesai.

• Potensi lebih dari satu device

– User hanya dapat menggunakan I/O melalui system call

– Device-status table memuat informasi untuk setiap I/O device: tipe, alamat, status dll

– OS mengatur tabel ini dan mengubah isinya sesuai dengan status device (interrupt)

Page 89: Sistem Operasi

12

Dua Metode I/O

Synchronous Asynchronous

Page 90: Sistem Operasi

13

Device-Status Table

Page 91: Sistem Operasi

14

Direct Memory Access (DMA)

• Jika I/O devices sangat cepat (“high-speed”),beban

CPU menjadi besar harus mengawasi transfer data

dari controller ke memory dan sebaliknya.

• Hardware tambahan => DMA controller dapat

memindahkan blok data dari buffer langsung ke

memory tanpa menggangu CPU.

– CPU menentukan lokasi memory dan jika DMA controller

telah selesai => interrupt ke CPU

– Hanya satu interrupt ke CPU untuk sekumpulan data

(blok).

Page 92: Sistem Operasi

15

Struktur Storage

• Main memory

– Media penyimpanan, dimana CPU dapat melakukan akses

secara langsung

• Secondary storage

– Tambahan dari main memory yang memiliki kapasitas

besar dan bersifat nonvolatile

• Magnetic disks

– Metal keras atau piringan yang terbungkus material

magnetik

– Permukaan disk terbagi secara logikal dalam track, yang

masing-masing terbagi lagi dalam sector

– Disk controller menentukan interaksi logikal antara device

dan komputer

Page 93: Sistem Operasi

16

Mekanisme Pergerakan Head-Disk

Page 94: Sistem Operasi

17

Hirarki Storage

• Hirarki sistem storage, diorganisasikan

dalam bentuk :

– Kecepatan

– Biaya

– Volatilitas

• Caching

– Penduplikasian informasi ke dalam sistem

storage yang cepat dapat dilakukan melalui

cache pada secondary storage

Page 95: Sistem Operasi

18

Hirarki Storage-Device

Page 96: Sistem Operasi

19

Caching

• Menggunakan memori berkecepatan tinggi

untuk menangani akses data saat itu juga

(yang terbaru)

• Membutuhkan manajemen cache.

• Caching mengenalkan tingkatan lain

dalam hirarki storage, dimana data secara

serentak disimpan pada lebih dari satu

tingkatan secara konsisten

Page 97: Sistem Operasi

20

Migrasi dari Disk ke Register

Page 98: Sistem Operasi

21

Proteksi Hardware

• Dual-Mode Operation

• Proteksi I/O

• Proteksi Memory

• Proteksi CPU

Page 99: Sistem Operasi

22

Dual-Mode Operation

• Penggunaan resource sharing membutuhkan

sistem operasi yang menjamin suatu program

yang salah tidak menyebabkan program lain tidak

terpengaruh

• Menyediakan dukungan hardware yang dibedakan

ke dalam dua mode operasi :

1. User mode – eksekusi dilakukan untuk

kepentingan user.

2. Monitor mode (disebut juga kernel mode atau

system mode) – eksekusi dilakukan untuk

kepentingan sistem operasi.

Page 100: Sistem Operasi

23

Dual-Mode Operation

(next…) • Mode bit ditambahkan pada computer hardware (CPU)

untuk indikasi mode sekarang: monitor (0) atau user

(1).

• Jika terjadi interrupt/fault/error hardware mengubah

mode ke monitor

Instruksi Privileged hanya dapat diberikan dalam mode monitor

monitor user

Interrupt/fault

set user mode

Page 101: Sistem Operasi

24

Proteksi I/O

• Semua instruksi I/O adalah instruksi privileged:

– Hanya dapat dilakukan melalui OS

– OS dapat mencegah “request” ke I/O dengan

melihat mode saat ini.

• OS menjaga supaya program user tidak dapat

menjadi “monitor mode” untuk mencegah user

program melakukan:

– Menangani interrupt: dengan mengubah alamat

interrupt vector.

– Mengubah status dan data pada “device table”

Page 102: Sistem Operasi

25

Penggunaan System Call untuk

Pengoperasian I/O

Page 103: Sistem Operasi

26

Proteksi Memory

• Melindungi memori terutama untuk isi:

– interrupt vector dan interrupt service routines.

• Cara umum adalah setiap user program hanya dapat

mengakses lokasi memori yang telah dibatasi

(disediakan untuk program tsb).

– Range address – alamat yang valid

– Base register – menyimpan alamat terkecil memori

secara fisik

– Limit register – besarnya jangkauan memori yang

diijinkan

• Memori diluar range tersebut tidak dapat diakses oleh

user program tsb.

Page 104: Sistem Operasi

27

Penggunaan Base dan Limit

Register

Page 105: Sistem Operasi

28

Proteksi Alamat Hardware

Ketika eksekusi pada mode monitor, OS dapat mengakses semua

lokasi memori.

Pemuatan instruksi ke base dan limit register tergantung instruksi

privileged

Page 106: Sistem Operasi

29

Proteksi CPU

• Timer

– Interupsi secara berkala oleh

hardware:transfer control ke OS.

– Nilai timer akan berkurang sesuai “clock tick”

dari hardware komputer.

– Saat nilai timer menjadi 0, interrupt terjadi

– Housekeeping: melakukan CPU scheduling

(jatah CPU), status device table dll.

• Timer digunakan untuk system time.

Page 107: Sistem Operasi

Next…

30

Page 108: Sistem Operasi

1

Sistem Operasi

Proses

Page 109: Sistem Operasi

2

Konsep Proses

• Sistem operasi menjalankan banyak dan beragam program :

– Batch system jobs

– Time-shared systems user programs atau tasks

– Istilah pada buku teks: job, task dan process (dapat diartikan

sama)

• Proses adalah program yang dieksekusi ;

– Aktif (prosesmemori) vs pasif (program file)

– Instruksi pada program (code) akan dieksekusi secara berurut

(sekwensial) sesuai dengan “line code” (stored program

concept).

• Proses lebih dari “program code yang aktif”:

– Melacak posisi instruksi (sequential execution): program counter

– Menyimpan data sementara var., parameter, return value: stack

– Menyimpan data (initial, global variable dll): data section

– Menyimpan status proses (contoh, aktif, wait I/O request dll.)

Page 110: Sistem Operasi

3

Status Proses

• Saat-saat proses dijalankan (executed) maka status dari

proses akan berubah

– Status proses tidak selamanya aktif menggunakan CPU).

– Sering proses menunggu I/O complete status wait, maka

sebaiknya CPU diberikan kepada proses yang lain.

– Mendukung multi-tasking utilisasi CPU dan I/O

• Status proses (antara lain):

– New proses dibuat.

– Running instruksi dieksekusi.

– Waiting proses menunggu beberapa event yang akan terjadi

– Ready proses menunggu jatah waktu dari prosessor

– Terminated proses selesai dieksekusi.

Page 111: Sistem Operasi

4

Diagram Status Proses

Page 112: Sistem Operasi

5

Informasi Proses

Dimanakah informasi proses disimpan?

• Struktur Data dari OS dalam bentuk table :

– Satu entry table/linked list struktur data untuk menampung

informasi satu proses (array of structure).

– Setiap entry pada tabel proses menyimpan satu proses. Contoh:

MINIX (src/kernel/proc.h) => struct proc { … };

• Informasi yang disimpan:

– Process State new, ready, running, waiting, terminate.

– Program counter Menunjuk alamat berikutnya yang akan

dieksekusi oleh proses tersebut.

– CPU Registeracumulator, index register, stack pointer,

general purpose register.

– Informasi Penjadwalan CPUberisi prioritas dari proses, pointer

ke antrian penjadwalan, dan parameter penjadwalan lainnya.

Page 113: Sistem Operasi

Informasi Proses

(next…) • Informasi manajemen memoryberisi nilai (basis)

dan limit register, page table atau segmen table.

• Informasi acountingberisi jumlah CPU dan real

time yang digunakan, time limit acount number,

jumlah job/proses.

• Informasi status I/Oberisi deretan I/O device

yang dialokasikan untuk proses, daftar file yang

terbuka, dll.

6

Page 114: Sistem Operasi

Process Control Block (PCB)

• Masing-masing proses

direpresentasikan oleh

sistem operasi dengan

menggunakan PCB

7

Page 115: Sistem Operasi

8

CPU Switch Dari Satu Proses ke Proses

Lainnya

Page 116: Sistem Operasi

9

Penjadualan Proses

• Apakah tujuan dari multiprogramming?

– “Maximize” pemakaian CPU secara efisien (jadwal dan giliran

pemakaian CPU).

CPU digunakan oleh proses-proses terus menerus

• Apakah tujuan dari “time-sharing”?

– Pemakaian CPU dapat di switch dari satu proses ke proses lain

(concurrent process execution)

sesering mungkin, user dapat berinteraksi dengan sistim

• Bagaimana jika sistim prosesor tunggal?

– “Hanya ada satu proses yang dapat dijalankan”

– Proses lain menunggu sampai CPU dapat dijadwalkan (schedule) ke

proses tsb

Page 117: Sistem Operasi

10

Ready Queue dan I/O Device Queues

Page 118: Sistem Operasi

11

Penjadualan Proses

• Proses dapat berubah status dan berpindah dari satu antrian ke

antrian yang lain

– Proses dengan status “ready” berada di ReadyQueue

• Menunggu giliran/dipilih oleh scheduler menggunakan

CPU

– Selama eksekusi (status “run”) events yang dapat terjadi:

• I/O request I/O wait berada pada DeviceQueue

• Create “child” proses Jalankan proses “child”, tunggu

sampai proses selesai (wait)

• Time slice expired Waktu pemakaian CPU habis, interrupt

oleh scheduler, proses akan berpindah ke ReadyQueue

Page 119: Sistem Operasi

12

Representasi Penjadualan Proses

Page 120: Sistem Operasi

13

Penjadual / Schedulers

• Bagaimana schedulers memilih proses atau program

(decision)?

– Lebih dari satu proses atau program yang akan dijalankan?

• Long-term scheduler (or job scheduler) memilih

proses/program yang mana yang akan di load dan berada di

ready queue.

– Kemungkinan terdapat proses atau job baru.

– Kemungkinan proses dipindahkan dari memori ke disk (swap

out).

• Short-term scheduler (or CPU scheduler) memilih proses

yang mana yang berada di ready queue akan “run”

(mendapatkan jatah CPU).

Page 121: Sistem Operasi

14

Penjadualan Jangka Menengah

Penjadual / Schedulers

(next…)

Page 122: Sistem Operasi

15

Penjadual / Schedulers

(next…) • Long-term scheduler tidak sering (proses baru) (seconds,

minutes) (may be slow).

– The long-term scheduler controls the degree of

multiprogramming berapa banyak proses yang dapat aktif

(berada di memori)

• Short-term scheduler dijalankan sangat sering (milliseconds)

giliran pemakaian CPU dari proses- proses yang siap

– Pada saat terjadi penggantian alokasi CPU dari satu proses ke

proses lain:

• Menyimpan informasi internal CPU dari proses yang akan

digantikan (SAVE).

• Meload kembali informasi internal CPU dari proses yang akan

menggantikan.

– Dikenal dengan istilah: context switch proses.

Page 123: Sistem Operasi

16

Alih Konteks / Context Switch

• Jika Scheduler switch ke proses lain, maka sistim

harus menyimpan “informasi” proses sekarang

(supaya dapat dijalankan kembali)

• Load “informasi” dari proses baru yang berada di

PCB

• Waktu Context-switch adalah overhead; sistem tidak

melakukan pekerjaan saat terjadi switch.

– Sangat tergantung pada waktu di hardware

– OS modern mencari solusi untuk mengurangi overhead

waktu switch proses

Page 124: Sistem Operasi

17

Pembuatan Proses

• Umumnya proses dapat membuat proses baru (child

process).

– Child process dapat membuat proses baru.

– Terbentuk “tree” dari proses.

• Pilihan hubungan antara parent dan child proses:

– Resource sharing

• Parent dan child berbagi resource

• Children berbagi subset dari resource milik parents.

• Parent dan child tidak berbagi resource.

– Execution

• Parent dan children melakukan eksekusi secara

serempak.

• Parent menunggu hingga children selesai.

Page 125: Sistem Operasi

18

Pembuatan Proses

(next...) • Address space

– Child menduplikasi parent.

– Child memiliki program yang di load ke dalamnya.

• Contoh UNIX :

– fork system call membuat proses baru

– execve (EXEC) :

• menjalankan program spesifik yang lain

• nama program tersebut menjadi parameter dari system call

• EXEC (sering di load sesudah menjalankan fork).

– Tahapan pembuatan proses baru:

• Periksa apakah masih terdapat ruang pada PCB.

• Mencoba mengalokasikan memori untuk proses baru.

• Mengisi informasi untuk proses baru: nama proses, id, copy data dari parent dll.

• Mencantumkan informasi proses ke kernel OS.

Page 126: Sistem Operasi

19

Proses Tree pada Sistem

UNIX

Page 127: Sistem Operasi

20

Terminasi Proses

• Proses dapat berakhir:

– Eksekusi instruksi terakhir (atau keluar: exit system call).

– OS yang akan melakukan dealokasi (memory, file

resources).

• UNIX (MINIX):

– Output signal dari child ke parent

– Jika parent tidak menunggu (via wait system call), proses

akan terminate tapi belum di release dari PCB (status:

ZOMBIE).

– Proses dengan status ZOMBIE (parent telah terminate), akan

menjadi child dari proses “init”.

• Parent dapat menghentikan eksekusi proses child secara paksa.

– Parent dapat mengirim signal (abort, kill system call).

Page 128: Sistem Operasi

21

Kerjasama Proses

• Proses independent tidak mempengaruhi

eksekusi proses yang lain

• Kerjasama proses dapat mempengaruhi atau

dipengaruhi oleh eksekusi proses yang lain

• Keuntungan kerjasama proses :

– Sharing informasi

– Meningkatkan kecepatan komputasi

– Modularitas

– Kemudahan

Page 129: Sistem Operasi

22

Masalah Producer-Consumer

• Paradigma kerjasama proses – proses Producer menghasilkan informasi yang akan dikonsumsi oleh proses Consumer

– Unbounded-buffer – tidak menggunakan batasan ukuran di buffer.

• Consumer selalu dapat meminta item baru dan Producer selalu dapat menghasilkan item-item baru.

– Bounded-buffer – menggunakan buffer dengan ukuran tertentu

• Consumer harus menunggu jika buffer kosong dan Producer harus menunggu jika buffer penuh

Page 130: Sistem Operasi

23

Bounded-Buffer – Solusi dari Shared Memory

• Shared data #define BUFFER_SIZE 10

Typedef struct {

. . .

} item;

item buffer[BUFFER_SIZE];

int in = 0;

int out = 0;

• Solution is correct, but can only use

BUFFER_SIZE-1 elements

Page 131: Sistem Operasi

24

Bounded-Buffer – Proses Producer

item nextProduced;

while (1) {

while (((in + 1) % BUFFER_SIZE) == out)

; /* do nothing */

buffer[in] = nextProduced;

in = (in + 1) % BUFFER_SIZE;

}

Page 132: Sistem Operasi

25

Bounded-Buffer – Proses Consumer

item nextConsumed;

while (1) {

while (in == out)

; /* do nothing */

nextConsumed = buffer[out];

out = (out + 1) % BUFFER_SIZE;

}

Page 133: Sistem Operasi

26

Interprocess Communication (IPC)

• Mekanisme proses untuk komunikasi dan sinkronisasi aksi

• Sistem Pesan – komunikasi proses satu dengan yang lain

dapat dilakukan tanpa perlu pembagian data.

• IPC menyediakan dua operasi :

– send(message) – pesan berukuran pasti atau variabel

– receive(message)

• Jika P dan Q melakukan komunikasi, maka keduanya

memerlukan :

– Membangun jalur komunikasi diantara keduanya

– Melakukan pertukaran pesan melaui send/receive

• Implementasi jalur komunikasi

– physical (shared memory, hardware bus)

– logical (logical properties)

Page 134: Sistem Operasi

27

Komunikasi Langsung

• Proses harus diberi nama secara jelas :

– send (P, message) – kirim pesan ke proses P

– receive(Q, message) – terima pesan dari

proses Q

• Properti jalur komunikasi

– Jalur dibangun secara otomatis

– Setiap jalur memiliki pasangan masing-masing

dalam proses komunikasi

– Jalur komunikasi tersebut biasanya directional

Page 135: Sistem Operasi

28

Komunikasi Tidak Langsung

• Pesan dikirim dan diterima melalui mailboxes

(yang ditunjuk sebagai port)

– Proses

– Processes can communicate only if they share

a mailbox.

• Properti jalur komunikasi

– Jalur komunikasi hanya dibangun jika proses

di-share dalam mailbox

– Jalur merupakan gabungan beberapa proses

– Setiap pasangan proses dibagi ke dalam

beberapa jalur komunikasi.

Page 136: Sistem Operasi

29

Komunikasi Tidak Langsung

(next…) • Operasi

– Membuat mailbox baru

– Mengirim dan menerima pesan melalui

mailbox

– Menghapus/memusnahkan mailbox

• Primitive didefinisikan :

send(A, message) – kirim pesan ke mailbox A

receive(A, message) – terima pesan dari

mailbox A

Page 137: Sistem Operasi

30

Komunikasi Tidak Langsung

(next…) • Mailbox sharing

– P1, P2, dan P3 berbagi (share) mailbox A.

– P1, send; P2 and P3 receive.

– Siapa yang mendapat pesan ?

• Solusi

– Memperbolehkan suatu jalur yang merupakan

gabungan lebih dari dua proses

– Hanya meperbolehkan satu proses pada suatu waktu

untuk mengeksekusi operasi receive .

– Memperbolehkan sistem untuk memilih receiver.

Sender diberitahu siapa yang menjadi receiver.

Page 138: Sistem Operasi

31

Sinkronisasi

• Pesan yang disampaikan dapat di blok atau

tidak (non-blocking)

• Blocking dikenal dengan synchronous.

• Non-blocking dikenal dengan

asynchronous

Page 139: Sistem Operasi

32

Buffering

• Antrian pesan yang dihubungkan dalam suatu jalur, diimplementasikan dengan tiga jalan :

1. Zero capacity – tidak ada pesan - Sender harus menunggu receiver.

2. Bounded capacity – memiliki panjang yang terbatas (finite length) dari n pesan. - Sender menunggu pada saat jalur penuh.

3. Unbounded capacity – memiliki panjang tidak terbatas (infinite length) - Sender tidak pernah menunggu.

Page 140: Sistem Operasi

33

Komunikasi Client-Server

• Sockets

• Remote Procedure Calls (RPC)

• Remote Method Invocation (Java)

Page 141: Sistem Operasi

34

Sockets

• Suatu socket didefinisikan sebagai titik

akhir (endpoint) komunikasi

• A socket is defined as an endpoint for

communication.

• Gabungan IP address dan port

• Socket 161.25.19.8:1625 mengacu pada

port 1625 pada host 161.25.19.8

• Komunikasi berada diantara pasangan

socket

Page 142: Sistem Operasi

35

Komunikasi Socket

Page 143: Sistem Operasi

36

Remote Procedure Calls (RPC)

• Remote Procedure Call (RPC) adalah abstraksi

pemanggilan prosedur diantara proses pada sistem

jaringan

• Stubs – proxy sisi client untuk prosedur aktual pada server

• Stub sisi client ditempatkan di server dengan parameter

marshalls.

• Marshalling proses untuk mengambil koleksi data dan

menyusunnya ke dalam sebuah bentuk yang bisa

dilakukan transmisi

• Stub sisi server menerima pesan, membongkarnya dengan

parameter marshall dan menjalankan prosedur pada

server.

Page 144: Sistem Operasi

37

Eksekusi RPC

Page 145: Sistem Operasi

38

Remote Method Invocation (RMI)

• Remote Method Invocation (RMI) adalah mekanisme pada

JAVA yang hampir sama dengan RPC

• RMI membolehkan program JAVA pada satu mesin untuk

menggunakan metode untuk melakukan remote objek.

Page 146: Sistem Operasi

39

Parameter Marshall

Page 147: Sistem Operasi

Next…

40

Page 148: Sistem Operasi

1

Sistem Operasi

Deadlock

Page 149: Sistem Operasi

2

Masalah Deadlock

• Sekumpulan proses sedang blocked karena setiap

proses sedang menunggu (antrian) menggunakan

“resources” yang sedang digunakan (hold) oleh

proses lain.

• Contoh:

– OS hanya mempunyai akes ke 2 tape drives.

– P1 dan P2 memerlukan 2 tape sekaligus untuk

mengerjakan task (copy).

– P1 dan P2 masing-masing hold satu tape drives dan

sedang blocked, karena menunggu 1 tape drives

“available”.

Page 150: Sistem Operasi

3

Contoh Persimpangan Jalan

• Hanya terdapat satu jalur

• Mobil digambarkan sebagai proses yang sedang menuju

sumber daya.

• Untuk mengatasinya beberapa mobil harus preempt

(mundur)

Sangat memungkinkan untuk terjadinya starvation

(kondisi proses tak akan mendapatkan sumber daya).

Page 151: Sistem Operasi

4

Resource-Allocation Graph

Sekumpulan vertex V dan sekumpulan edge E

• V dipartisi ke dalam 2 tipe

– P = {P1, P2, …, Pn}, terdiri dari semua proses dalam sistem.

– R = {R1, R2, …, Rm}, terdiri dari semua sumberdaya dalam

sistem

• request edge/permintaan edge : arah edge P1 Rj

• assignment edge/penugasan edge – arah edge Rj Pi

Page 152: Sistem Operasi

5

Resource-Allocation Graph

(next…) • Process

• Resource Type with 4 instances

• Pi requests instance of Rj

• Pi is holding an instance of Rj

Pi

Rj

Pi

Rj

Page 153: Sistem Operasi

6

Resource-Allocation Graph

(next…)

Page 154: Sistem Operasi

7

Graf Resource Allocation Dengan Deadlock

Page 155: Sistem Operasi

8

Graf Resource Allocation dengan Cycle Tanpa Deadlock

Page 156: Sistem Operasi

9

Kondisi yang Diperlukan untuk Terjadinya Deadlock

• Mutual Exclusion

– Serially-shareable resources (mis. Buffer)

– Contoh: Critical section mengharuskan mutual

exclusion (termasuk resource), sehingga

potensi proses akan saling menunggu

(blocked).

• Hold & wait :

– Situasi dimana suatu proses sedang hold

suatu resource secara eksklusif dan ia

menunggu mendapatkan resource lain (wait).

Page 157: Sistem Operasi

10

Kondisi yang Diperlukan untuk Terjadinya Deadlock

(next…)

• No-Preemption Resource :

– Resource yang hanya dapat dibebaskan secara

sukarela oleh proses yang telah mendapatkannya

– Proses tidak dapat dipaksa (pre-empt) untuk

melepaskan resource yang sedang di hold

• Circular wait

– Situasi dimana terjadi saling menunggu antara

beberapa proses sehingga membentuk waiting chain

(circular)

– Misalkan proses (P0, P1, .. Pn) sedang blok menunggu

resources: P0 menunggu P1, P1 menunggu P2, .. dan Pn

menunggu P0.

Page 158: Sistem Operasi

11

Metode Penanganan Deadlock

• Deadlock Prevention: Pencegahan

adanya faktor-faktor penyebab deadlock

• Deadlock Avoidance: Menghindari dari

situasi yang potensial dapat mengarah

menjadi deadlock

• Deadlock Detection: Jika deadlock

ternyata tidak terhindari maka bagaimana

mendeteksi terjadinya deadlock, dilanjutkan

dengan penyelamatan (recovery).

Page 159: Sistem Operasi

12

Deadlock Prevention

• Pencegahan: Faktor-faktor penyebab deadlock

yang harus dicegah untuk terjadi

• 4 faktor yang harus dipenuhi untuk terjadi

deadlock:

– Mutual Exclusion: pemakaian resources.

– Hold and Wait: cara menggunakan resources.

– No preemption resource: otoritas/hak.

– Circular wait: kondisi saling menunggu.

• Jika salah satu bisa dicegah maka deadlock pasti

tidak terjadi!

Page 160: Sistem Operasi

13

Deadlock Prevention

(next…) • Tindakan preventif:

– Batasi pemakaian resources

– Masalah: sistim tidak efisien, tidak feasible

• Mutual Exclusion:

– tidak diperlukan untuk shareable resources

– read-only files/data : deadlock dapat dicegah dengan tidak membatasi akses (not mutually exclusive)

– tapi terdapat resource yang harus mutually exclusive (printer)

Page 161: Sistem Operasi

14

Deadlock Prevention

(next…) • Hold and Wait

– Request & alokasi dilakukan saat proses start

(dideklarasikan dimuka program)

– Request hanya bisa dilakukan ketika tidak

sedang mengalokasi resource lain; alokasi

beberapa resource dilakukan sekaligus dalam

satu request

– Simple tapi resource akan dialokasi walau

tidak selamanya digunakan (low utilization)

serta beberapa proses bisa mengalami

starvation

Page 162: Sistem Operasi

15

Deadlock Prevention

(next…) • Mencegah Circulair Wait

– Pencegahan: melakukan total ordering terhadap semua jenis resource

– Setiap jenis resource mendapatkan index yang unik dengan bilangan natural: 1, 2, . .

• Contoh: tape drive=1, disk drive=5, printer=12

– Request resource harus dilakukan pada resource-resource dalam urutan menaik (untuk index sama - request sekaligus)

– Jika Pi memerlukan Rk yang berindeks lebih kecil dari yang sudah dialokasi maka ia harus melepaskan semua resource Rj yang berindeks ≥ Rk

Page 163: Sistem Operasi

16

Deadlock Prevention

(next…) • Mencegah No-Preemption

– Jika proses telah mengalokasi resource

dan ingin mengalokasi resource lain –

tapi tidak diperoleh (wait) : maka ia

melepaskan semua resource yang telah

dialokasi.

– Proses akan di-restart kelak untuk

mecoba kembali mengambil semua

resources

Page 164: Sistem Operasi

17

Deadlock Avoidance

• Pencegahan:

– Apabila di awal proses; OS bisa mengetahui resource mana saja yang akan diperlukan proses.

– OS bisa menentukan penjadwalan yang aman (“safe sequence”) alokasi resources.

• Model:

– Proses harus menyatakan max. jumlah resources yang diperlukan untuk selesai.

• Algoritma “deadlock-avoidance” secara dinamik akan memeriksa alokasi resource apakah dapat mengarah ke status (keadaan) tidak aman (misalkan terjadi circulair wait condition)

• Jadi OS, tidak akan memberikan resource (walaupun available), kalau dengan pemberian resource ke proses menyebakan tidak aman (unsafe).

Page 165: Sistem Operasi

18

Safe, unsafe, deadlock state

Page 166: Sistem Operasi

19

Safe state

• Prasyarat:

– Proses harus mengetahui max. resource yang diperlukan (upper bound) => asumsi algoritma.

– Proses dapat melakukan hold and wait, tapi terbatas pada sekump lan resource yang telah menjadi “kreditnya”.

• Setiap ada permintaan resource, OS harus memeriksa

– “jika resource diberikan”, dan terjadi “worst case” semua proses melakukan request “max. resource”

– Terdapat “urutan yang aman” dari resources yang available, untuk diberika ke proses, sehingga tidak terjadi deadlock.

Page 167: Sistem Operasi

20

Kondisi Safe

• Resources: 12 tape drive.

A (Available): 12 - 10 = 2

Safe sequnce:

2 tape diberikan ke U2,

U2 selesai => Av = 6,

Berikan 3 tape ke U1,

Berikan 3 tape ke U3.

No deadlock.

Page 168: Sistem Operasi

21

Kondisi Unsafe

• Resources: 12 tape drive.

A (Available): 12 - 11 = 1

Terdapat 1 tape available,

sehingga dapat terjadi

Deadlock.

Page 169: Sistem Operasi

22

Algoritma Banker’s

• Proses harus “declare” max. kredit resource yang diinginkan.

• Proses dapat block (pending) sampai resource diberikan.

• Banker’s algorithm menjamin sistim dalam keadaan safe state.

• OS menjalankan Algoritma Banker’s,

– Saat proses melakukan request resource.

– Saat proses terminate atau release resource yang digunakan => memberikan resource ke proses yang pending request.

Page 170: Sistem Operasi

23

Algoritma Banker’s

(next…) • Metode :

1. Scan tabel baris per baris untuk

menemukan job yang akan diselesaikan

2. Tambahkan pada job terakhir dari

sumberdaya yang ada dan berikan nomor

yang available

– Ulangi 1 dan 2 hingga :

• Tidak ada lagi job yang diselesesaikan

(unsafe) atau

• Semua job telah selesai (safe)

Page 171: Sistem Operasi

24

Algoritma Banker’s

(next…) • Misakan terdapat: n proses dan m resources.

• Definisikan:

– Available: Vector/array dengan panjang m.

If available [j] = k, terdapat k instances resouce jenis Rj yang dapat digunakan.

– Max: matrix n x m.

If Max [i,j] = k, maka proses Pi dapat request paling banyak k instances resource jenis Rj.

– Allocation: matrix n x m.

If Allocation[i,j] = k maka Pi saat ini sedang menggunakan

(hold) k instances Rj.

– Need: matrix n x m.

If Need[i,j] = k, maka Pi palaing banyak akan membutuhkan

instance Rj untuk selesai.

– Need [i,j] = Max[i,j] – Allocation [i,j].

Page 172: Sistem Operasi

25

Algoritma Safety

• Let Work and Finish be vectors of length m and n,respectively. Initialize:

Work := Available // resource yang free

Finish [i] = false for i = 1,3, …, n.

• Find and i such that both: // penjadwalan alokasi resource

(a) Finish [i] = false // asume, proses belum complete

(b) Needi £ Work // proses dapat selesai, ke step 3

If no such i exists, go to step 4.

• Work := Work + Allocationi // proses dapat selesai

Finish[i] := true

go to step 2.

• If Finish [i] = true for all i, then the system is in a safe state.

Page 173: Sistem Operasi

26

Algoritma Safety

(next…) • Terdapat 3 proses: n = 3, 1 resource: m = 1

• Jumlah resource m = 12.

• Snapshot pada waktu tertentu:

Page 174: Sistem Operasi

27

Algoritma Safety

(next…)

Let Need[3]; Max[3]; Aloc[3]; Finish[3]; Work [1];

1. Work = Available; // Work = 2;

Finish[0]=false, Finish[1]=false, Finish[3]=false;

2. do { FlagNoChange = false;

for I=0 to 2 {

if ((Finish[I] == false)) && (Need[I] <= Work) {

Finis[I] = true;

Work = Work + Aloc[I]; FlagNoChange = true;

}

} until (FlagNoChange);

Page 175: Sistem Operasi

28

Deadlock Detection

• Mencegah dan menghidari dari deadlock sulit

dilakukan:

– Kurang efisien dan utilitas sistim

– Sulit diterapkan: tidak praktis, boros resources

• Mengizinkan sistim untuk masuk ke “state deadlock”

– Gunakan algoritma deteksi (jika terjadi deadlock)

• Deteksi: melihat apakah penjadwalan pemakaian resource

yang tersisa masih memungkinkan berada dalam safe

state (variasi “safe state”).

– Skema recovery untuk mengembalikan ke “safe state”

Page 176: Sistem Operasi

29

Single Instance

• Gunakan: resource allocation graph

– Node mewakili proses, arcus mewakili

request dan hold dari resources.

– Dapat disederhanakan dalam “wait-for-graph”

• Pi Pj if Pi is waiting for Pj.

– Secara periodik jalankan algoritma yang

mencari cycle pada graph:

• Jika terdapat siklus (cycle) pada graph

maka telah terjadi deadlock.

Page 177: Sistem Operasi

30

Recovery dari Deadlock

• Batalkan semua proses deadlock

• Batalkan satu proses pada satu waktu hingga siklus

deadlock dapat dihilangkan

• Proses mana yang dapat dipilih untuk dibatalkan ?

– Proses dengan prioritas

– Proses dengan waktu proses panjang

– Sumberdaya proses yang telah digunakan

– Sumberdaya proses yang lengkap

– Banyak proses yang butuh untuk ditunda

– Apakah proses tersebut interaktif atau batch

Page 178: Sistem Operasi

31

Recovery dari Deadlock

(next…) • Pilih proses – meminimasi biaya

• Rollback – kembali ke state safe, mulai

lagi proses dari state tersebut

• Starvation – proses yang sama selalu

diambil sebagai pilihan, termasuk rollbak

dalam faktor biaya

Page 179: Sistem Operasi

32

Pendekatan Kombinasi

• Kombinasi dari tiga pendekatan dasar

– prevention

– avoidance

– detection

• Pemisahan sumberdaya ke dalam hirarki

kelas

Page 180: Sistem Operasi

Next…

33

Page 181: Sistem Operasi

1

Sistem Operasi

Memory

Page 182: Sistem Operasi

2

Memory Management

• Latar Belakang

• Swapping

• Contiguous Allocation

• Paging

• Segmentation

• Segmentation dengan Paging

Page 183: Sistem Operasi

3

Latar Belakang

Untuk dieksekusi program harus berada dalam

memori

Eksekusi: proses

Alokasi resources memori: ruang (tempat storage) untuk

menyimpan data, instruksi, stack dll.

Problem: Memori secara fisik (besarnya storage)

sangat terbatas ukurannya,

Manajemen storage: alokasi dan dealokasi untuk proses-

proses

Utilisasi: optimal dan efisien

Page 184: Sistem Operasi

4

alamat Binding

• Sebalum eksekusi program berada di

dalam disk, dan saat dieksekusi ia perlu

berada pada suatu lokasi dalam memori

fisik

• alamat binding adalah menempatkan

alamat relatif ke dalam adress fisik memori

yang dapat berlangsung dalam di salah

satu tahapan: kompilasi, load, atau

eksekusi

Page 185: Sistem Operasi

5

Tahapan Running Program

• Tahapan kompilasi: source program

(source code) dikompilasi menjadi object

module (object code)

• Tahapan link & load: object module di-link

dengan object module lain menjadi load

module (execution code) kemudian di-load

ke memori untuk dieskekusi

• Tahapan eksekusi: mungkin juga

dilakukan dynamic linking dengan

resident library

Page 186: Sistem Operasi

6

Alamat Binding: Saat Kompilasi

Jika lokasi dari proses sudah diketahui

sebelumnya maka saat kompilasi alamat-

alamat instruksi dan data ditentukan

dengan alamat fisik

jika terjadi perubahan pada lokasi tersebut

maka harus direkompilasi

Page 187: Sistem Operasi

7

Alamat Binding: Saat Load

Code hasil kompilasi masih menunjuk

alamat-alamat secara relatif, saat di-load

alamat-alamat disubstitusi dengan alamat

fisik berdasar relokasi proses yang

diterima

Jika terjadi perubahan relokasi maka code

di-load ulang

Page 188: Sistem Operasi

8

Alamat Binding: Saat Eksekusi

• Binding bisa dilakukan ulang selama

proses

– hal ini untuk memungkinkan pemindahan

proses dari satu lokasi ke lokasi lain selama

run

• Perlu adanya dukungan hardware untuk

pemetaan adress

– contoh: base register dan limit register

Page 189: Sistem Operasi

9

Tahapan Pemrosesan User rogram

Page 190: Sistem Operasi

10

Ruang Alamat Logik vs. Fisik

• Konsep ruang alamat logik terhadap ruang alamat

fisik adalah hal pokok dalam manajemen memori

• alamat logik: alamat yang di-generate oleh CPU

(disebut juga virtual alamat)

– Berdasarkan eksekusi program

– Note: Besarnya alamat program dapat lebih besar dari

kapasitas memori fisik.

• alamat fisik: alamat yang dikenal oleh unit memory

– alamat sebenarnya yang digunakan untuk mengakses

memori.

• Perlu ada penerjemahan (translasi) dari alamat logik

ke alamat fisik.

Page 191: Sistem Operasi

11

Memory-Management Unit

(MMU) • Perangkat Hardware yang memetakan alamat logik

(virtual) ke alamat fisik.

• Dalam skema MMU

– Menyediakan perangkat register yang dapat di set oleh

setiap CPU: setiap proses mempunyai data set register tsb

(disimpan di PCB).

• Base register dan limit register.

– Harga dalam register base/relokasi ditambahkan ke setiap

address proses user pada saat run di memori

– Program user hanya berurusan dengan addressaddress

logik saja

Page 192: Sistem Operasi

12

Relokasi Dinamik menggunakan

Register Relokasi

Page 193: Sistem Operasi

13

Dynamic Loading

• Rutin tidak akan di load jika tidak dipanggil (execute).

• Pro’s: utilisasi memory-space, rutin yang tidak dieksekusi

tidak akan dipanggil (program behaviour: 70-80% dari code).

– Handling execption, error, atau pilihan yang jarang

digunakan.

• Tidak perlu dukungan khusus dari OS:

– Overlay: memori terbatas dan program lebih besar dari

memori.

– Disusun berdasarkan hirarkis dalam bentuk tree: root –

branch dan leaves (misalkan root harus ada di memory,

sedangkan yang lain dapat di load bergantian).

– Tidak dilakukan otomatis tapi harus dirancang oleh

programmer (user).

Page 194: Sistem Operasi

14

Dynamic Linking

• Linking ditunda sampai saat eksekusi

– code menjadi berukuran kecil.

• Program-program user tidak perlu menduplikasi

system library

– system library dipakai bersama

– Mengurangi pemakaian space: satu rutin library di

memory digunakan secara bersama oleh sekumpulan

proses.

– Contoh: DLL (dynamic linking library) Win32

• Mekanisme menggunakan skema Stub

– stub: suatu potongan kecil code menggantikan referensi

rutin (dan cara meload rutin tsb)

Page 195: Sistem Operasi

15

Overlay

• Overlay membagi program yang besar menjadi

bagian-bagian yang lebih kecil dan daat dimuat

dalam memori utama.

• Dibutuhkan ketika proses yang ada lebih besar

dibandingkan memori yang tersedia

• Diimplementasikan oleh user, tidak ada dukungan

khusus dari sistem operasi, disain program pada

struktrur overlay cukup kompleks.

Page 196: Sistem Operasi

16

Overlay pada Two-Pass Assembler

Page 197: Sistem Operasi

17

Swapping

• Suatu proses dapat di-swap secara temporary keluar dari memori dan dimasukkan ke backing store, dan dapat dimasukkan kembali ke dalam memori pada eksekusi selanjutnya.

• Backing store –disk cepat yang cukup besar untuk mengakomodasi copy semua memori image pada semua user; menyediakan akses langsung ke memori image.

• Roll out, roll in – varian swapping yang digunakan dalam penjadualan prioritas; proses dengan prioritas rendah di-swap out, sehingga proses dengan prioritas tinggi dapat di-load dan dieksekusi.

• Bagian terbesar dari swap time adalah transfer time, total transfer time secara proporsional dihitung dari jumlah memori yang di swap.

• Modifikasi swapping dapat ditemukan pada sistem UNIX, Linux dan Windows.

Page 198: Sistem Operasi

18

Skema Swapping

Page 199: Sistem Operasi

19

Contiguous Allocation

• Memori utama biasanya terbagi dalam dua bagian:

– Resident operating system, biasanya tersimpan di alamat

memori rendah termasuk interrupt vector .

– User proces menggunakan memori beralamat tinggi/besar.

• Single-partition allocation

– Relokasi register digunakan untuk memproteksi masing-

masing user proses dan perubahan kode sistem operasi

dan data.

– Relokasi register terdiri dari alamat fisik bernilai rendah;

limit register terdiri dari rentang/range alamat logik, setiap

alamat logik harus lebih kecil dari limit register.

Page 200: Sistem Operasi

20

Dukungan Hardware untuk Relokasi dan Limit

Register

Page 201: Sistem Operasi

21

Multiple-Partition Allocation

• Partisi Fixed-Sized (MFT) – Memori dibagi menjadi beberapa blok dengan ukuran

tertentu yang seragam

– Jumlah proses yang bisa running max hanya sejumlah blok yang disediakan(misal IBM OS/360)

• Partisi Variabel-Size (MVT) – Pembagian memori sesuai dengan request dari proses-

proses yang ada.

• Lebih rumit karena ukuran alokasi (partisi) memori dapat bervariasi

– Peranan memori manajemen semakin penting: list dari partisi yang digunakan, free dll.

Page 202: Sistem Operasi

22

Contoh: Multiple Allocation

Page 203: Sistem Operasi

23

Masalah pada Dynamic Storage-

Allocation

Bagaimana agar proses berukuran n dapat menempati

hole yang bebas

• First-fit: Mengalokasikan proses pada hole pertama

yang ditemui yang besarnya mencukupi

• Best-fit: Mengalokasikan proses pada hole dengan

besar paling cocok (fragmentasinya kecil).

• Worst-fit: Mengalokasikan proses pada hole dengan

fragmentasi terbesar.

First-fit dan best-fit lebih baik dibandingkan worst-fit dalam

hal kecepatan dan pemanfaatan storage.

Page 204: Sistem Operasi

24

Fragmentasi (issue)

• External (masalah variable sized partition):

– Ruang memori free, namun tidak contiguous.

– Hole-hole ada di antara proses-proses berturutan.

– Tidak dapat digunakan karena proses terlalu

besar untuk menggunakannya.

• Internal (masalah fixed size):

– Sifat program dinamis (alokasi dan dealokasi).

– Memori yang teralokasi mungkin lebih besar

dari memori yang diminta (wasted).

Page 205: Sistem Operasi

25

Paging

• Membagi memori fisik ke dalam blok (page, frame)

dengan ukuran tertentu (fixed) yang seragam.

– Memudahkan manajemen free memory (hole) yang dapat

bervariasi.

– Tidak perlu menggabungkan hole menjadi blok yang besar

seperti pada variable partition (compaction).

– OS lebih sederhana dalam mengontrol (proteksi dan

kebijakan) pemakaian memori untuk satu proses.

• Standard ukuran blok memori fisik yang

dialokasikan (de-alokasi) untuk setiap proses.

– Ukuranya (tergantung OS): 512 byte s/d 16 KB.

Page 206: Sistem Operasi

26

Page Allocation

• Alokasi:

– Terdapat “free list” yang menyimpan informasi “frame” di

memori fisik yang tidak digunakan

– Tergantung besarnya proses => memerlukan n pages

– Alokasi frame diberikan sesuai dengan permintaan

(demand, expand).

• Implikasi:

– User’s (program) view (logical address): memori

dialokasikan secara sinambung (contiguous)

– Fakta (physical address): memori fisik tersebar

(noncontiguous) sesuai dengan frame yang dialokasikan.

Page 207: Sistem Operasi

27

Skema Paging

• Bagaimana menjembatani antara “user’s view” dan alokasi memori sebenarnya? – Penerjemahan (translasi) alamat logical ke alamat fisik =>

tugas dari OS (user/program “transparant”).

– Perlu dukungan hardware (CPU) => address translation.

• Setiap proses mempunyai informasi “pages” yang dialokasikan oleh OS – Mapping setiap alamat logical ke alamat fisik

– Issue: mekanisme mudah, cepat dan efisien.

– Page table: berisi “base address” (alamat fisik) dari frame yang telah dialokasikan ke proses tsb.

Page 208: Sistem Operasi

28

Page table

• Setiap OS mempunyai cara menyimpan page table

untuks setiap proses

• Page table bagian dari setiap proses.

– Page table berada di memori, saat proses tersebut

dieksekusi.

– Informasi page table disimpan oleh PCB: pointer ke page

table dari proses tersebut.

– Setiap kali terjadi context switch => informasi page table

untuk proses yang baru harus di restore (misalkan

referensi/pointer lokasi page table tsb. di memori).

Page 209: Sistem Operasi

29

Page table (h/w support)

• Menggunakan “fast register” – Contoh: DEC PDP11 : 16 bit address (logical 216 ): 64K, page size

8K (213 ).

– Memerlukan page table dengan: 8 entry (dapat diterapkan pada hardware register, hanya 3 bit)

• Untuk komputer modern sulit menggunakan fast register – Pentium : 32 bit address logical (total: 4 GB), page size (8K), maka

mempunyai potensi entry: 524.288 entry.

– Page table disimpan pada memori (bagian program) dengan menggunakan page table base register

– Page-table base register (PTBR) : pointer ke page-table di memori.

– Page-table length register (PTLR) : besarnya ukuran page table (karena tidak semua proses memerlukan ukuran page tabel max.)

Page 210: Sistem Operasi

30

Paging: translation

• Address logik dari CPU dianggap terdiri atas dua

bagian:

– Page number (p): merupakan indeks dalam tabel yang

berisi base address dari tiap page dalam memori fisik

– Page offset (d): menunjukkan lokasi address memori

berdasarkan “base address” pada page tersebut.

Page 211: Sistem Operasi

31

Address: hardware support

Page 212: Sistem Operasi

32

Contoh Paging

Page 213: Sistem Operasi

33

Model Paging

Page 214: Sistem Operasi

34

Contoh :

• Misalkan LA: 4 bits (max. logical addres:

16 lokasi)

– Page size => 4 bytes (ditentukan oleh

designerOS).

• 2 bits: menunjuk ke alamat dari masing-masing

byte dalam setiap page tersebut.

– Page table: tersisa 2 bits

• Max. 4 entry

• Jadi setiap proses max. akan menggunakan 4

pages => mencakup seluruh alamat logical.

Page 215: Sistem Operasi

35

Contoh (2)

Page 216: Sistem Operasi

36

Contoh (3) :

• Logical address: 11 10 (program view: 14 desimal => “o”)

• Page translation (physical memory allocation):

– Bagian: p (index page) => base address dari frame.

Binary 11 => 3 (index = 3 dari page table)

=> berisi base address untuk frame 2 di memori.

– Bagian offset: d (displacement)

Binary 10 => 2

– Alamat fisik:

base address frame 2 : 2 * 4 => 8;

=> 8 + 2 = 10 (berisi “o”).

Page 217: Sistem Operasi

37

Frame table

• OS harus mempunyai informasi “frame” dari memori fisik:

– Berapa banyak frame yang bebas?

– Mana saja frame yang bebas (identifikasi) => frame table (list)

– Informasi hubungan antara satu frame dengan page mana dari proses yang aktif

– List ini akan terus di-update, misalkan jika proses terminate maka semua frame yang dialokasikan akan di kembalikan ke free list.

Page 218: Sistem Operasi

38

Frame Bebas

Before allocation After allocation

Page 219: Sistem Operasi

39

Page size

• Fragmentasi internal pada page terakhir – Tidak ada fragmentasi eksternal

– Fragmentasi internal bisa terjadi

– Worst-case: • Untuk proses yang memerlukan n page + 1 byte

• bila ukuran page = 4096 byte maka akan terbuang 4095 byte / process

– Besarnya ukuran pages • Independent dari program/proses (system wide)

• Intuitif: small pages preferable – Apakah keuntungan ukuran pages kecil?

• Page table entry dapat dikurangi dengan memperbesar ukuran pages – Apakah keuntungan ukuran pages besar?

• Umumnya page disesuaikan dengan kapasitas memori (tipikal) pada sistim (range: 2 – 8 Kbytes)

Page 220: Sistem Operasi

40

Implementasi Page Table

• Page table disimpan di main memory.

• Page-table base register (PTBR) menunjuk ke page table.

• Page-table length register (PRLR) mengindikasikan ukuran

page table.

• Pada skema ini, setiap akses data/instruksi membutuhkan

dua memori akses. Satu untuk page table dan satu untuk

data/instruksi.

• Masalah yang ada pada dua akses memori dapat

diselesaikan dengan menggunakan cache memori

berkecepatan tinggi yang disebut associative memory or

translation look-aside buffers (TLBs)

Page 221: Sistem Operasi

41

Paging Hardware dengan TLB

Page 222: Sistem Operasi

42

Multilevel Paging

• Address logical besar => page table menjadi besar.

– Misalkan: LA => 32 bits, dan ukuran page frame: 12 bits,

maka page table: 20 bits (2^20 => 1 MB).

– Page table dapat dipisah dalam bentuk pages juga,

sehingga tidak semua page table harus berada di memori.

• Address lojik terdiri atas: section number s, page

number p, offset d

– s indeks ke dalam outer page table dan p displacement

dalam page table

Page 223: Sistem Operasi

43

Two level page table

Page 224: Sistem Operasi

44

Translation: multilevel

Page 225: Sistem Operasi

45

Proteksi Memory

• Proteksi memori diimplementasikan dengan

asosiasi proteksi bit pada setiap frame

• Valid-invalid bit ditambahkan/dimasukkan

pada page table :

– Bit akan diset valid jika page yang bersangkutan

ada pada area ruang alamat logika

– Bit akan diset “invalid” jika page yang

bersangkutan berada di luar area ruang alamat

logika.

Page 226: Sistem Operasi

46

Valid (v) or Invalid (i) Bit pada

Page Table

Page 227: Sistem Operasi

47

Inverted Page Table

• Satu masukan untuk setiap real page dari

memori

• Masukan dari alamat virtual disimpan

pada lokasi real memori, dengan informasi

proses pada page

• Penurunan memori dibutuhkan untuk

menyimpan setiap page table, tetapi

setiap kenaikan waktu dibutuhkan untuk

mencari tabel saat pager refference

dilakukan

Page 228: Sistem Operasi

48

Arsitektur Inverted Page Table

Page 229: Sistem Operasi

49

Shared Pages

• Shared code

– Satu copy kode read-only (reentrant) dibagi diantara

proses (contoh text editor, compiler, window system).

– Shared code harus dimunculkan pada lokasi yang sama

pada alamat logik semua proses.

• Private code dan data

– Setiap proses menyimpan sebagian copy kode dan data.

– Page untuk kode private dan data dapat ditampilkan

dimana saja pada ruang alamat logik.

Page 230: Sistem Operasi

50

Contoh Shared Pages

Page 231: Sistem Operasi

51

Segmentasi

• Skema pengaturan memori yang mendukung user untuk melihat memori tersebut..

• Sebuah program merupakan kumpulan dari segment. Sebuah segement berisi unit logik seperti: main program,

procedure,

function,

method,

object,

local variables, global variables,

common block,

stack,

symbol table, arrays

Page 232: Sistem Operasi

52

User View Program

Page 233: Sistem Operasi

53

Pandangan Logik Segmentasi

1

3

2

4

1

4

2

3

user space physical memory space

Page 234: Sistem Operasi

54

Arsitektur Segmentasi

• Alamat logik terdiri dari dua tuple:

<segment-number, offset>,

– Harus diset oleh programmer atau compiler untuk

menyatakan berapa besar segment tersebut

– Implikasi: segment bervariasi besarnya (bandingkan

dengan page table: fixed dan single/flat address space =>

hardware yang menentukan berapa size)

• Segment table – mapping dari LA ke PA

– base table – berisi lokasi awal dari physical address

dimana segment berada di memori.

– limit table – berisi panjang (besar) dari segmen tersebut.

Page 235: Sistem Operasi

55

Arsitektur Segmentasi (Cont.)

• Relokasi.

– Dynamic

– Melalui segment table

• Sharing.

– Shared segments

– Nomor segment yang sama

• Alokasi.

– first fit/best fit

– external fragmentation

Page 236: Sistem Operasi

56

Segmentasi Hardware

Page 237: Sistem Operasi

57

Contoh Segmentasi

Page 238: Sistem Operasi

58

Sharing of Segments

Page 239: Sistem Operasi

59

Segmentasi Paging

• Intel 386

– Logical address (32 bits) dibagi atas 2:

• Selector: Segment: S (13 bits), Descriptor Table (1 bit:

Local or Global); Protection ( 2 bits)

• Offset: 16 bits

– Melalui Descriptor table

• Selector menentukan entry pada table, melihat

protection, dan menguji limit (tabel berisi informasi limit)

• Menghasilkan linear address: Base address segment +

offset

– Logical Linear address: paging (besar page: 4 K), 2 level

(10 bits untuk direktori dan 10 bits untuk page number),

offset: 12 bits.

Page 240: Sistem Operasi

60

Alamat Translasi Intel 30386

Page 241: Sistem Operasi

Next…

61

Page 242: Sistem Operasi

1

Sistem Operasi

Virtual Memory

Page 243: Sistem Operasi

2

Latar Belakang

• Manajemen memori: – Alokasi “space” memori fisik kepada program yang

diekesekusi (proses).

– Pendekatan: Alokasi space sesuai dengan kebutuhan “logical address” => seluruh program berada di memori fisik.

• Kapasitas memori harus sangat besar untuk mendukung “multiprogramming”.

– Bagaimana jika kapasitas memori terbatas?

– Pendekatan: Teknik Overlay (programming) dapat memanfaatkan kapasitas kecil untuk program yang besar.

• Batasan (tidak transparant, cara khusus): program sangat spesifik untuk OS tertentu.

Page 244: Sistem Operasi

3

Latar Belakang

(next…) • Q: Apakah sesungguhnya diperlukan seluruh

program harus berada di memori? – Mayoritas kode program untuk menangani “exception”,

kasus khusus dll. (sering tidak dieksekusi).

– Deklarasi data (array, etc) lebih besar dari yang digunakan oleh program.

• IDEA: – Sebagian saja program (kode yang sedang dieksekusi)

berada di memori, tidak harus serentak semua program berada di memori.

– Jika kode program diperlukan maka OS akan mengatur dan mengambil page yang berisi program tersebut dari “secondary storage” ke “main memory”.

Page 245: Sistem Operasi

4

Latar Belakang

(next…) • Pro’s (jika OS yang melakukan “overlay”)

– Programmer dapat membuat program sesuai dengan

kemampuan “logical address” (virtual address) tanpa

harus menyusun modul mana yang harus ada di memori.

• Fungsi OS sebagai “extended machine”: memberikan ilusi

seolah-olah memori sangat besar, memudahkan

penulisan program dan eksekusi program.

– Proses dapat dieksekusi tanpa memerlukan memori fisik

yang besar => banyak proses.

• Fungsi OS sebagai “resource manager”: menggunakan

utilitas memori yang terbatas untuk dapat menjalankan

banyak proses.

Page 246: Sistem Operasi

5

Latar Belakang

(next…) • Konsep Virtual Memory:

– Pemisahan antara “user logical memory” (virtual) dengan “physical memory”.

– Logical address space (program) dapat lebih besar dari alokasi memori fisik yang diberikan.

– Hanya sebagian kecil dari program yang harus berada di memori untuk eksekusi.

– Terdapat mekanisme untuk melakukan alokasi dan dealokasi page (swapped out dan in) sesuai dengan kebutuhan (referensi program).

– Terdapat bagian dari disk menyimpan sisa page (program) yang sedang dijalankan di memori.

• Virtual memory dapat diimplementasikan melalui : – Demand paging

– Demand segmentation

Page 247: Sistem Operasi

6

Virtual Memory Lebih Besar daripada

Memori Fisik

Page 248: Sistem Operasi

7

Demand Paging

• Umumnya basis VM => paging.

• Demand (sesuai dengan kebutuhan): – Ambil/bawa page ke memory hanya jika diperlukan.

– Umumnya program memerlukan page sedikit (one by one).

– Less I/O & less memory (more users).

– Transfer cepat (faster response).

• Kapan page dibutuhkan? – Saat ekesekusi proses dan terjadi referensi logical address ke

page tersebut. • invalid reference abort

• not-in-memory bring to memory

– Page table menyimpan daftar page frame yang telah dialokasikan untuk proses tersebut.

Page 249: Sistem Operasi

8

Transfer Page Memory ke

Contiguous Disk Space

Page 250: Sistem Operasi

9

Valid-Invalid Bit

• Setiap entry pada page table terdapat bit: Valid dan Invalid mengenai keberadaan page di memori fisik (1 in-memory, 0 not-in-memory)

• Saat awal: page belum berada di memori maka bit adalah 0 (not in memory).

• Jika terjadi referensi dan page frame yang akan diakses bit Valid-Invalid 0 => page fault.

Page 251: Sistem Operasi

10

Page Table Ketika beberapa Page Tidak

Berada di Main Memory

Page 252: Sistem Operasi

11

Page Fault (OS tasks)

• Saat pertama kali referensi ke page, trap ke OS => page fault.

• OS melakukan evaluasi, apakah alamat logical tersebut “legal”? OK, tapi belum berada di memori.

1. Get empty frame (frame free list).

2. Swap page into frame.

3. Reset tables, validation bit = 1.

4. Restart instruction: yang terakhir eksekusi belum selesai, mis.

• block move

Page 253: Sistem Operasi

12

Tahap Penanganan Page Fault

Page 254: Sistem Operasi

13

Tidak ada Frame yang bebas ?

• Jika terdapat banyak proses, maka memori akan

penuh (tidak ada page frame yang free).

• Page replacement (penggantian)

– Mencari kandidat “page” untuk diganti di memori dan

“kemungkinan tidak digunakan” (allocate but not in used).

– Swap page tersebut dengan page yang baru.

– Algoritma: efisien dan mencapai min. jumlah page faults

(karena kemungkinan page yang diganti harus di swap in

lagi).

• Page yang sama akan masuk ke memori pada

waktu mendatang.

Page 255: Sistem Operasi

14

Memory-Mapped File

• Memory-mapped file I/O membolehkan file I/O diperlakukan sebagai

rutin akses memori yang dipetakan sebagai blok disk ke dalam page

memori

• Suatu file diinisialisasikan menggunakan demand pagin. Suatu

bagian page file dibaca dari file sistem ke page fisik. Subsequent

membaca/menulis ke/dari file yang diperlakukan dalam urutan

memori akses.

• Secara sederhana file akses memperlakukan file I/O melalui memori

melalui read() write() system calls.

• Beberapa proses juga dapat dipetakan pada fiel yang sama pada

memori yang di-share.

Page 256: Sistem Operasi

15

Memory Mapped Files

Page 257: Sistem Operasi

16

Page Replacement

• Mencegah alokasi yang berlebihan dari memori dengan memodifikasi layanan rutin page-fault melalui page

• Menggunakan modify bit untuk mengurangi overhead transfer page – hanya modifikasi page yang ditulis di disk.

• Page replacement melengkapi pemisahan antara

memori logik dan memori fisik – virtual memori yang

besar dapat memenuhi kebutuhan memori fisik yang

kecil.

Page 258: Sistem Operasi

17

Kebutuhan Page Replacement

Page 259: Sistem Operasi

18

Basic Page Replacement

1. Tentukan lokasi yang diminta page pada disk.

2. Tentuka frame bebas :

Jika tersedia frame bebas, maka dapat digunakan

Jika tidak tersedia frame bebas, gunakan algoritma penggantian

untuk memilih kandidat frame.

3. Baca page yang dituju ke dalam frame bebas (yang baru). Update page dan frame table.

4. Restart process.

Page 260: Sistem Operasi

19

Page Replacement

Page 261: Sistem Operasi

20

Algoritma Page Replacement

• Pilih page fault terendah.

• Evaluasi algoritma dengan menjalankan

particular string dari memori acuan

(reference string) dan menghitung jumlah

page fault dari string.

• Contoh, reference string sebagai berikut :

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.

Page 262: Sistem Operasi

21

Graph Page Faults vs. Jumlah Frame

Page 263: Sistem Operasi

22

FIFO

• FIFO

– Mengganti page yang terlama berada di

memori.

– Data struktur FIFO queue yang menyimpan

kedatangan pages di memori.

– Masalah: menambah page frame => page

fault tidak berkurang.

Page 264: Sistem Operasi

23

Algoritma FIFO

• Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

• 3 frames (3 page yang dapat berada di memori pada suatu

waktu per proses)

• 4 frames

Page 265: Sistem Operasi

24

FIFO Page Replacement

Page 266: Sistem Operasi

25

Ilustrasi Anomali Belady pada FIFO

Page 267: Sistem Operasi

26

Optimal (Prediction)

• OPT (optimal)

– Mengganti page yang tidak digunakan dalam

waktu dekat (paling lama tidak diakses).

– Menggunakan priority lists page mana yang

tidak akan diakses (“in the near future”).

– Sulit diterapkan (prediksi): terbaik dan

“benchmark” untuk algoritma yang lain.

Page 268: Sistem Operasi

27

Algoritma Optimal

• Algoritma Optimal

– Mengganti page yang tidak digunakan untuk periode waktu

yang lama.

– Contoh 4 frame

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

Page 269: Sistem Operasi

28

Optimal Page Replacement

Page 270: Sistem Operasi

29

Least Recently Used

• LRU (least recently used)

– Mengganti page yang paling lama tidak

digunakan/diakses.

– Asumsi page yang diakses sekarang =>

kemungkinan besar akan diakses lagi

(predict?).

– Masalah: mendeteksi (memelihara) LRU

semua page => bantuan hardware yang

cukup rumit.

Page 271: Sistem Operasi

30

Algoritma LRU

• Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

Page 272: Sistem Operasi

31

LRU Page Replacement

Page 273: Sistem Operasi

32

Algoritma Aproksimasi LRU

• Reference bit – Setiap page berasosiasi dengan satu bit, inisialisasinya =

0

– Ketika page dengan reference bit di set 1

– Ganti satu dengan 0 (jika ada satu)

• Second chance – Membutuhkan reference bit.

– Jika page diganti (pada urutan clock) dengan reference bit = 1, maka

• set reference bit 0.

• Tinggalkan page di memori (berikan kesempatan kedua).

• Ganti next page (dalam urutan clock) , subjek disamakan aturannya.

Page 274: Sistem Operasi

33

Algoritma Second-Chance (clock)

Page-Replacement Algorithm

Page 275: Sistem Operasi

34

Alokasi Frame

• Setiap proses membutuhkan minimum sejumlah

pages.

• Contoh : IBM 370 – 6 page untuk menangani

instruksi SS MOVE :

– instruksi 6 bytes, membutuhkan 2 pages.

– 2 pages untuk menangani from.

– 2 untuk menangani to.

• Dua skema besar alokasi :

– fixed allocation

– priority allocation

Page 276: Sistem Operasi

35

Fixed Allocation

• Equal allocation – contoh jika 100 frame

dan 5 proses, masing-masing 20 page.

• Proportional allocation – mengalokasikan

sesuai ukuran yang cocok dari proses

Page 277: Sistem Operasi

36

Priority Allocation

• Menggunakan skema alokasi yang

proporsional dengan mengedepankan

menggunakan prioritas dibandingkan

ukuran.

• Jika proses Pi di-generate sebagai page

fault,

– Pilih satu replacement frame

– Pilih replacement frame dari proses dengan

prioritas terendah.

Page 278: Sistem Operasi

37

Alokasi Global vs. Local

• Global replacement – mengijinkan suatu

proses untuk menyeleksi suatu frame

yang akan fireplace dari sejumlah frame.

• Local replacement –proses hanya

diijinkan menyeleksi frame-frame yang

dialokasikan untuknya.

Page 279: Sistem Operasi

38

Thrashing

• Jika suatu proses tidak mempunyai page yang cukup, tingkat page fault menjadi tinggi If a process does not have “enough” pages, the page-fault rate is very high. Hal tersebut dapat dilihat dari : – Sistem operasi meningkatkan multiprogramming.

– Utilisasi CPU meningkat sejalan dengan bertambahnya multiprogramming

– Proses lain ditambahkan ke dalam sistem.

• Thrashing suatu proses yang sibuk melakukan swap page in dan out.

Page 280: Sistem Operasi

39

Thrashing

• Mengapa paging dapat bekerja ?

Model Lokalitas

– Proses pemindahan dari satu lokasi ke lokasi lain.

– Terjadi overlap lokalitas.

• Mengapa thrashing terjadi ?

ukuran lokalitas > total ukuran memory

Page 281: Sistem Operasi

40

Lokalitas pada Pola

Memory-Reference Pattern

Page 282: Sistem Operasi

41

Working-Set Model

• jendela working-set fixed number pada page references

Contoh : 10,000 instruksi

• WSSi (working set pada proses Pi) =

jumlah page reference pada saat akhir (beragam waktu)

– jika terlalu kecil akan mencakup seluruh lokalitas

– jika terlalu besar akan mencakup sebagian lokalitas.

– jika = akan mencakup seluruh program

• D = WSSi total permintaan frames

• if D > m Thrashing

• Kebijakan, jika D > m, maka menahan satu proses .

Page 283: Sistem Operasi

42

Working-set model

Page 284: Sistem Operasi

43

Pertimbangan Lain

• Prepaging

• Page size selection

– fragmentation

– table size

– I/O overhead

– locality

Page 285: Sistem Operasi

Next…

44