TUGAS SISTEM OPERASI DEFINISI PENCIPTAAN PROSES, SHARED MEMORY, MESSAGES PASSING


Proses adalah program yang sedang
dijalankan atau diekseskusi. Di sumber lain, proses dikatakan sebagai unit
kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh
sistem operasi.

Lalu
bagaimana proses diciptakan??
Ada beberapa penyebab diciptakannya sebuah
proses pada sistem operasi.
Kejadian yang dapat menyebabkan penciptaan
proses:
  • Pada
    lingkungan batch, sebagai tanggapan atas pemberian suatu kerja (job)
  • Pada
    lingkungan interaktif, ketika pemakai baru berusaha logon
  • Sebagai
    tanggapan suatu aplikasi, seperti permintaan pencetakan file, SO dapat
    menciptakan proses yang akan mengelola pencetakan itu
  • Proses
    menciptakan proses lain (proses anak).
    • Proses
      yang menciptakan child process disebut proses induk (parent
      process
      )
    • Child
      process
       dapat
      menciptakan proses baru
    • Proses-proses
      dapat membentuk pohon hirarki proses

Penyebab penciptaan

Deskripsi

Terdapat batch job baru

SO sedang kendali batch job, setelah
menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya

Satu pemakai interaktif logon

Seorang pemakai pada satu terminal sedang
melakukan logon ke sistem

SO menciptakan proses untuk memberi layanan

SO menciptakan proses untuk memenuhi satu
fungsi pada program pemakai, tanpa mengharuskan pemakai menunggu

Proses menciptakan proses anak

Untuk mencapai modularitas atau
mengeksploitasi kongkurensi, program pemakai memerintahkan pembuatan sejumlah
proses
                          
Setelah kita mengetahui penyebab dari proses
tersebut diciptakan, selanjutnya kita akan mencoba cari tahu aktivitas apa aja
sih yang terdapat dalam penciptaan proses tersebut??
Aktivitas yang terlibat dalam penciptaan
proses:
  • Menamai
    (memberi identitas) proses
  • Menyisipkan
    proses pada senarai proses atau tabel proses
  • Menentukan
    prioritas awal proses
  • Menciptakan
    PCB
  • Mengalokasikan
    sumber daya awal bagi proses
Saat komputer berjalan, terdapat banyak proses
yang berjalan secara bersamaan. Sebuah proses dibuat melalui system call
create-process
 membentuk proses turunan (child process) yang dilakukan
oleh proses induk parent process. Proses turunan tersebut juga mampu
membuat proses baru sehingga ke semua proses-proses ini pada akhirnya membentuk
pohon proses
.


Penghancuran/Terminasi Proses (destroy a
process)
Penghancuran Proses (destroy a process)
            
Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu: Sumber
daya-sumber daya yang dipakai dikembalikan, Proses dihancurkan dari senarai
atau tabel system, PCB dihapus (ruang memori PCB dikembalikan ke pool memori
bebas )

Penghancuran
lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua
pendekatan. Pendekatan pertama ada beberapa sistem, proses-proses turunan
dihancurkan saat proses induk dihancurkan secara otomatis.Pendekatan kedua
beberapa sistem lain menganggap proses anak independen terhadap proses induk
Proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.

Penghancuran
proses
 melibatkan
pembebasan proses dari sistem,yaitu :

·        sumber daya – sumber daya yang dipakai
dikembalikan
·         proses dihancurkan dari senarai atau
tabel sistem
·         PCB dihapus (ruang memori PCB
dikembalikan ke pool memori bebas)

Penghancuran
lebih rumit bila proses telah menciptakan prose-proses lain.terdapat 2
pendekatan,yaitu:

1.   Pada beberapa sistem,proses-proses turunan
dihancurkan saat proses induk di hancurkan secara otomatis.
2.   Beberapa sistem lain menganggap proses anak
independen terhadap proses induk sehingga proses anak tidak secara otomatis di
hancurkan saat proses induk di hancurkan.

