Proses
Proses
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Bab 3: Proses
■ Konsep Proses
■ Penjadwalan Proses
■ Operasi Proses
■ InterProcess Communication
■ Contoh Sistem IPC
■ Komunikasi Sistem Client-Server
Operating System Concepts – 9th Edition 3.2 Silberschatz, Galvin and Gagne ©2013
Tujuan
■ Memperkenalkan proses -- sebuah program dieksekusi yang
merupakan dasar dari semua komputasi
Operating System Concepts – 9th Edition 3.3 Silberschatz, Galvin and Gagne ©2013
Konsep Proses
Operating System Concepts – 9th Edition 3.4 Silberschatz, Galvin and Gagne ©2013
Question
● Adobe Photoshop
● Notepad
Operating System Concepts – 9th Edition 3.5 Silberschatz, Galvin and Gagne ©2013
Konsep Proses
■ Dalam konteks komputasi terdapat dua terminologi
● Program - kumpulan instruksi berurutan yang masih disimpan dalam disk dan belum siap
dieksekusi
● Process – program program (kumpulan instruksi) yang sudah dialokasikan di main memory
dan sedang/siap untuk dieksekusi secara sekuensial
✔ Istilah lain – jobs
■ Program dikenal sebagai entitas pasif dan process dikenal sebagai entitas aktif
■ Eksekusi program dimulai via klik mouse pada GUI atau via command line
Operating System Concepts – 9th Edition 3.6 Silberschatz, Galvin and Gagne ©2013
Dari Source Code ke Process
Operating System Concepts – 9th Edition 3.7 Silberschatz, Galvin and Gagne ©2013
Bagian Proses
Operating System Concepts – 9th Edition 3.8 Silberschatz, Galvin and Gagne ©2013
Memory Layout of a C Program
Operating System Concepts – 9th Edition 3.9 Silberschatz, Galvin and Gagne ©2013
Siklus Eksekusi Instruksi dalam Sebuah Process
Operating System Concepts – 9th Edition 3.10 Silberschatz, Galvin and Gagne ©2013
State Proses
■ Dalam perjalanannya, sebuah proses mengalami perubahan state
● new: Proses yang sedang dibuat
● running: Instruksi yang sedang dieksekusi
● waiting: Proses menunggu beberapa event terjadi
● ready: Proses menunggu untuk ditugaskan ke prosesor
● terminated: Proses selesai dieksekusi
Operating System Concepts – 9th Edition 3.11 Silberschatz, Galvin and Gagne ©2013
Process Control Block (PCB)
Informasi yang terkait dengan setiap proses disimpan
dalam struktur data process control block (PCB)
yang terdiri atas :
■ Process state – running, waiting, etc
■ Program counter – location of instruction to next
execute
■ CPU registers – contents of all process-centric
registers
■ CPU scheduling information- priorities,
scheduling queue pointers
■ Memory-management information – memory
allocated to the process
■ Accounting information – CPU used, clock time
elapsed since start, time limits
■ I/O status information – I/O devices allocated to
process, list of open files
Operating System Concepts – 9th Edition 3.12 Silberschatz, Galvin and Gagne ©2013
Representasi PCB di Kernel Linux
Operating System Concepts – 9th Edition 3.13 Silberschatz, Galvin and Gagne ©2013
Threads
Operating System Concepts – 9th Edition 3.14 Silberschatz, Galvin and Gagne ©2013
Process Scheduling
(Penjadwalan Process)
Operating System Concepts – 9th Edition 3.15 Silberschatz, Galvin and Gagne ©2013
Penjadwalan Process
■ Satu CPU hanya dapat mengeksekusi satu instruksi dalam satu
waktu
Operating System Concepts – 9th Edition 3.16 Silberschatz, Galvin and Gagne ©2013
Process Scheduler
■ Tugas : Memilih diantara process yang tersedia untuk dieksekusi oleh CPU
Operating System Concepts – 9th Edition 3.17 Silberschatz, Galvin and Gagne ©2013
Ready Queue And Various
I/O Device Queues
Operating System Concepts – 9th Edition 3.18 Silberschatz, Galvin and Gagne ©2013
Representasi Penjadwalan Process
Operating System Concepts – 9th Edition 3.19 Silberschatz, Galvin and Gagne ©2013
CPU Switch From Process to Process
Ketika eksekusi berpindah dari satu process ke process lain
terjadi mekanisme context switch .
Operating System Concepts – 9th Edition 3.20 Silberschatz, Galvin and Gagne ©2013
Jenis-Jenis Schedulers
■ Long-term scheduler ( job scheduler) – scheduler yang bertugas memilih dan
memindahkan process ke ready queue
■ Short-term scheduler (or CPU scheduler) – scheduler yang bertugas memilih
process di ready queue yang akan dieksekusi CPU selanjutnya
● Dalam sebuah OS mungkin hanya ada scheduler jenis ini
■ Short-term scheduler diekskusi sangat sering (milliseconds) Þ (prioritas tinggi,
harus cepat)
■ Long-term scheduler dieksekusi cukup jarang (seconds, minutes) Þ (boleh jadi
lambat)
■ The long-term scheduler mengontrol degree of multiprogramming
● degree of multiprogramming : jumlah process di memory
■ Processes can be described as either:
● I/O-bound process – spends more time doing I/O than computations, many
short CPU bursts
● CPU-bound process – spends more time doing computations; few very long
CPU bursts
■ Long-term scheduler strives for good process
Operating System Concepts – 9th Edition 3.21
mix Silberschatz, Galvin and Gagne ©2013
Medium Term Scheduling
■ Medium-term scheduler dapat ditambahkan untuk mengurangi degree of
multiprogramming
● Dapat dipakai untuk mekanisme swapping
● Hapus process dari memory, masukkan dalam disk, kemudian dialokasikan ke
memory lagi jika dibutuhkan untuk dieksekusi
Operating System Concepts – 9th Edition 3.22 Silberschatz, Galvin and Gagne ©2013
Multitasking in Mobile Systems
■ Some systems / early systems allow only one process to run, others suspended
■ Due to screen real estate, user interface limits iOS provides for a
● Single foreground process- controlled via user interface
● Multiple background processes– in memory, running, but not on the display,
and with limits
● Limits include single, short task, receiving notification of events, specific long-
running tasks like audio playback
■ Android runs foreground and background, with fewer limits
● Background process uses a service to perform tasks
● Service can keep running even if background process is suspended
● Service has no user interface, small memory use
Operating System Concepts – 9th Edition 3.23 Silberschatz, Galvin and Gagne ©2013
Context Switch
■ Ketika CPU berpindah mengeksekusi process lain, OS harus menyimpan
state dari process sebelumnya dan membaca state tersimpan untuk
process baru lewat mekanisme context switch
Operating System Concepts – 9th Edition 3.24 Silberschatz, Galvin and Gagne ©2013
Context Switch
■ Ketika CPU berpindah mengeksekusi process lain, OS harus menyimpan
state dari process sebelumnya dan membaca state tersimpan untuk
process baru lewat mekanisme context switch
Operating System Concepts – 9th Edition 3.25 Silberschatz, Galvin and Gagne ©2013
Operations on Process
(Operasi-Operasi pada Process)
Operating System Concepts – 9th Edition 3.26 Silberschatz, Galvin and Gagne ©2013
Operations on Processes
Operating System Concepts – 9th Edition 3.27 Silberschatz, Galvin and Gagne ©2013
Process Creation
■ Parent process create children processes, which, in turn create other
processes, forming a tree of processes
■ Generally, process identified and managed via a process identifier (pid)
● Ex. : try to execute ps -el in your Linux machine
■ Resource sharing options
● Parent and children share all resources
● Children share subset of parent’s resources
● Parent and child share no resources
■ Execution options
● Parent and children execute concurrently
● Parent waits until children terminate
Operating System Concepts – 9th Edition 3.28 Silberschatz, Galvin and Gagne ©2013
A Tree of Processes in Linux
Operating System Concepts – 9th Edition 3.29 Silberschatz, Galvin and Gagne ©2013
Question : Pembuktian
Operating System Concepts – 9th Edition 3.30 Silberschatz, Galvin and Gagne ©2013
Process Creation (Cont.)
■ Address space
● Child duplicate of parent
● Child has a program loaded into it
■ UNIX examples
● fork() system call creates new process
● exec() system call used after a fork() to replace the process’ memory space with a new program
Operating System Concepts – 9th Edition 3.31 Silberschatz, Galvin and Gagne ©2013
C Program Forking Separate Process
Operating System Concepts – 9th Edition 3.32 Silberschatz, Galvin and Gagne ©2013
Process Termination
■ Process executes last statement and asks the operating system to delete it (exit())
● Output data from child to parent (via wait())
● Process’ resources are deallocated by operating system
■ Parent may terminate execution of children processes (abort())
● Child has exceeded allocated resources
● Task assigned to child is no longer required
● If parent is exiting
✔ Some operating systems do not allow child to continue if its parent
terminates
– All children terminated - cascading termination
■ Wait for termination, returning the pid:
pid t_pid; int status;
pid = wait(&status);
Operating System Concepts – 9th Edition 3.33 Silberschatz, Galvin and Gagne ©2013
Question
Operating System Concepts – 9th Edition 3.34 Silberschatz, Galvin and Gagne ©2013
Multiprocess Architecture – Chrome Browser
Operating System Concepts – 9th Edition 3.35 Silberschatz, Galvin and Gagne ©2013
Inter Process Communication (IPC)
Operating System Concepts – 9th Edition 3.36 Silberschatz, Galvin and Gagne ©2013
Interprocess Communication
■ Processes within a system may be independent or cooperating
■ Cooperating process can affect or be affected by other processes, including sharing
data
■ Reasons for cooperating processes:
● Information sharing
● Computation speedup
● Modularity
● Convenience
■ Cooperating processes need interprocess communication (IPC)
■ Two models of IPC
● Shared memory
● Message passing
Operating System Concepts – 9th Edition 3.37 Silberschatz, Galvin and Gagne ©2013
Communications Models
process A process A
process B
message queue
m0 m1 m2 m3 ... mn
kernel
kernel
(a) (b)
Operating System Concepts – 9th Edition 3.38 Silberschatz, Galvin and Gagne ©2013
Cooperating Processes
Operating System Concepts – 9th Edition 3.39 Silberschatz, Galvin and Gagne ©2013
Producer-Consumer Problem
Operating System Concepts – 9th Edition 3.40 Silberschatz, Galvin and Gagne ©2013
Bounded-Buffer – Shared-Memory Solution
■ Shared data
#define BUFFER_SIZE 10
typedef struct {
...
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
item next_produced;
while (true) {
/* produce an item in next produced */
while (((in + 1) % BUFFER_SIZE) == out)
; /* do nothing */
buffer[in] = next_produced;
in = (in + 1) % BUFFER_SIZE;
}
Operating System Concepts – 9th Edition 3.42 Silberschatz, Galvin and Gagne ©2013
Bounded Buffer – Consumer
item next_consumed;
while (true) {
while (in == out)
; /* do nothing */
next_consumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
Operating System Concepts – 9th Edition 3.43 Silberschatz, Galvin and Gagne ©2013
Interprocess Communication – Message Passing
Operating System Concepts – 9th Edition 3.44 Silberschatz, Galvin and Gagne ©2013
Direct Communication
■ Processes must name each other explicitly:
● send (P, message) – send a message to process P
● receive(Q, message) – receive a message from process Q
Operating System Concepts – 9th Edition 3.45 Silberschatz, Galvin and Gagne ©2013
Indirect Communication
■ Messages are directed and received from mailboxes (also referred to as ports)
● Each mailbox has a unique id
● Processes can communicate only if they share a mailbox
Operating System Concepts – 9th Edition 3.46 Silberschatz, Galvin and Gagne ©2013
Indirect Communication
■ Operations
● create a new mailbox
● send and receive messages through mailbox
● destroy a mailbox
Operating System Concepts – 9th Edition 3.47 Silberschatz, Galvin and Gagne ©2013
Indirect Communication
■ Mailbox sharing
● P1, P2, and P3 share mailbox A
● P1, sends; P2 and P3 receive
● Who gets the message?
■ Solutions
● Allow a link to be associated with at most two processes
● Allow only one process at a time to execute a receive operation
● Allow the system to select arbitrarily the receiver. Sender is notified who the
receiver was.
Operating System Concepts – 9th Edition 3.48 Silberschatz, Galvin and Gagne ©2013
Synchronization
■ Message passing may be either blocking or non-blocking
Operating System Concepts – 9th Edition 3.49 Silberschatz, Galvin and Gagne ©2013
Synchronization (Cont.)
message next_produced;
while (true) {
message next_consumed;
/* produce an item in next produced */
while (true) {
send(next_produced);
receive(next_consumed);
}
/* consume the item in next consumed */
}
Operating System Concepts – 9th Edition 3.50 Silberschatz, Galvin and Gagne ©2013
Buffering
Operating System Concepts – 9th Edition 3.51 Silberschatz, Galvin and Gagne ©2013
Examples of IPC Systems - POSIX
■ POSIX Shared Memory
● Process first creates shared memory segment
shm_fd = shm_open(name, O CREAT | O RDWR, 0666);
● Also used to open an existing segment to share it
● Set the size of the object
ftruncate(shm fd, 4096);
● Now the process could write to the shared memory
sprintf(shared memory, "Writing to shared memory");
Operating System Concepts – 9th Edition 3.52 Silberschatz, Galvin and Gagne ©2013
IPC POSIX Producer
Operating System Concepts – 9th Edition 3.53 Silberschatz, Galvin and Gagne ©2013
IPC POSIX Consumer
Operating System Concepts – 9th Edition 3.54 Silberschatz, Galvin and Gagne ©2013
Communications in Client-Server Systems
Operating System Concepts – 9th Edition 3.55 Silberschatz, Galvin and Gagne ©2013
Communications in Client-Server Systems
■ Sockets
■ Pipes
Operating System Concepts – 9th Edition 3.56 Silberschatz, Galvin and Gagne ©2013
Sockets
■ A socket is defined as an endpoint for communication
■ All ports below 1024 are well known, used for standard services
Operating System Concepts – 9th Edition 3.57 Silberschatz, Galvin and Gagne ©2013
Socket Communication
Operating System Concepts – 9th Edition 3.58 Silberschatz, Galvin and Gagne ©2013
Sockets in Java
Operating System Concepts – 9th Edition 3.59 Silberschatz, Galvin and Gagne ©2013
Pipes
■ Acts as a conduit allowing two processes to communicate
■ Issues
● Is communication unidirectional or bidirectional?
● In the case of two-way communication, is it half or full-duplex?
● Must there exist a relationship (i.e. parent-child) between the
communicating processes?
● Can the pipes be used over a network?
Operating System Concepts – 9th Edition 3.60 Silberschatz, Galvin and Gagne ©2013
Ordinary Pipes
■ Consumer reads from the other end (the read-end of the pipe)
Operating System Concepts – 9th Edition 3.61 Silberschatz, Galvin and Gagne ©2013
Named Pipes
■ Communication is bidirectional
Operating System Concepts – 9th Edition 3.62 Silberschatz, Galvin and Gagne ©2013
Pipe vs Socket
■ Both pipes and sockets handle byte streams, but they do it in different ways.
● Pipes only exist within a specific host, and they refer to buffering between virtual files, or
connecting the output / input of processes within that host. There are no concepts of
packets within pipes.
● Sockets packetize communication using IPv4 or IPv6; that communication can extend
beyond localhost.
● Socket allows more than two processes communicating
■ Usage:
● Use pipes:
✔ when you want to read / write data as a file within a specific server. If you're using C,
you read() and write() to a pipe.
✔ when you want to connect the output of one process to the input of another
process... see popen()
● Use sockets to send data between different IPv4 / IPv6 endpoints. Very often, this
happens between different hosts, but sockets could be used within the same host
Operating System Concepts – 9th Edition 3.63 Silberschatz, Galvin and Gagne ©2013
Question
Operating System Concepts – 9th Edition 3.64 Silberschatz, Galvin and Gagne ©2013
Remote Procedure Calls
■ Remote procedure call (RPC) abstracts procedure calls between processes on networked systems
● Again uses ports for service differentiation
■ Stubs – client-side proxy for the actual procedure on the server
■ The client-side stub locates the server and marshalls the parameters
■ The server-side stub receives this message, unpacks the marshalled parameters, and performs the
procedure on the server
■ On Windows, stub code compile from specification written in Microsoft Interface Definition Language
(MIDL)
■ Data representation handled via External Data Representation (XDL) format to account for different
architectures
● Big-endian and little-endian
■ Remote communication has more failure scenarios than local
● Messages can be delivered exactly once rather than at most once
■ OS typically provides a rendezvous (or matchmaker) service to connect client and server
Operating System Concepts – 9th Edition 3.65 Silberschatz, Galvin and Gagne ©2013
Execution of RPC
Operating System Concepts – 9th Edition 3.66 Silberschatz, Galvin and Gagne ©2013
End of Chapter 3
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013