Tugas Mata Kuliah Sistem Operasi

26 Agustus 2009

Tugas 3 (State of Proccess)

  1. Sebutkan state pada proses dan jelaskan diagram proses!

a. New: proses sedang dibuat.

b. Running: proses sedang dieksekusi.

c. Waiting: proses sedang menunggu beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal).

d. Ready: proses menunggu jatah waktu dari CPU untuk diproses.

e. Terminated: proses telah selesai dieksekusi.


Status Proses. New, ready, running, waiting dan terminated.

Program Counter. Menunjukkan alamat berikutnya yang akan dieksekusi oleh proses tersebut.

CPU Registers. Register bervariasi tipe dan jumlahnya tergantung arsitektur komputer yang bersangkutan. Register-register tersebut terdiri-atas: accumulator, index register, stack pointer, dan register serbaguna dan beberapa informasi tentang kode kondisi. Selama Program Counter berjalan, status informasi harus disimpan pada saat terjadi interrupt. Gambar disamping menunjukkan switching proses dari satu proses ke proses berikutnya.

Informasi Penjadwalan CPU. Informasi tersebut berisi prioritas dari suatu proses, pointer ke antrian penjadwalan, dan beberapa parameter penjadwalan yang lainnya.

Informasi Manajemen Memori. Informasi tersebut berisi nilai (basis) dan limit register, page table, atau segment table tergantung pada sistem memory yang digunakan oleh SO.

Informasi Accounting. Informasi tersebut berisi jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah job atau proses, dll.

Informasi Status I/O. Informasi tersebut berisi deretan I/O device (seperti tape driver) yang dialokasikan untuk proses tersebut, deretan file yang dibuka, dll.


  1. Apa yang dimaksud short term scheduler dan long term scheduler?

Terdapat dua bentuk penjadwal, yaitu:

Longterm-Scheduler (job scheduler), menyeleksi proses-proses mana yang harus dibawa ke ready queue.

Short-term Scheduler (CPU scheduler), memilih proses-proses yang siap untuk dieksekusi, dan mengakolakasikan CPU ke salah satu dari proses-proses tersebut.

Short-term scheduler terjadi sangat sering (dalam milidetik), jadi setiap proses

dijadwal dengan cepat, sedangkan long-term scheduler terjadi sangat jarang (dalam detik atau menit), sehingga setiap proses dijadwal dengan lambat. Long-term scheduler digunakan untuk mengontrol tingkat multiprogramming.


  1. Jelaskan 4 alasan mengapa proses harus bekerja sama!

Keuntungan proses yang saling bekerja sama adalah:

(1)Terjadi pembagian informasi

(2)Meningkatkan kecepatan komputasi

(3)Proses dapat dibagi dalam modul-modul

(4)Lebih memberikan kenyamanan pada programmer.


  1. Tuliskan kode program untuk penyelesaian permasalahan producer consumer dengan menggunakan shared memory!

#define BUFFER_SIZE 10

Typedef struct {

. . .

} item;

item buffer[BUFFER_SIZE];

int in = 0;

int out = 0;

Proses producer:

item nextProduced;

while (1) {

while (((in + 1) % BUFFER_SIZE) == out)

; /* do nothing */

buffer[in] = nextProduced;

in = (in + 1) % BUFFER_SIZE;

}


Proses consumer:

item nextConsumed;

while (1) {

while (in == out)

; /* do nothing */

nextConsumed = buffer[out];

out = (out + 1) % BUFFER_SIZE;

}

  1. Diketahui skema komunikasi antar proses menggunakan mailbox;
    1. Proses P ingin menunggu 2 pesan, satu dari mailbox A dan satu dari mailbox B. Tunjukkan urutan send dan receive yang dieksekusi!

Send :

Receive :

    1. Bagaimana urutan send dan receive yang dieksekusi P jika P ingin menunggu satu pesan dari mailbox A atau mailbox B (salah satu atau keduanya)

Send :