induk di hancurkan.
Alasan-alasan
penghancuran proses (penyebab terminasi):
1.selesainya
proses secara normal
Proses mengeksekusi panggilan layanan sistem operasi untuk
menandakan bahwa proses telah berjalan secara lengkap.
2.batas waktu terlewati
    Proses telah berjalan melebihi batas waktu total
yg dispesifikasikan.
3.Memori tidak tersedia
Proses
memerlukan memori lebih banyak dari pada yang dapat disediakan sistem.
4.Pelanggaran
terhadap batas memori

Proses mencoba mengakses lokasi memori yang tidak di izinkan di akses
5.Terjadi
kesalahan karena pelanggaran proteksi
Proses berusaha menggunakan sumber daya atau file yang tidak di
ijinkan di pakainya,atau proses mencoba menggunakannya tidak untuk peruntukkannya,seperti
menulis file read-only.
6.Terjadi kesalahan aritmatika
Proses
mencoba perhitungan terlarang,seperti pembagiaan dengan nol atau mencoba
menyimpan angka yang lebih besar dari pada yang di akomodasi oleh perangkat
keras.
7.Waktu
tel;ah kadaluwarsa
Proses telah menunggu lebih lama dari pada maksimum yang di
tentukan untuk terjadinya suatu kejadian spesifik.
8.Terjadi kegagalan masukan/keluaran
Kesalahan
muncul pada masukan atau keluaran,seperti ketidakmampuan menemukan file,kegagalan
membaca atau menulis setelah sejumlah maksimum percobaan di tentukan (misal :
area rusak didapatkan pada disk,atau operasi tak valis seperti membaca dari
line printer).



     Penundaan Proses (suspend a process)

            
Penundaan (suspension) adalah operasi penting dan telah diterapkan dengan
beragam cara. Penundaan dapat diinisialisasi oleh proses itu sendiri atau
proses lain. Penundaan biasanya berlangsung singkat dan sering dilakukan sistem
untuk memindahkan proses-proses tertentu guna mereduksi beban sistem selama beban
puncak. Proses yang ditunda (suspended process) tidak berlanjut sampai proses
lain me-resume. Untuk jangka panjang, sumber daya-sumber daya proses
dibebaskan. Pada sistem monoprocessor, proses running dapat men-suspend dirinya
sendiri karena lak ada proses lain yang juga running yang dapat memerintahkan
suspend. Pada sistem multiprocessor, proses running dapat di-suspend proses
running lain pada pemroses berbeda. Proses ready hanya dapat di-suspend oleh
proses lain.

Proses
Pelanjutan Kembali (resume a process)

              Jika sistem berfungsi secara buruk
dan mungkin gagal maka proses-proses dapat di- suspend agar di-resume setelah
masalab diselesaikan. Pemakai yang ragu / khawatir mengenai basil proses dapat
men-suspend proses [bukan membuang (abort) proses]. Saat pemakai yakin proses
akan berfungsi secara benar maka dapat me-resume (melanjutkan kembali di
instruksi saat di-suspend) proses yang di-suspend.
Sebagai
tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa proses dapal
di-suspend dan di- resume saat beban kembali ke tingkat normal.

Shared Memory



Shared Memory merupakan
sebuah metode di mana proses program dapat bertukaran data lebih cepat daripada
hanya dengan membaca dan menulis menggunakan layanan sistem operasi yang baisa.
Untuk berkomunikasi, Shared Memory akan mengalokasikan
suatu alamat memori yang akan digunakan nantinya. Kemudian sistem akan mengatur
proses mana saja yang akan memakai memori tersebut pada waktu tertentu agar
nantinya proses dapat berjalan lebih efektif.




Description: shm-1



Langkah-Langkah Membuat Shared Memory

  • Membuat
    segmen di memori dengan shmget().
  • Mendaftarkan
    (attach) segmen ke data space
    dari proses dengan shmat().
  • Tulis/baca
    dari memori
  • Detach segmen
    dari data space dari proses dengan shmdt().

