Anda di halaman 1dari 22

Ikhtisar

Fungsi dari Sistem Operasi (OS)


- Pengelolaan sumber daya (CPU, memori, ...)

Proses dan Thread


- Kesamaan, perbedaan
- Multi-threaded server dan klien
Implementasi dari...
- Primitif komunikasi
- doa

Fungsionalitas OS
Resource sharing
- CPU (mesin tunggal / multiprosesor)

proses konkuren / benang

komunikasi / primitif sinkronisasi

penjadwalan proses
- Memori (statis / alokasi dinamis untuk program)

manajer memori
- Penyimpanan file dan perangkat

file manager, driver printer, dll

OS kernel
- Mengimplementasikan CPU dan memori berbagi
- Hardware abstrak
Core OS functionality
Process manager

Communication
manager

Thread manager Memory manager

Supervisor
komponen inti OS

Manajer Proses
- Penciptaan dan operasi pada proses (= ruang + benang)

Manajer Threads
- Benang penciptaan, sinkronisasi, penjadwalan

Manajer Komunikasi
- Komunikasi antara benang (soket, Semaphore)

Manajer Memori
- Fisik (RAM) dan virtual (disk) memori
Pengawas
- Abstraksi perangkat keras (interupsi, pengecualian, cache)

Mengapa middleware lagi ...

Jaringan OS (UNIX, Windows NT)


- Jaringan akses transparan untuk file remote (NFS)
- Tidak ada tugas / proses penjadwalan seluruh node yang berbeda

Distributed OS
- Transparan proses penjadwalan seluruh node
- penyeimbang beban
- Tidak digunakan ... biaya beralih OS terlalu tinggi, load balancing tidak selalu mudah untuk mencapai
Middleware
- Dibangun di atas OS jaringan yang berbeda
- Penawaran didistribusikan berbagi sumber daya

System layers
Applications, services

Middleware

OS: kernel, OS1 OS2


libraries & Processes, threads, Processes, threads,
servers communication, ... communication, ...
Platform
Computer & Computer &
network hardware network hardware
Node 1 Node 2

Dalam kuliah ini ...

yang mekanisme OS diperlukan untuk middleware


pengolahan serentak dari client proses / server
- Penciptaan, eksekusi, dll
- Enkapsulasi Data
- Perlindungan terhadap akses ilegal

Pelaksanaan doa
- Komunikasi (parameter passing, lokal atau remote)
- Penjadwalan operasi dipanggil

Perlindungan

Kernel
- Hak akses lengkap untuk semua sumber daya fisik
- Mengeksekusi dalam mode atasan

Program Aplikasi
- Memiliki ruang alamat sendiri, terpisah dari kernel dan lain-lain
- Mengeksekusi dalam mode pengguna

Akses ke sumber
- Panggilan ke kernel (system call trap), interupsi
- Beralih ke kernel ruang alamat
- Bisa mahal dalam hal waktu

Proses dan benang

Proses
- Abstraksi historis pertama thread tunggal aktivitas
- Bisa berjalan bersamaan, berbagi CPU jika CPU tunggal
- Perlu lingkungan eksekusi sendiri

ruang alamat, register, sumber sinkronisasi (Semaphore)


- Penjadwalan membutuhkan switching lingkungan

Threads (= proses ringan)


- Dapat berbagi lingkungan eksekusi

tidak perlu untuk beralih mahal


- Dapat diciptakan / dihancurkan secara dinamis

proses multi-threaded

peningkatan paralelisme operasi (= mempercepat)


Proses address space / thread
N=32 or 64
N
2

Growth in
Auxiliary opposite
regions direction

Stack

Heap

Text
0
Unit memori virtual

Satu atau lebih daerah

- bersebelahan

- Non-overlapping

- Kesenjangan untuk pertumbuhan

Alokasi

- Wilayah baru untuk setiap thread

- Berbagi beberapa daerah

shared library, data, ...

Proses / pembuatan benang

operasi OS kernel (cf UNIX garpu, exec)

kebijakan Variasi untuk


- Pilihan host
cluster, single atau multi-prosesor

penyeimbang beban
- Penciptaan lingkungan eksekusi

