Search Header Logo
Pertemuan 4 SO

Pertemuan 4 SO

Assessment

Presentation

Other

KG

Practice Problem

Easy

Created by

rakhmadi rahman

Used 2+ times

FREE Resource

70 Slides • 1 Question

1

media

Matakuliah Sistem Operasi
PROSES

PADA SISTEM OPERASI

Rakhmadi Rahman M.Kom

PERTEMUAN KE-4

Parepare, 09 Maret 2023

2

media
media
media

3.2

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

media

3

Open Ended

Apa kabarnya hari ini....

4

media
media
media

3.3

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Identifikasi komponen terpisah dari suatu proses dan ilustrasikan
bagaimana mereka direpresentasikan dan dijadwalkan dalam sistem
operasi.

Jelaskan bagaimana proses dibuat dan diakhiri dalam sistem operasi,
termasuk mengembangkan program menggunakan panggilan sistem
yang sesuai yang melakukan operasi ini.

Jelaskan dan bedakan komunikasi antarproses menggunakan memori
bersama dan pengiriman pesan.

Rancang program yang menggunakan pipa dan memori bersama
POSIX untuk melakukan komunikasi antarproses.

Jelaskan komunikasi client-server menggunakan soket dan panggilan
prosedur jarak jauh.

Merancang modul kernel yang berinteraksi dengan sistem operasi
Linux.

media

5

media
media
media

3.4

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Konsep Proses

Sistem operasi mengeksekusi berbagai program yang dijalankan
sebagai suatu proses.

Proses – sebuah program dalam eksekusi; eksekusi proses harus
maju secara berurutan. Tidak ada eksekusi paralel instruksi dari satu
proses

Beberapa bagian
Kode program, disebut juga teks bagian

Aktivitas saat ini termasuk program counter , register prosesor

Tumpukan berisi data sementara

Parameter fungsi, alamat pengirim, variabel lokal

Data bagian mengandung variabel global

Tumpukan berisi memori yang dialokasikan secara dinamis
selama waktu berjalan

6

media
media
media

3.5

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Konsep Proses (Lanjutan)

Program adalah entitas pasif yang disimpan di disk ( dapat
dieksekusi berkas ); proses sedang aktif
Program menjadi proses ketika file yang dapat dieksekusi
dimuat ke dalam memori

Eksekusi program dimulai melalui klik mouse GUI, entri baris
perintah dari namanya, dll.

Satu program bisa beberapa proses
Pertimbangkan banyak pengguna yang menjalankan
program yang sama

7

media
media
media
media

3.6

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Proses dalam Memori

8

media
media
media
media

3.7

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Tata Letak Memori Program C

9

media
media
media

3.8

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Status Proses

Saat proses dieksekusi, ia mengubah status
Baru : Proses sedang dibuat

Running : Instruksi sedang dieksekusi

Waiting : Proses sedang menunggu beberapa event terjadi

Ready : Proses sedang menunggu untuk ditugaskan ke
prosesor

Terminated : Proses telah selesai dieksekusi

10

media
media
media
media

3.9

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Diagram Status Proses

11

media
media
media
media

3.10

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Blok Kontrol Proses (PCB)

Status proses - berjalan, menunggu, dll.

Penghitung program – lokasi instruksi untuk
dieksekusi selanjutnya

Register CPU – isi dari semua register yang
berpusat pada proses

Informasi penjadwalan CPU- prioritas, penunjuk
antrian penjadwalan

Informasi manajemen memori – memori yang
dialokasikan untuk proses

Informasi akuntansi – CPU digunakan, waktu jam
berlalu sejak mulai, batas waktu

Informasi status I/O – Perangkat I/O dialokasikan
untuk proses, daftar file terbuka

Informasi yang terkait dengan setiap proses (juga disebut
tugas kontrol blok )

12

media
media
media

3.11

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Utas

Sejauh ini, proses memiliki satu utas eksekusi

Pertimbangkan untuk memiliki beberapa penghitung program per
proses
Beberapa lokasi dapat dijalankan sekaligus

Beberapa utas kontrol -> utas

