Professional Documents
Culture Documents
Operating System Concepts – 10th 3.2 Silberschatz, Galvin and Gagne ©2018
3.3.2. Süreç Sonlandırma
Operating System Concepts – 10th 3.3 Silberschatz, Galvin and Gagne ©2018
3.3.2. Process Termination
Operating System Concepts – 10th 3.4 Silberschatz, Galvin and Gagne ©2018
3.4. Süreçler Arası İletişim
● Bir sistem içindeki süreçler bağımsız veya işbirliği içinde olabilir
● İşbirliği yapan süreç etkileyebilir veya veri paylaşımı da dahil olmak
üzere diğer süreçler tarafından etkilenebilir
● İşbirliği süreçleri için nedenler:
● Bilgi paylaşımı
● Hesaplama hızlandırma
● Modülerlik
● Kolaylık
● İşbirliği yapan süreçler ihtiyaç süreçler arası iletişim (IPC)
● İki IPC modeli
● Paylaşılan bellek
● Mesaj iletimi
Operating System Concepts – 10th 3.5 Silberschatz, Galvin and Gagne ©2018
İletişim (IPC) Modelleri
(a) Paylaşılan bellek. (b) Mesaj geçişi.
Operating System Concepts – 10th 3.6 Silberschatz, Galvin and Gagne ©2018
İşbirliği Süreçleri
Bağımsız süreç başka bir sürecin yürütülmesini etkileyemez veya
ondan etkilenemez
İşbirliği yapan süreç başka bir sürecin yürütülmesini etkileyebilir
veya ondan etkilenebilir
Süreç işbirliğinin avantajları
● Bilgi paylaşımı
● Hesaplama hızlandırma
● Modülerlik
● Kolaylık
Operating System Concepts – 10th 3.7 Silberschatz, Galvin and Gagne ©2018
Producer-Consumer Problem
● İşbirliği yapan süreçler için paradigma, üretici süreç, bir
tüketici süreç tarafından tüketilen bilgiyi üretir
Operating System Concepts – 10th 3.8 Silberschatz, Galvin and Gagne ©2018
3.5. Süreçler Arası İletişim - Paylaşılan Bellek
Operating System Concepts – 10th 3.9 Silberschatz, Galvin and Gagne ©2018
Sınırlı Arabellek - Paylaşımlı Bellek Çözümü
● Shared data
#define BUFFER_SIZE 10
typedef struct {
. . .
} item;
item buffer[BUFFER_SIZE];
int in = 0; // next free position in buffer
int out = 0; // first full position in buffer
Operating System Concepts – 10th 3.10 Silberschatz, Galvin and Gagne ©2018
Buffer state in Shared Memory
Operating System Concepts – 10th 3.11 Silberschatz, Galvin and Gagne ©2018
Buffer state in Shared Memory
Operating System Concepts – 10th 3.12 Silberschatz, Galvin and Gagne ©2018
Circular buffer
Operating System Concepts – 10th 3.13 Silberschatz, Galvin and Gagne ©2018
Üretici Süreç - Paylaşılan Bellek
item next_produced;
while (true) {
/* produce an item in next produced */
; /* do nothing */
buffer[in] = next_produced;
in = (in + 1) % BUFFER_SIZE;
}
Operating System Concepts – 10th 3.14 Silberschatz, Galvin and Gagne ©2018
Consumer Process – Shared Memory
item next_consumed;
while (true) {
next_consumed = buffer[out];
Operating System Concepts – 10th 3.15 Silberschatz, Galvin and Gagne ©2018
Consumer Process – Shared Memory
; /* do nothing */
/* consume the item in next consumed *
}
buffer[in] = next_produced;
in = (in + 1) % BUFFER_SIZE;
}
Operating System Concepts – 10th 3.16 Silberschatz, Galvin and Gagne ©2018
3.6. Süreçler Arası İletişim - Mesaj Geçişi
Operating System Concepts – 10th 3.17 Silberschatz, Galvin and Gagne ©2018
Mesaj İletimi (Devam)
Operating System Concepts – 10th 3.18 Silberschatz, Galvin and Gagne ©2018
Mesaj İletimi (Devam)
Operating System Concepts – 10th 3.19 Silberschatz, Galvin and Gagne ©2018
Mesaj iletimi : Doğrudan İletişim
Operating System Concepts – 10th 3.20 Silberschatz, Galvin and Gagne ©2018
Mesaj iletimi : Dolaylı İletişim
Operating System Concepts – 10th 3.21 Silberschatz, Galvin and Gagne ©2018
Mesaj iletimi : Dolaylı İletişim
● Operasyonlar
● create yeni bir posta kutusu (port)
● posta kutusu üzerinden mesaj gönderme ve alma
● posta kutusunu yok etme
Operating System Concepts – 10th 3.22 Silberschatz, Galvin and Gagne ©2018
Mesaj iletimi : Dolaylı İletişim
Operating System Concepts – 10th 3.23 Silberschatz, Galvin and Gagne ©2018
Mesaj geçişi: Senkronizasyon
● Mesaj geçişi engelleyici veya engelleyici olmayan olabilir
● Engelleme senkron olarak kabul edilir
● Göndermeyi engelleme -- gönderici engellenir mesaj alınana
kadar
● Alımı engelleme -- alıcı engellenir bir mesaj mevcut olana
kadar
● Tıkanmayan asenkron olarak kabul edilir
● Engellemesiz gönderme -- gönderici mesajı gönderir ve
devam eder
● Engellemesiz alım -- alıcı alır:
● Geçerli bir mesaj veya
● Boş mesaj
● Farklı kombinasyonlar mümkün
● Hem gönderme hem de alma engelleniyorsa, bir randevumuz
var demektir
Operating System Concepts – 10th 3.24 Silberschatz, Galvin and Gagne ©2018
Producer - mesaj geçişi
message next_produced;
while (true) {
Operating System Concepts – 10th 3.25 Silberschatz, Galvin and Gagne ©2018
Consumer - mesaj geçişi
message next_consumed;
while (true) {
receive(next_consumed)
Operating System Concepts – 10th 3.26 Silberschatz, Galvin and Gagne ©2018
Mesaj iletimi: Arabellekleme
Operating System Concepts – 10th 3.27 Silberschatz, Galvin and Gagne ©2018
3.7. Paylaşımlı Bellek Örneği: POSIX
Operating System Concepts – 10th 3.28 Silberschatz, Galvin and Gagne ©2018
Example : IPC
POSIX
Producer
Operating System Concepts – 10th 3.29 Silberschatz, Galvin and Gagne ©2018
Example : IPC
POSIX
Consumer
Operating System Concepts – 10th 3.30 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th 3.31 Silberschatz, Galvin and Gagne ©2018
3.7.2. Message Passing Example : Mach
Operating System Concepts – 10th 3.32 Silberschatz, Galvin and Gagne ©2018
3.7.2. Mach Mesajları
#include <mach/mach.h>
struct message {
mach_msg_header_t header;
int data;
};
Operating System Concepts – 10th 3.33 Silberschatz, Galvin and Gagne ©2018
3.7.2. Mach Message Passing - Client
Operating System Concepts – 10th 3.34 Silberschatz, Galvin and Gagne ©2018
3.7.2. Mach Message Passing - Server
Operating System Concepts – 10th 3.35 Silberschatz, Galvin and Gagne ©2018
Mailbox – RTOS-32
Kaynak : http://www.on-time.com/rtos-32-docs/rtkernel-32/programming-manual/module/mailbox.htm
Operating System Concepts – 10th 3.36 Silberschatz, Galvin and Gagne ©2018
3.7.4. Pipes
● İki sürecin iletişim kurmasına izin veren bir kanal olarak hareket eder
● Sorunlar:
● İletişim tek yönlü mü yoksa çift yönlü mü?
● İki yönlü iletişim durumunda, yarım mı yoksa tam dupleks mi?
● İletişim kuran süreçler arasında bir ilişki (yani ebeveyn-çocuk) olmalı
mı?
● Borular bir ağ üzerinden kullanılabilir mi?
● Sıradan borulara - onu oluşturan sürecin dışından erişilemez. Tipik
olarak, bir üst süreç bir boru oluşturur ve bunu kendi oluşturduğu bir alt
süreçle iletişim kurmak için kullanır.
● Adlandırılmış borulara - ebeveyn-çocuk ilişkisi olmadan erişilebilir.
Operating System Concepts – 10th 3.37 Silberschatz, Galvin and Gagne ©2018
3.7.4. Pipes
Operating System Concepts – 10th 3.38 Silberschatz, Galvin and Gagne ©2018
3.7.4. Pipes
Operating System Concepts – 10th 3.39 Silberschatz, Galvin and Gagne ©2018
Ordinary Pipes
Operating System Concepts – 10th 3.40 Silberschatz, Galvin and Gagne ©2018
Ordinary Pipes
Operating System Concepts – 10th 3.41 Silberschatz, Galvin and Gagne ©2018
Ordinary Pipes
Operating System Concepts – 10th 3.42 Silberschatz, Galvin and Gagne ©2018
Ordinary Pipes
Operating System Concepts – 10th 3.43 Silberschatz, Galvin and Gagne ©2018
Ordinary Pipes
UYGULAMA
Operating System Concepts – 10th 3.44 Silberschatz, Galvin and Gagne ©2018
Named Pipes
Operating System Concepts – 10th 3.45 Silberschatz, Galvin and Gagne ©2018
Named Pipes
Operating System Concepts – 10th 3.46 Silberschatz, Galvin and Gagne ©2018
Example : Named Pipes
1. Terminal ekranı
2. Terminal ekranı
Operating System Concepts – 10th 3.47 Silberschatz, Galvin and Gagne ©2018
Example : Named Pipes
Operating System Concepts – 10th 3.48 Silberschatz, Galvin and Gagne ©2018
3.8. İstemci-Sunucu Sistemlerinde İletişim
● Soketler
● Uzak Prosedür Çağrıları
Operating System Concepts – 10th 3.49 Silberschatz, Galvin and Gagne ©2018
3.8.1. Soketler
Operating System Concepts – 10th 3.50 Silberschatz, Galvin and Gagne ©2018
Well-known ports
- https://www.webopedia.com/reference/well-known-tcp-port-numbers/
- https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
Operating System Concepts – 10th 3.51 Silberschatz, Galvin and Gagne ©2018
3.8.1. Sockets
Operating System Concepts – 10th 3.52 Silberschatz, Galvin and Gagne ©2018
Socket Communication
Operating System Concepts – 10th 3.53 Silberschatz, Galvin and Gagne ©2018
Example : Sockets in Java
Kaynak : https://www.javatpoint.com/socket-programming
Operating System Concepts – 10th 3.54 Silberschatz, Galvin and Gagne ©2018
Örnek: Java'da Soketler: Sunucu
● Üç tip priz
● Bağlantı odaklı (TCP)
● Bağlantısız (UDP)
● MulticastSocket sınıfı- veriler birden fazla alıcıya gönderilebilir
Operating System Concepts – 10th 3.55 Silberschatz, Galvin and Gagne ©2018
TCP vs. UDP
Kaynak : https://www.yazilimperver.com/index.php/2019/09/29/qt-tcp-sunucu-uygulamasi-bcom-serisi-4/
Operating System Concepts – 10th 3.56 Silberschatz, Galvin and Gagne ©2018
Example : Sockets in Java : Server
Consider this “Date” server in Java
Operating System Concepts – 10th 3.57 Silberschatz, Galvin and Gagne ©2018
Example : Sockets in Java : Müşteri
The equivalent Date client
Operating System Concepts – 10th 3.58 Silberschatz, Galvin and Gagne ©2018
Example : Sockets in Java : Result
Operating System Concepts – 10th 3.59 Silberschatz, Galvin and Gagne ©2018
Uzak Prosedür Çağrıları
● Uzak yordam çağrısı (RPC) soyutlar yordam çağrıları ağa
bağlı sistemlerde süreçler arasında
● Hizmet farklılaştırması için yine bağlantı noktalarını
kullanır
● Stub'lar - sunucudaki gerçek prosedür için istemci tarafı
proxy'si
● İstemci tarafı saplama sunucuyu bulur ve parametreleri
marshall'lar
● Sunucu tarafı saplama bu mesajı alır, marshall parametrelerini
açar ve sunucuda prosedürü gerçekleştirir
● Windows'ta, saplama kodu Microsoft Arayüz Tanımlama Dili
(MIDL) ile yazılmış spesifikasyondan derlenir.
Operating System Concepts – 10th 3.60 Silberschatz, Galvin and Gagne ©2018
Uzaktan Prosedür Çağrıları (Devam)
● Veri gösterimi, farklı mimarileri hesaba katmak için Harici Veri
Gösterimi (XDL) formatı aracılığıyla ele alınır
● Büyük-endian ve küçük-endian
● Uzaktan iletişim, yerel iletişime göre daha fazla hata
senaryosuna sahiptir
● Mesajlar en fazla bir kez yerine tam olarak bir kez
iletilebilir
● İşletim sistemi genellikle istemci ve sunucuyu bağlamak için
bir buluşma (veya çöpçatan) hizmeti sağlar
Operating System Concepts – 10th 3.61 Silberschatz, Galvin and Gagne ©2018
Execution of RPC
Operating System Concepts – 10th 3.62 Silberschatz, Galvin and Gagne ©2018
Example : Remote Procedure Calls
Kaynak : https://www.tutorialspoint.com/python_network_programming/python_remote_procedure_call.htm
Operating System Concepts – 10th 3.63 Silberschatz, Galvin and Gagne ©2018
End of Chapter 3