shmget()

System call untuk
membuat suatu segmen shared memory.




Definisi:



  • #include
    <sys/ipc.h>
  • #include
    <sys/shm.h>
  • int
    shmget(key_t key, size_t size, int shmflg);
shmflg bisa diisi dengan IPC_CREATE,
IPC_EXCL, permission.




shmmat()

System call untuk
mendaftarkan segmen shared memory ke dalam data
space
 dari suatu proses.




Definisi:



  • #include
    <sys/types.h>
  • #include
    <sys/shm.h>
  • void
    *shmat(int shmid, const void *shmaddr, int shmflg);
Parameter:



  • Shmid
    → ID dari shared memory.
  • Shmaddr
    → Lokasi shared memory di memori utama.
    • jika
      NULL akan dicarikan lokasi pada memori yang ingin ditempati.
  • Return:
    • Pointer
      ke lokasi shared memory.

shmdt()

System call untuk
melepaskan segmen shared memory data space dari
proses.




Definisi:



  • #include
    <sys/types.h>
  • #include
    <sys/shm.h>
  • int
    shmdt(const void *shmaddr);
Parameter:



  • Shmaddr
    → pointer ke lokasi shared memory.
  • Return:
    • 0
      → sukses
    • (void
      *) -1 → error

shmctl()

System call untuk mengetahui atau merubah
informasi yang berkaitan dengan suatu shared memory.




Definisi:



  • #include
    <sys/ipc.h>
  • #include
    <sys/shm.h>
  • int
    shmctl(int shmid, int cmd, struct shmid_ds *buf);
Argument cmd berisi:



  • IPC_STAT: mengambil
    informasi tentang segmen shared memory.
  • IPC_SET: mengubah
    informasi tentang segmen shared memory.
  • IPC_RMID: menandai
    suatu segmen untuk dibuang ketika semua proses yang menggunakannya sudah
    melepasnya.
  • SHM_LOCK: lock
    suatu segmen, membuatnya tidak bisa di-swap.
  • SHM_UNLOCK: unlock
    suatu segmen.

Messages Passing

Massage Passing merupkan suatu teknik bagaimana mengatur suatu alur komunikasi
messaging terhadap proses pada system. Message passing dalam ilmu komputer
adalah suatu bentuk komunikasi yang digunakan dalam komputasi paralel,
pemrograman-berorientasi objek, dan komunikasi interprocess. Dalam model ini,
proses atau benda dapat mengirim dan menerima pesan yang terdiri dari nol atau
lebih byte, struktur data yang kompleks, atau bahkan segmen kode ke proses
lainnya dan dapat melakukan sinkronisasi. Paradigma Message passing yaitu :
1.  Banyak contoh dari paradigma
sekuensial dipertimbangkan bersama-sama.
2.Programmer membayangkan beberapa prosesor,
masing-masing dengan memori, dan menulis sebuah program untuk berjalan pada
setiap prosesor.
3. Proses berkomunikasi dengan
mengirimkan pesan satu sama lain.

Kegunaan
Message Passing :
  • Shared-memory pada
    multiprocessor
  • Shared-memory pada uniprocessor
  • Sistem terdistribusi
Karakteristik
perancangan message passing:
A.
Synchronization
a.
Send
  • blocking
  • nonblocking
b.
Receive
  • blocking
  • nonblocking
  • test for arrival
B.
Addressing
Direct
:
a.
Send
b.
Receive
  1. explicit
  2. implicit
Indirect
:
  1. static
  2. dynamic
  3. ownership
C.
Format
a.
Content
b.
Length
  • fixed
  • variable
D.
Queuing Discipline
a.
FIFO
b.
Priority







SEMOGA BERMANFAAT......

Komentar

Postingan populer dari blog ini

KODE PROGRAM MENGHITUNG LUAS BANGUN RUANG MENGGUNAKAAN C++

PEMROGRAMAN MENCARI FUNGSI MENGGUNAKAN TIPE DATA INTEGER