Kemudian harus memiliki penyimpanan untuk detail utas,
beberapa penghitung program di PCB

Jelajahi secara detail di Bab 4

13

media
media
media
media

3.12

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Representasi Proses di Linux

Diwakili oleh struktur C task_struct

pid t_pid;

/* pengenal proses */

keadaan panjang;

/* status proses */

unsigned int time_slice

/* informasi penjadwalan */

struct task_struct *induk;/* induk proses ini */
struct list_head anak; /* anak proses ini */
struct files_struct *files;/* daftar file yang terbuka */
struct mm_struct *mm;

/* ruang alamat dari proses ini */

14

media
media
media

3.13

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Penjadwalan Proses

Proses scheduler memilih di antara proses yang tersedia
untuk eksekusi berikutnya pada inti CPU

Sasaran -- Maksimalkan penggunaan CPU, alihkan
proses dengan cepat ke inti CPU

Mempertahankan penjadwalan antrian proses
Siap antre – mengatur semua proses yang berada di
memori utama, siap dan menunggu untuk dieksekusi

Tunggu antrian – sekumpulan proses yang
menunggu suatu kejadian (yaitu, I/O)

Proses bermigrasi di antara berbagai antrian

15

media
media
media
media

3.14

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Antrean Siap dan Tunggu

16

media
media
media
media

3.15

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Representasi Penjadwalan Proses

17

media
media
media
media

3.16

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

CPU Beralih Dari Proses ke Proses

Peralihan konteks terjadi ketika CPU beralih dari satu
proses ke proses lainnya.

18

media

3.17

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Saklar Konteks

Saat CPU beralih ke proses lain, sistem harus menyimpan
itu negara dari proses lama dan memuat yang disimpan
negara untuk proses baru melalui konteks mengalihkan

Konteks proses yang direpresentasikan dalam PCB

Waktu peralihan konteks adalah murni overhead; sistem
tidak melakukan pekerjaan yang berguna saat beralih
Semakin kompleks OS dan PCB

semakin lama

konteks beralih

Waktu tergantung pada dukungan perangkat keras
Beberapa perangkat keras menyediakan beberapa set
register per CPU

beberapa konteks dimuat sekaligus

19

media
media
media

3.18

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Multitasking dalam Sistem Seluler

Beberapa sistem seluler (misalnya, versi awal iOS) hanya
mengizinkan satu proses untuk dijalankan, yang lainnya
ditangguhkan

Karena ruang layar, antarmuka pengguna membatasi yang
disediakan iOS untuk a
Proses latar depan tunggal dikendalikan melalui antarmuka
pengguna

Berbagai proses latar belakang– di memori, berjalan, tetapi
tidak di layar, dan dengan batasan

Batasan mencakup tugas tunggal dan singkat, menerima
pemberitahuan acara, tugas khusus yang berjalan lama seperti
pemutaran audio

Android menjalankan latar depan dan latar belakang, dengan
batasan yang lebih sedikit
Proses latar belakang menggunakan layanan untuk melakukan
tugas

Layanan dapat tetap berjalan meskipun proses latar belakang
ditangguhkan

Layanan tidak memiliki antarmuka pengguna, penggunaan

20

media
media
media

3.19

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Operasi pada Proses

Sistem harus menyediakan mekanisme untuk:
Pembuatan proses

Pemutusan proses

21

media
media
media

3.20

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Penciptaan Proses

Induk proses membuat anak-anak proses, yang, pada
gilirannya, menciptakan proses lain, membentuk pohon
proses

Secara umum, proses diidentifikasi dan dikelola melalui a
proses pengidentifikasi ( pid )

Opsi berbagi sumber daya
Orang tua dan anak-anak berbagi semua sumber daya

Anak-anak berbagi bagian dari sumber daya orang tua

Orang tua dan anak tidak berbagi sumber daya

Opsi eksekusi
Orang tua dan anak-anak mengeksekusi secara
bersamaan

Orang tua menunggu sampai anak berhenti

22

media
media
media
media

3.21

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Penciptaan Proses (Lanjutan)