mengalokasikan ruang alamat

menginisialisasi atau menyalin dari orang tua?


Memilih host ...

lokal atau remote?


- Bermigrasi proses jika beban pada host lokal yang tinggi

Beban berbagi untuk mengoptimalkan throughput yang?


- Statis: memilih tuan rumah secara acak / deterministik
- Adaptif: amati keadaan dari sistem, mengukur beban & penggunaan heuristik

Banyak pendekatan
- Kesederhanaan disukai
- Beban mengukur mahal.

Menciptakan lingkungan eksekusi

Mengalokasikan ruang alamat

Isi Menginisialisasinya
- Isi dengan nilai dari file atau nol

untuk ruang alamat statis tetapi memakan waktu


- Copy-on-write
memungkinkan berbagi daerah antara orangtua & anak

menyalin fisik hanya ketika salah upaya untuk mengubah (hardware halaman kesalahan)
Copy-on-write
Process As address space Process Bs address space

RB copied
from RA
RA, parent region RA RB RB, inherited region

new, copy

Kernel

Shared
frame
A's page B's page
table table

a) Before write b) After write


Peran benang di klien / server

Pada sistem CPU tunggal


- Benang membantu untuk secara logis membusuk masalah
- Tidak banyak kecepatan-up dari CPU-sharing

Dalam sistem terdistribusi, lebih tunggu


- Untuk doa jarak jauh (pemblokiran Invoker)
- Untuk akses disk (kecuali caching)
- Mendapatkan kecepatan yang lebih baik dengan benang
Multi-threaded client/server

Thread 2 makes
requests to server
Receipt & Input-output
queuing
Thread 1
generates
data

Requests
Server pool
(N threads)
Client
Server
Threads within clients
Thread 1 Thread 2
Separate
Item 1 data production
RMI calls to server
RMI
Pass data via buffer
Item 2 & 3
caller
blocked
Run concurrently
Improved speed,
throughput
Item 4
Server benang dan throughput

Asumsikan aliran permintaan klien, setiap 2ms pengolahan + 8ms I / O.

benang tunggal
- Max 100 permintaan klien per detik = 1000 / (2 + 8)

Dua benang, ada disk caching


- Max 125 permintaan klien per detik = 1000/8

Dua benang, dengan disk caching (75% hit rate)

- Max 400 permintaan klien per detik = 1000 / (0,75 * 0 + 0,25 * 8)


arsitektur server yang multi-ulir

pool Pekerja
- Kolam tetap pekerja benang, ukuran tidak berubah
- Dapat menampung prioritas tapi tidak fleksibel

Arsitektur lain
- Benang-per-permintaan
- Benang-per-koneksi
- Benang-per-objek

paralelisme Fisik
- Mesin multi-prosesor (casper cf, SOC server file; noo-noo)

Thread-per-request
Spawns
workers
new worker for each request
I/O remote worker destroys itself
objects
when finished
Allows max throughput
no queuing
Server
no I/O delays
but overhead of creation &
destruction high
Thread-per-connection
per-connection threads Create new thread for
each connection
remote
objects Multiple requests
Destroy thread on
close
Server
Lower o/heads
but unbalanced load
Mengapa benang tidak proses?

switching konteks Proses


- Membutuhkan menyimpan / mengembalikan lingkungan eksekusi

register, counter Program, dll

Threads dalam proses


- Lebih murah untuk membuat / mengelola
- Tidak perlu untuk menyelamatkan lingkungan eksekusi (dibagi antara benang)
- Berbagi sumber daya yang lebih efisien dan nyaman
- Tapi perlindungan kurang dari campur tangan benang lainnya
Menyimpan lingkungan eksekusi

lingkungan eksekusi Thread

Alamat ruang tabel register prosesor Disimpan


Komunikasi antarmuka, membuka file Prioritas dan negara eksekusi (seperti
DIBLOKIR)
Semaphore, Software sinkronisasi lain mengganggu penanganan informasi
benda
Daftar pengidentifikasi benang Eksekusi identifier lingkungan

Halaman alamat ruang menetap di memori; entri tembolok hardware