Receive :


  1. Jelaskah apa yang dimaksud dengan thread dan struktur dari thread!

Suatu proses didefinisikan oleh resource yang digunakan dan lokasi yang akan dieksekusi. Namun adakalanya proses-proses akan menggunakan resource secara bersama-sama. Suatu unit dasar dari CPU utilization yang berisi program counter, kumpulan register, dan ruang stack disebut dengan thread atau lighweight process (LWP). Thread akan bekerjasama dengan thread yang lainnya dalam hal penggunaan bagian kode, bagian data, dan resource sistem operasi, seperti open file dan sinyal secara kolektif yang sering disebut dengan task.

Apabila dilakukan perbandingaan antara sistem multi thread dengan sistem multi proses dapat disimak berikut. Pada multi proses, setiap proses secara terpisah melakukan operasi tidak bekerja sama dengan proses lain, setiap proses mempunyai program counter, stack register dan ruang alamat sendiri. Organisasi jenis ini berguna jika job dibentuk oleh proses-proses yang tidak saling berhubungan. Multi proses membentuk task yang sama. Sebagai contoh, multi proses dapat menyediakan data untuk mesin secara remote pada implementasi system file jaringan. Hal ini lebih efisien apabila satu proses terdiri dari multi thread melayani tugas yang sama. Pada implementasi multi proses, setiap proses mengeksekusi kode yang sama tetapi mempunyai memori dan resource file sendiri. Satu proses multi thread menggunakan resource lebih sedikit daripada multi proses, termasuk memory, open file dan penjadwalan CPU. Seperti halnya proses, thread memiliki status: ready, blocked, running dan terminated, dan hanya satu thread yang aktif dalam satu waktu. Thread dapat membuat child thread. Jika satu thread dalam keadaan blocked, maka thread yang lainnya dapat dijalankan. Namun, tidak saling bebas, Sebab semua thread dapat mengakses setiap alamat dalam satu task, thread dapat membaca dan menulisi stack dari thread yang lainnya. Sehingga tidak ada proteksi antara satu thread terhadap thread yang lainnya. Suatu proses dapat terdiri dari satu thread (single thread) dan beberapa thread (multi thread).


  1. Jelaskan empat keuntungan menggunakan threads pada multiple process!

(1)Pada respon lebih cepat

(2)Menggunakan resource bersama-sama

(3)Lebih ekonomis

(4)Meningkatkan utilitas arsitektur mikroprosessor


  1. Apakah perbedaan antara user-level thread dan kernel-supported threads?

User thread adalah thread yang diatur dengan menggunakan pustaka user level thread. Contoh; sistem yang menggunakan user thread adalah POSIX Pthreads, Mach C-threads dan Solaris threads.

Kernel thread adalah thread yang didukung oleh Kernel. Contoh; sistem yang menggunakan kernel thread adalah Windows 95/98/NT/2000, Solaris, Tru64 UNIX, BeOS dan Linux.


  1. Ada 3 model multi threading, jelaskan!

Model multi thread terdiri dari model Many-to-One, One-to-One dan Many-to-Many.
Pada model Many-to-One, beberapa user level thread dipetakan ke satu kernel thread dan digunakan pada sistem yang tidak mendukung kernel threads.

Pada model One-to-One, setiap user-level thread dipetakan ke kernel thread, misalnya pada Windows 95/98/NT/2000 dan OS/2.

Pada model Many-to-Many, user level thread dipetakan ke beberapa kernel threads. Pada sistem operasi ini akan dibuat sejumlah kernel thread, contohnya Solaris 2 dan Windows NT/2000 dengan ThreadFiber package.


  1. Jelaskan state pada Java thread!

Bahasa pemrograman Java menggunakan Java thread yang dibuat dengan menggunakan class Thread dan mengimplementasikan antar muka yang bersifat runnable (dapat dijalankan). Java thread diatur oleh Java virtual machine (JVM). Java thread terdiri dari state new, runnable, blocked dan dead.