Ruang alamat
Anak duplikat dari orang tua

Anak memiliki program yang dimuat ke dalamnya

Contoh UNIX
garpu() panggilan sistem membuat proses baru
eksekusi() system call digunakan setelah fork() untuk

mengganti ruang memori proses dengan program baru

Panggilan proses induk menunggu () menunggu anak berhenti

23

media
media
media
media

3.22

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Sebuah Pohon Proses di Linux

24

media
media
media
media

3.23

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Proses Terpisah Program Forking C

25

media
media
media
media

3.24

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Membuat Proses Terpisah melalui Windows

API

26

media
media
media

3.25

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Penghentian Proses

Proses mengeksekusi pernyataan terakhir dan kemudian meminta
sistem operasi untuk menghapusnya menggunakan exit()
panggilan sistem.
Mengembalikan data status dari anak ke orang tua (melalui
wait() )

Sumber daya proses tidak dialokasikan oleh sistem operasi

Induk dapat menghentikan eksekusi proses anak-anak
menggunakan perintah abort() panggilan sistem. Beberapa
alasan untuk melakukannya:
Anak telah melampaui sumber daya yang dialokasikan

Tugas yang diberikan kepada anak tidak lagi diperlukan

Induk keluar, dan sistem operasi tidak mengizinkan anak untuk
melanjutkan jika induknya berhenti

27

media
media
media

3.26

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Penghentian Proses

Beberapa sistem operasi tidak mengizinkan anak untuk ada jika
induknya telah dihentikan. Jika suatu proses berakhir, maka
semua anaknya juga harus diakhiri.
penghentian kaskade. Semua anak, cucu, dll,
diberhentikan.

Pengakhiran dimulai oleh sistem operasi.

Proses induk mungkin menunggu penghentian proses anak
dengan menggunakan wait() system call . Panggilan
mengembalikan informasi status dan pid dari proses yang
dihentikan

pid = tunggu(&status);

Jika tidak ada orang tua yang menunggu (tidak memanggil
wait() ) prosesnya adalah zombie

Jika orang tua diakhiri tanpa memohon wait() , proses
adalah yatim piatu

28

media
media
media

3.27

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Hirarki Kepentingan Proses Android

Sistem operasi seluler seringkali harus menghentikan proses untuk
mendapatkan kembali sumber daya sistem seperti memori. Dari yang
paling penting hingga yang paling tidak penting:
Proses latar depan

Proses yang terlihat

Proses layanan

Proses latar belakang

Proses kosong

Android akan mulai menghentikan proses yang paling tidak penting.

29

media
media
media
media

3.28

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Arsitektur Multiproses – Browser Chrome

Banyak browser web berjalan sebagai proses tunggal (beberapa masih
melakukannya)
Jika satu situs web menyebabkan masalah, seluruh browser dapat
macet atau macet

Browser Google Chrome multiproses dengan 3 jenis proses berbeda:
Proses browser mengelola antarmuka pengguna, disk, dan I/O
jaringan

Proses perender merender halaman web, berurusan dengan
HTML, Javascript. Perender baru dibuat untuk setiap situs web
yang dibuka

Berjalan di kotak pasir yang membatasi disk dan I/O jaringan,

meminimalkan efek eksploitasi keamanan

Pengaya proses untuk setiap jenis plug-in

30

media
media
media

3.29

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Komunikasi Antarproses

Proses dalam sistem mungkin independen atau bekerja sama

Proses kerja sama dapat memengaruhi atau dipengaruhi oleh proses
lain, termasuk berbagi data

Alasan untuk proses kerja sama:
Berbagi informasi

Percepatan komputasi

Modularitas

Kenyamanan

Proses yang bekerja sama membutuhkan antarproses komunikasi (
IPK )

Dua model IPC
Bersama Penyimpanan

Pesan lewat

31

media
media
media
media

3.30

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Model Komunikasi

(a) Memori bersama.

(b) Pengiriman pesan.

32

media
media
media

3.31

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Masalah Produsen-Konsumen

Paradigma untuk proses kerja sama:
proses produsen menghasilkan informasi yang
dikonsumsi oleh proses konsumen