Samping: benang Java
Kelas Thread
- Konstruktor / destruktor, SUSPENDED / Runnable
- Prioritas (berguna untuk servlets, halaman web dinamis)

Sinkronisasi
- Monitor (kata kunci disinkronisasi)
- Paling satu thread dalam monitor

Penjadwalan
- Memesan Efek Terlebih Dahulu (ditangguhkan setiap saat), non-preemptive
- Tidak ada real-time penjadwalan thread

More info www.cdk3.net dan


- 06-02324 Real-Time Sistem Pemrograman
benang Java: manajemen

Thread (kelompok ThreadGroup, sasaran Runnable, nama String)

Membuat thread baru di negara ditangguhkan, yang akan menjadi milik kelompok dan diidentifikasi
sebagai nama; benang akan menjalankan run () metode sasaran.

setpriority (int newPriority), getPriority ()

Mengatur dan kembali prioritas thread ini.

menjalankan()

Sebuah thread mengeksekusi run () metode objek target, jika memiliki satu, dan sebaliknya yang
menjalankan metode sendiri () (Thread mengimplementasikan Runnable).

mulai()

Mengubah keadaan benang dari SUSPENDED ke runnable.

tidur (int millisecs)

Penyebab benang untuk memasuki negara SUSPENDED untuk waktu yang ditentukan.

menghasilkan()

Masukkan negara READY dan memanggil scheduler.

menghancurkan()
benang Java: sinkronisasi
thread.join (int millisecs)

Blok panggilan benang sampai waktu yang ditentukan sampai thread telah dihentikan.

thread.interrupt ()

Interupsi thread: menyebabkannya kembali dari pemblokiran panggilan metode seperti tidur ().

object.wait (millisecs panjang, int nanosecs)

Blok panggilan benang sampai panggilan dibuat untuk memberitahukan () atau notifyAll () pada
objek bangun benang, atau benang terganggu, atau waktu yang ditentukan telah berlalu.

object.notify (), object.notifyAll ()

Bangun, masing-masing, satu atau semua dari setiap benang yang telah disebut menunggu () pada
objek.
Pelaksanaan doa

Jenis-jenis doa
- System call, RMI / RPC panggilan, mengirim pesan ...

Kinerja kritis!
- Jumlah yang sangat tinggi dari doa per sistem seumur hidup
- Latency tinggi lebih dari WAN, Internet

Biaya Penghitungan doa


- Apakah itu menyeberangi ruang alamat atau tidak?
- Sinkron atau asinkron?
- Melalui jaringan atau dalam komputer?
Faktor yang mempengaruhi RPC / RMI penundaan

Menyusun

menyalin data
- Pengguna kernel, di seluruh jaringan, dll

inisialisasi Packet
- Protokol header, checksum
penjadwalan Thread, switching konteks

Menunggu pengakuan
- TCP atau UDP?
doa bersamaan

Idea (mirip dengan benang klien sebelumnya)


- Doa blocking
- Melakukan mereka secara bersamaan

Contoh: browser web


- Isu memisahkan permintaan HTTP GET untuk gambar dalam halaman web
- Dilakukan secara bersamaan

Keuntungan
- Meningkatkan delay total dan throughput yang
- Komunikasi tumpang tindih dengan render
doa asynchronous

Non-blocking doa
- Klien membuat panggilan (cf Mercury memperoleh janji)
- Terus pengolahan

Response
- Kadang-kadang tidak diperlukan
- Jika tidak, panggilan terpisah untuk mengumpulkan hasil,
- Kemudian mengklaim janji (uji apakah hasil siap, blok sampai hasil siap)

Peningkatan delay dan throughput


Ringkasan

dukungan OS penting untuk kinerja sistem terdistribusi


- Benang / proses manajemen
- Komunikasi (soket), protokol
- Dukungan untuk asynchronous / bersamaan doa

Desain isu
- Struktur dan hubungan kernel & middleware
- Pemilihan multi-threaded atau multi-prosesor arsitektur
- Persyaratan sistem pemahaman
jumlah maksimum permintaan, delay min diterima, throughput

jaringan latency, bandwidth, dll

Anda mungkin juga menyukai