Tugas 2 (Struktur Sistem Operasi)

1) Aktifitas apa yang dilakukan sistem operasi berhubungan dengan:

a. Manajemen proses

Merupakan kosep pokok di sistem operasi. Terdapat beragam definisi proses diantaranya:

· Proses adalah program yang sedang dieksekusi.

· Proses merupakan unit kerja terkecil yang secara individual memiliki sumber daya-sumber daya dan dijadwalkan oleh sistem operasi.

Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, memori, berkas - berkas, dan perangkat-perangkat I/O. Sistem operasi menegelola semua proses di sistem dan mengalokasikan sumber daya ke proses-proses sesuai kebijaksanaan untuk memenuhi sasaran sistem. Sistem operasi mengalokasikan sumber daya - sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mendapatkan kembali semua sumber daya yang bisa digunakan kembali.

Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti:

· Menciptakan dan menghapus proses.

· Menunda atau melanjutkan proses.

· Menyediakan mekanisme untuk proses sinkronisasi.

· Menyediakan mekanisme untuk proses komunikasi.

· Menyediakan mekanisme untuk penanganan deadlock.

b. Manajemen memory utama

Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word atau byte mempunyai alamat tersendiri. Memori utama berfungsi sebagai tempat penyimpanan instruksi / data yang akses datanya digunakan oleh CPU dan perangkat I/O. Memori utama termasuk tempat penyimpanan data yang yang bersifat volatile - tidak permanen (sementara), artinya data akan hilang jika komputer dimatikan.

Manajemen memori sangat mempengaruhi kinerja komputer. Manajemen memori melakukan tugas penting dan kompleks berkaitan dengan:

· Memori utama sebegai sumber daya yang harus dialokasikan dan dipakai bersama di antara sejumlah proses yang aktif, agar dapat memanfaatkan prosesor dan fasilitas input/output secara efisisen, maka diinginkan memori yang dapat menampung sebanyak mungkin proses.

· Upaya agar pemrogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer (adanya memori virtual).

Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen memori seperti:

· Melacak pemakaian memori (berapa besar dan oleh siapa)

· Mengelola informasi memori yang dipakai atau tidak dipakai.

· Alokasi dan dealokasi memori sesuai keperluan.

· Memilih program yang akan di-load ke memori.

c. Manajemen file

Berkas adalah kumpulan informasi yang berhubungan, sesuai dengan tujuan pembuat berkas tersebut. Umumnya berkas merepresentasikan program dan data. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.). Sistem operasi mengimplementasikan konsep abstrak dari berkas dengan mengatur media penyimpanan massa, misalanya tapes dan disk

Sistem operasi bertanggung jawab dalam aktivitas yang berhubungan dengan manajemen berkas:

· Pembuatan dan penghapusan berkas.

· Pembuatan dan penghapusan direktori.

· Mendukung manipulasi berkas dan direktori.

· Memetakan berkas ke penyimpanan sekunder.

· Mem-back up berkas ke media penyimpanan yang permanen (non-volatile).

2) Apa kegunaan sistem command interpreter?

Sistem operasi menyediakan layanan untuk programmer sehingga dapat melakukan pemrograman dengan mudah.

  1. Eksekusi Program. Sistem harus dapat memanggil program ke memori dan menjalankannya. Program tersebut harus dapat mengakhiri eksekusinya dalam bentuk normal atau abnormal (indikasi error).
  2. Operasi-operasi I/O. Pada saat running program kemungkinan dibutuhkan I/O, mungkin berupa file atau peralatan I/O. Agar efisien dan aman, maka user tidak boleh mengontrol I/O secara langsung, pengontrolan dilakukan oleh sistem operasi.
  3. Manipulasi sistem file. Kapabilitas program untuk membaca, menulis, membuat dan menghapus file.
  4. Komunikasi. Komunikasi dibutuhkan jika beberapa proses yang sedang dieksekusi saling tukar-menukar informasi. Penukaran informasi dapat dilakukan oleh beberapa proses dalam satu komputer atau dalam komputer yang berbeda melalui system jaringan. Komunikasi dilakukan dengan cara berbagi memori (shared memory) atau dengan cara pengiriman pesan (message passing).
  5. Mendeteksi kesalahan. Sistem harus menjamin kebenaran dalam komputasi dengan melakukan pendeteksian error pada CPU dan memori, perangkat I/O atau pada user program.