Dua variasi:
buffer tak terbatas tidak menempatkan batasan praktis
pada ukuran buffer:

Produser tidak pernah menunggu

Konsumen menunggu jika tidak ada buffer untuk

dikonsumsi

buffer terbatas mengasumsikan bahwa ada ukuran
buffer tetap

Produser harus menunggu jika semua buffer sudah

penuh

Konsumen menunggu jika tidak ada buffer untuk

dikonsumsi

33

media
media
media

3.32

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

IPC – Memori Bersama

Area memori yang digunakan bersama di antara proses yang
ingin berkomunikasi

Komunikasi berada di bawah kendali proses pengguna bukan
sistem operasi.

Masalah utama adalah menyediakan mekanisme yang
memungkinkan proses pengguna menyinkronkan tindakan
mereka saat mereka mengakses memori bersama.

Sinkronisasi dibahas dengan sangat rinci di Bab 6 & 7.

34

media
media
media

3.33

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Bounded-Buffer – Solusi Memori Bersama

Data bersama

#menentukan BUFFER_SIZE 10

typedef struct {

. . .

} barang;

buffer item[BUFFER_SIZE];

int di = 0;

int keluar = 0;

Solusi benar, tetapi hanya dapat menggunakan elemen
BUFFER_SIZE-1

35

media
media
media

3.34

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Proses Produser – Memori Bersama

item selanjutnya_diproduksi;

sementara (benar) {

/* menghasilkan item dalam produksi berikutnya */

sementara (((dalam + 1) % BUFFER_SIZE) == keluar)

; /* tidak melakukan apapun */

buffer[in] = next_produced;

dalam = (dalam + 1) % BUFFER_SIZE;

}

36

media
media
media

3.35

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Proses Konsumen – Memori Bersama

item selanjutnya_dikonsumsi;

sementara (benar) {

sementara (masuk == keluar)

; /* tidak melakukan apapun */

next_consumed = penyangga[keluar];

keluar = (keluar + 1) % BUFFER_SIZE;

/* konsumsi item pada konsumsi berikutnya */

}

37

media
media
media

3.36

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Bagaimana dengan Mengisi semua

Buffer?

Misalkan kita ingin memberikan solusi untuk masalah
konsumen-produsen yang mengisi semua buffer.

Kita dapat melakukannya dengan memiliki penghitung
bilangan bulat yang melacak jumlah buffer penuh.

Awalnya, konter diatur ke 0.

Penghitung bilangan bulat bertambah oleh produser setelah
menghasilkan buffer baru.

Penghitung bilangan bulat adalah dan dikurangi oleh
konsumen setelah mengkonsumsi buffer.

38

media
media
media

3.37

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Produsen

sementara (benar) {

/* menghasilkan item dalam produksi

berikutnya */

while (penghitung == BUFFER_SIZE)

; /* tidak melakukan apapun */

buffer[in] = next_produced;

dalam = (dalam + 1) % BUFFER_SIZE;

penghitung++;

}

39

media
media
media

3.38

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Konsumen

sementara (benar) {

while (penghitung == 0)

; /* tidak melakukan apapun */

next_consumed = penyangga[keluar];

keluar = (keluar + 1) % BUFFER_SIZE;

menangkal--;

/* konsumsi item pada konsumsi berikutnya */

}

40

media
media
media

3.39

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Kondisi balapan

counter++ dapat diimplementasikan sebagai

register1 = penghitung

register1 = register1 + 1
penghitung = register1

counter-- dapat diimplementasikan sebagai

register2 = penghitung

register2 = register2 - 1
penghitung = register2

Pertimbangkan eksekusi ini menyisipkan dengan "menghitung = 5" pada
awalnya:

S0: produser mengeksekusi register1 = penghitung
{daftar1 = 5}
S1: produser mengeksekusi register1 = register1 + 1 {register1
= 6}
S2: konsumen mengeksekusi register2 = penghitung
{daftar2 = 5}
S3: register2 eksekusi konsumen = register2 – 1 {register2
= 4}
S4: penghitung eksekusi produser = register1 {penghitung =
6 }
S5: penghitung eksekusi konsumen = register2 {penghitung =
4}

41

media
media
media

3.40

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Kondisi Balapan (Lanjutan)

Pertanyaan – mengapa tidak ada race
condition pada solusi pertama (di mana
paling banyak N – 1) buffer dapat diisi?

Selengkapnya di Bab 6.

42

media
media
media

3.41

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

IPC – Penyampaian Pesan

Proses berkomunikasi satu sama lain tanpa beralih ke
variabel bersama

Fasilitas IPC menyediakan dua operasi:
kirim ( pesan )

menerima ( pesan )

Ukuran pesan tetap atau variabel

43

media
media
media

3.42

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Penyampaian Pesan (Lanjutan)

Jika proses P dan Q ingin berkomunikasi, mereka harus:
Membangun komunikasi tautan diantara mereka

Bertukar pesan melalui kirim/terima

Masalah implementasi:
Bagaimana tautan dibuat?

Bisakah tautan dikaitkan dengan lebih dari dua proses?

Berapa banyak hubungan yang dapat terjadi di antara
setiap pasang proses komunikasi?

Berapa kapasitas sebuah link?

Apakah ukuran pesan yang dapat diakomodasi oleh tautan
tetap atau variabel?

Apakah tautan searah atau dua arah?

44

media
media
media

3.43

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Implementasi Tautan Komunikasi

Fisik:
Berbagi memori

Bus perangkat keras

Jaringan

Logis:
Langsung atau tidak langsung

Sinkron atau asinkron

Penyangga otomatis atau eksplisit

45

media
media
media

3.44

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Komunikasi Langsung

Proses harus saling memberi nama secara eksplisit:
kirim ( P, pesan ) – mengirim pesan ke proses P

terima ( Q, pesan ) – menerima pesan dari proses Q

Properti tautan komunikasi
Tautan dibuat secara otomatis

Tautan dikaitkan dengan tepat satu pasang proses komunikasi

Di antara setiap pasangan terdapat tepat satu mata rantai

Tautan mungkin searah, tetapi biasanya dua arah

46

media
media
media

3.45

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Komunikasi Tidak Langsung

Pesan diarahkan dan diterima dari kotak surat (juga disebut
sebagai port)
Setiap kotak surat memiliki id unik

Proses dapat berkomunikasi hanya jika mereka berbagi kotak
surat

Properti tautan komunikasi
Tautan dibuat hanya jika proses berbagi kotak surat yang sama

Tautan dapat dikaitkan dengan banyak proses

Setiap pasangan proses dapat berbagi beberapa tautan
komunikasi

Tautan mungkin searah atau dua arah

47

media
media
media

3.46

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Operasi
Buat kotak surat baru (port)

Kirim dan terima pesan melalui kotak surat

Hapus kotak surat

Primitif didefinisikan sebagai:
kirim ( A, pesan ) – mengirim pesan ke kotak surat A

terima ( A, pesan ) – menerima pesan dari kotak surat A

Komunikasi Tidak Langsung (Lanjutan)

48

media
media
media

3.47

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Berbagi kotak surat
P 1 , P 2 , dan P 3 berbagi kotak surat A

P 1 , kirim; P 2 dan P 3 terima

Siapa yang mendapat pesan?

Solusi
Izinkan tautan dikaitkan dengan paling banyak dua
proses

Izinkan hanya satu proses pada satu waktu untuk
mengeksekusi operasi terima

Izinkan sistem untuk memilih penerima secara
sewenang-wenang. Pengirim diberitahu siapa penerima
itu.

Komunikasi Tidak Langsung (Lanjutan)

49

media
media
media

3.48

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Sinkronisasi

Pemblokiran dianggap sinkron
Memblokir pengiriman -- pengirim diblokir sampai pesan
diterima

Memblokir penerimaan -- penerima diblokir sampai pesan
tersedia

Non-pemblokiran dianggap asinkron
Pengiriman tanpa pemblokiran -- pengirim mengirim pesan dan
melanjutkan