Beberapa fungsi tambahan yang ada tidak digunakan untuk membantu user, tetapi lebih digunakan untuk menjamin operasi sistem yang efisien, yaitu:

· Mengalokasikan sumber daya (resource). Sistem harus dapat mengalokasikan resource untuk banyak user atau banyak job yang dijalanan dalam waktu yang sama.

· Akutansi. Sistem membuat catatan daftar berapa resource yang digunakan user dan resource apa saja yang digunakan untuk menghitung secara statistik akumulasi penggunaan resource.

· Proteksi. Sistem operasi harus menjamin bahwa semua akses ke resource terkontrol dengan baik.

3) Apa yang dimaksud dengan system calls? Sebutkan contohnya!

Layanan langsung sistem operasi ke pemrograman, disebut dengan system call atay API (application programming interface). System call adalah tata cara pemanggilan di program aplikasi untuk memperoleh layanan yang disediakan oleh sistem operasi. System call berupa rutin sistem operasi untuk keperluan tertentu yang spesifik. Bentuk system call beragam, terbanyak berupa rutin prosedur atau fungsi.

Jenis System Calls;

A. Pengendalian proses

· selesai, abort

· Load, eksekusi

· Membuat dan mengakhiri proses

· Mengambil dan mengeset atribut proses

· Menunggu waktu

· Wait event, signal event

· Alokasi dan pengosongan memori

B. Manajemen berkas

· Membuat dan menghapus berkas

· Membuka dan menutup berkas

· Read, write, reposition

· Mengambil dan mengeset atribut berkas

C. Manajemen Peranti

· Meminta peranti, melepaskan peranti

· Read, write, reposition

· Mengambil dan mengeset atribut peranti

D. Mempertahankan informasi

· Mengambil dan mengeset waktu dan tanggal

· Mengambil dan mengeset system data

· Mengambil proses, berkas atau atribut peranti

· Mengeset proses, berkas atau atribut peranti

E. Komunikasi

· Menciptakan, menghapus hubungan komunikasi

· Mengirim dan menerima pesan

· Mentransfer status informasi

· Attach ataudetach remote device

Komunikasi dapat dilakukan melalui message passing atau shared memory.

4) Apa yang dimaksud sistem program?

Adalah segala jenis perangkat lunak yang dibutuhkan untuk pembentukan suatu sistem baru atau perangkat lunak yang dibutuhkan untuk menjalankan program aplikasi tetapi tidak ditujukan untuk suatu aplikasi khusus.

Contoh dari program sistem ini adalah sistem operasi, compiler, dan program untuk pengeditan text.

Program sistem ini termasuk diantaranya adalah:

· Sistem yang digunakan untuk pengontrolan terhadap ekseskusi dari program lainnya, seperti sistem operasi.

· Sistem yang digunakan pada lingkungan perangkat lunak itu sendiri, seperti command-line interpreter, window system, desktop.

· Sistem yang digunakan sebagai alat bantu untuk membangun sistem lainnya, seperti assembler, compiler, linkers, libraries, interpreter, cross-reference generator, version control, make, debugging, profiling, dan alat bantu untuk monitor.

· Program utility seperti untuk proses pengurutan data, pencetakan dan pengeditan.

Program sistem dapat dibagi ke dalam tiga klasifikasi, yaitu:

· sistem operasi

· program utilitas

· program khusus

Sebuah komputer dapat memiliki satu atau beberapa sistem program. Sebuah sistem operasi untuk sebuah komputer dapat saja sangat khusus untuk model atau keluarga komputer, atau ada pula sistem operasi yang dapat digunakan di berbagai jenis komputer.