Penerimaan tanpa pemblokiran -- penerima menerima:

Pesan yang valid, atau

Pesan nol

Kombinasi yang berbeda mungkin
Jika keduanya mengirim dan menerima memblokir, kami memiliki
pertemuan

Pengiriman pesan dapat berupa pemblokiran atau non-

pemblokiran

50

media
media
media

3.49

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Produsen

pesan selanjutnya_diproduksi;

sementara (benar) {

/* menghasilkan item di next_produced */

kirim(berikutnya_diproduksi);

}

Konsumen

pesan next_consumed;

sementara (benar) {

terima(next_consumed)

/* konsumsi item di next_consumed */

}

Produser-Konsumen: Penyampaian Pesan

51

media
media
media

3.50

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Penyangga

Antrean pesan yang dilampirkan ke tautan.

Diimplementasikan dalam salah satu dari tiga cara

1. Kapasitas nol – tidak ada pesan yang diantrekan di tautan.

Pengirim harus menunggu penerima (rendezvous)

2. Bounded capacity – panjang terbatas dari n pesan

Pengirim harus menunggu jika tautan penuh

3. Kapasitas tak terbatas – panjang tak terbatas

Pengirim tidak pernah menunggu

52

media
media
media

3.51

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Contoh Sistem IPC - POSIX

Memori Bersama POSIX
Proses pertama membuat segmen memori bersama

shm_fd = shm_open(nama, O CREAT | O RDWR,

0666);

Juga digunakan untuk membuka segmen yang ada

Atur ukuran objek

fruncate(shm_fd, 4096);

Gunakan mmap() untuk memetakan memori penunjuk file ke
objek memori bersama

Membaca dan menulis ke memori bersama dilakukan dengan
menggunakan penunjuk yang dikembalikan oleh mmap() .

53

media
media
media
media

3.52

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

IPC POSIX Produser

54

media
media
media
media

3.53

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

IPC POSIX Konsumen

55

media
media
media

3.54

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Contoh Sistem IPC - Mach

Mach komunikasi berbasis pesan
Bahkan panggilan sistem adalah pesan

Setiap tugas mendapat dua port saat dibuat - Kernel dan Notify

Pesan dikirim dan diterima menggunakan fungsi mach_msg()

Port yang diperlukan untuk komunikasi, dibuat melalui

mach_port_allocate()

Kirim dan terima bersifat fleksibel; misalnya empat opsi jika kotak
surat penuh:

Tunggu tanpa batas waktu

Tunggu maksimal n milidetik

Segera kembali

Meng-cache pesan untuk sementara

56

media
media
media

3.55

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Pesan Mach

#termasuk<mach/mach.h>

struct pesan {

tajuk mach_msg_header_t;
int data;

} ;

mach port t klien;

port mach t server;

57

media
media
media
media

3.56

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Mach Message Passing - Klien

58

media
media
media
media

3.57

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Mach Message Passing - Server

59

media
media
media

3.58

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Contoh Sistem IPC – Windows

Pusat pengiriman pesan via lanjutan lokal prosedur
panggilan fasilitas ( LPC ).
Hanya bekerja antar proses pada sistem yang sama

Menggunakan port (seperti kotak surat) untuk membangun
dan memelihara saluran komunikasi

Komunikasi berfungsi sebagai berikut:

Klien membuka pegangan ke koneksi subsistem objek

pelabuhan .

Klien mengirimkan permintaan koneksi.

Server menciptakan dua komunikasi pribadi port dan

mengembalikan pegangan ke salah satunya ke klien.

Klien dan server menggunakan pegangan port yang

sesuai untuk mengirim pesan atau panggilan balik dan
mendengarkan balasan.

60

media
media
media
media

3.59

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Panggilan Prosedur Lokal di Windows

61

media
media
media

3.60

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Pipa

Bertindak sebagai saluran yang memungkinkan dua proses untuk
berkomunikasi

Masalah:
Apakah komunikasi searah atau dua arah?

Dalam hal komunikasi dua arah, apakah setengah atau dupleks
penuh?