5) Apa keuntungan dan kelemahan sistem layer?

Menurut Tanenbaum dan Woodhull, sistem terlapis terdiri dari enam lapisan, yaitu:

a. Lapisan 0. Mengatur alokasi prosesor, pertukaran antar proses ketika interupsi terjadi atau waktu habis dan lapisan ini mendukung dasar multi-programming pada CPU.

b. Lapisan 1. Mengalokasikan ruang untuk proses di memori utama dan pada 512 kilo word drum yang digunakan untuk menahan bagian proses ketika tidak ada ruang di memori utama.

c. Lapisan 2. Menangani komunikasi antara masing-masing proses dan operator console. Lapisan ini masing-masing proses secara efektif memiliki operator console sendiri.

d. Lapisan 3. Mengatur peranti I/O dan menampung informasi yang mengalir dari/ke proses tersebut.

e. Lapisan 4. Tempat program pengguna. Pengguna tidak perlu memikirkan tentang proses, memori.

Kelemahan struktur ini adalah fungsi-fungsi sistem operasi harus diberikan ke tiap

lapisan secara hati-hati. Sedangkan keunggulannya adalah memeliki semua kelebihan rancangan modular, yaitu sistem dibagi menjadi beberapa modul dan tiap modul dirancang secara independen. Tiap lapisan dapat dirancang, dikode dan diuji secara independen. Pendekatan berlapis menyederhanakan rancangan, spesifikasi dan implementasi sistem operasi.

6) Apa keuntungan dan kerugian sistem virtual memory?

Keuntungan:

· Keamanan bukanlah masalah

· Virtual Memori (VM) mempunyai pelindungan lengkap pada berbagai sistem sumber daya

· Tidak ada pembagian sumber daya secara langsung. Pembagian disk mini dan jaringan diimplementasikan pada perangkat lunak

· VM system adalah kendaraan yang “sempurna” untuk penelitian dan pengembangan sistemoperasi

· Dengan VM perubahan suatu bagian tidak akan mempengaruhi komponen yang lain

Kerugian:

· VM sulit diimplementasikan karena banyak syarat yang dibutuhkan untuk menyediakan duplikat yang tepat dari underlying machine

· Harus punya virtual-user mode dan virtual-monitor mode yang keduanya berjalan di physical mode. Akibatnya, saat instruksi yang hanya membutuhkan virtual-monitor mode dijalankan, register berubah dan bias berefek pada virtual-user mode, bahkan bias me-restart VM

· Waktu yang dibutuhkan I/O bias lebih cepat (karena ada spooling), tapi bias lebih lambat( karena diinterpreted).

Tugas 1 (Pengenalan Sistem Operasi)

(1). Apa yang dimaksud dengan:

Batch system yaitu pengumpulan job yang sama dalam satu angkatan.

Multiprogramming yaitu program sistem operasi yang bekerja dalam sebuah CPU dimana sistem operasinya mempunyai kemampuan untuk mengakses beberapa aplikasi sekaligus dalam waktu yang (hampir) bersamaan.

Time sharing yaitu sistem komputasi interaktif, dimana sistem komputer menyediakan komunikasi online antara user dengan sistem.

Paralel (multiprocessor) yaitu sistem yang mempunyai lebih dari satu processor yang dapat berkomunikasi, membagi bus, clock dan juga perangkat memori dan peripheral.

Terdistribusi yaitu sistem komputer yang mendistribusikan komputasi diantara beberapa processor, processor berkomunikasi dengan processor lain melalui saluran komunikasi, misalnya bus kecepatan tinggi atau saluran telepon.

Cluster yaitu sistem komputer yang memungkinkan dua atau lebih sistem untuk membagi penyimpan sekunder (storage) bersama-sama.

Real time yaitu sistem yang digunakan jika sistem operasi memerlukan ketepatan waktu dari processor atau aliran.

Handhleld yaitu sistem yang lebih kecil dari mikrokomputer yang mempunyai memori yang terbatas, kecepatan rendah dan display screen yang kecil.

(2). Apa perbedaan sistem single programming dan multiprogramming?

Pada single programming, satu processor mengerjakan satu program yang ada di memori utama, sedangkan pada multiprogramming satu processor dapat mengerjakan banyak program yang ada di memori utama.

(3). Apa perbedaan symmetric dan asymmetric multiprocessing?

Pada symmetric multiprocessing tiap processor mempunyai sistem operasi yang sama dan dapat melakukan komunikasi antar processor, sedangkan asymmetric multiprocessing satu processor berfungsi sebagai master processor yang bertugas mengatur penjadwalan dan mengalokasikan kerja tiap processor dan processor lain berfungsi sebagai slave.

(4). Apa perbedaan sistem paralel dan sistem terdistribusi?

Jika pada sistem paralel tiap processor dapat menggunakan memori atau clock bersama-sama, sedangkan pada sistem terdistribusi kumpulan processor tidak dapat digunakan secara bersamaan.

(5). Perbedaan sistem terdistribusi dan sistem terklaster?

Sistem terdistribusi adalah mendistribusikan komputasi di antara beberapa processor. Processor berkomunikasi dengan processor lain melalui saluran komunikasi, misalnya bus kecepatan tinggi atau saluran telepon. Sedangkan sistem terklaster adalah pengembangan dari sistem terdistribusi. Perbedaan sistem terklaster dengan sistem terdistribusi adalah pada sistem terklaster memungkinkan dua atau lebih sistem untuk membagi penyimpan sekunder (storage) bersama-sama. Sistem terklaster mempunyai kehandalan sistem yang tinggi seperti pada sistem terdistribusi.

(6). Apa yang dimaksud symmetric dan asymmetric clustering?

Symmetric clustering dimana semua host menjalankan aplikasi, sedangkan asymmetric clustering dimana satu server menjalankan aplikasi sementara server lainnya standby.

(7). Sebutkan keuntungan menggunakan sistem terdistribusi!

Resource sharing

Jika sejumlah site yang berbeda dihubungkan, maka user pada site satu dapat menggunakan sumber daya dari site lainnya. Sebagai contoh, user pada site A dapat menggunakan printer laser dari site B. Sebaliknya user B dapat mengakses file user A.

Meningkatkan kecepatan komputasi

Jika komputasi tertentu dapat dipartisi dalam sejumlah sub komputasi yang dapat berjalan secara konkuren, maka sistem terdistribusi dapat mendistribusikan komputasi pada beberapa site untuk menjalankan komputasi secara konkuren.

Lebih handal

Jika satu site gagal pada sistem terdistribusi, sisa site dapat melanjutkan operasinya. Jika sistem dibagi sejumlah instalasi besar, maka kegagalan salah satunya tidak berakibat pada sisa sistem. Sebaliknya, jika sistem dibagi dalam sejumlah mesin kecil, masing-masing bertanggungjawab pada fungsi sistem yang penting (misalnya: terminal karakter I/O atau sistem file), maka satu kegagalan dapat menghentikan operasi dari keseluruhan sistem. Secara umum, jika terjadi redudansi pada sistem (baik perangkat keras maupun perangkat lunak), sistem dapat menjalankan operasinya meskipun beberapa site gagal.

Komunikasi

Terdapat beberapa anggota program yang memerlukan mengganti data dengan data lain pada satu sistem. Sistem Windows contohnya, sering terjadi membagi data atau transfer data antara display. Jika beberapa site dihubungkan dengan lainnya dengan jaringan komunikasi, processor pada site yang berbeda dapat menukar informasi. User melakukan transfer file atau komunikasi dengan user lain melalui electronic mail. Seorang user dapat mengirim mail ke user lain pada site yang sama atau site yang berbeda.


Free Blogger Templates by Isnaini Dot Com and Bridal Gowns. Powered by Blogger