Harus ada hubungan (yaitu, orangtua-anak ) antara proses
komunikasi?

Bisakah pipa digunakan melalui jaringan?

Pipa biasa – tidak dapat diakses dari luar proses yang membuatnya.
Biasanya, proses induk membuat pipa dan menggunakannya untuk
berkomunikasi dengan proses anak yang dibuatnya.

Pipa bernama – dapat diakses tanpa hubungan orangtua-anak.

62

media
media
media
media

3.61

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Pipa Biasa

Pipa Biasa memungkinkan komunikasi dalam gaya produsen-
konsumen standar

Produser menulis ke satu ujung ( write-end dari pipa)

Konsumen membaca dari ujung yang lain ( ujung baca dari pipa)

Oleh karena itu pipa biasa searah

Membutuhkan hubungan orang tua-anak antara proses komunikasi

Windows menyebut ini anonim pipa

63

media
media
media

3.62

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Pipa bernama

Pipa Bernama lebih kuat dari pipa biasa

Komunikasi bersifat dua arah

Tidak ada hubungan orangtua-anak yang diperlukan antara proses
komunikasi

Beberapa proses dapat menggunakan pipa bernama untuk
komunikasi

Disediakan pada sistem UNIX dan Windows

64

media
media
media

3.63

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Komunikasi dalam Sistem Client-Server

Soket

Panggilan Prosedur Jarak Jauh

65

media
media
media

3.64

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Soket

Soket didefinisikan sebagai titik akhir untuk komunikasi

Penggabungan alamat IP dan port – nomor yang disertakan pada
awal paket pesan untuk membedakan layanan jaringan pada host

Soket 161.25.19.8:1625 merujuk ke port 1625 pada host 161.25.19.8

Komunikasi terdiri antara sepasang soket

Semua port di bawah 1024 terkenal , digunakan untuk layanan
standar

Alamat IP khusus 127.0.0.1 ( loopback ) untuk merujuk ke sistem
tempat proses sedang berjalan

66

media
media
media
media

3.65

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Komunikasi Soket

67

media
media
media
media

3.66

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Soket di Jawa

Tiga jenis soket
Berorientasi koneksi (
TCP )

Tanpa koneksi ( UDP )

Kelas
MulticastSocket–
data dapat dikirim ke
beberapa penerima

Pertimbangkan server
"Tanggal" ini di Jawa:

68

media
media
media
media

3.67

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Soket di Jawa

Klien Tanggal yang setara

69

media
media
media

3.68

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Panggilan Prosedur Jarak Jauh

Panggilan prosedur jarak jauh (RPC) abstrak panggilan prosedur
antara proses pada sistem jaringan
Sekali lagi menggunakan port untuk diferensiasi layanan

Rintisan – proxy sisi klien untuk prosedur sebenarnya di server

Rintisan sisi klien menempatkan server dan menyusun parameter

Rintisan sisi server menerima pesan ini, membongkar parameter yang
disusun, dan menjalankan prosedur di server

Di Windows, kompilasi kode rintisan dari spesifikasi yang ditulis dalam
Microsoft Antarmuka Definisi Bahasa ( MDL )

70

media
media
media

3.69

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Panggilan Prosedur Jarak Jauh

(Lanjutan)

Representasi data ditangani melalui Representasi Data Eksternal (
XDL ) untuk memperhitungkan arsitektur yang berbeda
Big-endian dan little-endian

Komunikasi jarak jauh memiliki lebih banyak skenario kegagalan
daripada lokal
Pesan dapat disampaikan tepat satu kali daripada paling
banyak satu kali

OS biasanya menyediakan layanan pertemuan (atau mak comblang )
untuk menghubungkan klien dan server

71

media
media
media
media

3.70

Silberschatz, Galvin and Gagne ©2018

Operating System Concepts – 10thEdition

Pelaksanaan RPC

media

Matakuliah Sistem Operasi
PROSES

PADA SISTEM OPERASI

Rakhmadi Rahman M.Kom

PERTEMUAN KE-4

Parepare, 09 Maret 2023

Show answer

Auto Play

Slide 1 / 71

SLIDE