Вы находитесь на странице: 1из 27

TEKNIK INFORMATIKA SISTEM OPERASI Diajukan Sebagai Pengganti Kuis Sistem Operasi

Oleh: Ervamadi Yudhistira 3411101010

UNIVERSITAS JENDERAL ACHMAD YANI TEKNIK INFORMATIKA CIMAHI 2010

KATA PENGANTAR

Assalamualaikum Wr. Wb. Syukur alhamdulilah kami persembahkan kehadirat Allah SWT yang telah mencurahkan rahmat dan karunianya, sehingga penulis dapat menyelesaikan makalah Sistem Operasi dengan judul SISTEM OPERASI. Makalah ini disusun sebagai pengganti kuis mata kuliah Sistem Operasi. Tak ada gading yang tak retak, demikian pepatah mengatakan. Demikian juga kiranya makalah ini, tentu masih banyak kekurangan. Akhirnya, mudah-mudahan makalah ini dapat menjadi ilmu bagi penulis sebagai mahasiswa khususnya, dan bagi seluruh komponen bangsa Indonesia umumnya. Wassalamualaikum Wr.Wb.

Cimahi, Januari 2010

Penulis

DAFTAR ISI Halaman Judul .................................................................................................................... 1 Kata Pengantar .................................................................................................................... 2 Daftar Isi ............................................................................................................................. 3 BAB I BAB II BAB III BAB IV BAB V BAB VI BAB VII BAB VIII BAB IX PENDAHULUAN ...................................................................................... 4

PEMBAHASAN ......................................................................................... 6 KONGKURENSI ........................................................................................ 9 PROSES, THREAD, SMP & KERNEL .. 13 MANAJEMEN I/O & INTERRUPT .. 17 MUTUAL EXCLUSION . 21 DEADLOCK & STARVATION 22 PENUTUP 26 DAFTAR PUSTAKA 27

BAB I PENDAHULUAN
Biasanya, istilah Sistem Operasi sering ditujukan kepada semua software yang masuk dalam satu paket dengan sistem komputer sebelum aplikasi-aplikasi software terinstall. Kalau sistem komputer terbagi dalam lapisan-lapisan, maka Sistem Operasi adalah penghubung antara lapisan hardware dan lapisan software. Lebih jauh daripada itu, Sistem Operasi melakukan semua tugas-tugas penting dalam komputer, dan menjamin aplikasi-aplikasi yang berbeda dapat berjalan secara bersamaan dengan lancar. Sistem Operasi menjamin aplikasi software lainnya dapat menggunakan memori, melakukan input dan output terhadap peralatan lain, dan memiliki akses kepada sistem file. Apabila beberapa aplikasi berjalan secara bersamaan, maka Sistem Operasi mengatur skedule yang tepat, sehingga sedapat mungkin semua proses yang berjalan mendapatkan waktu yang cukup untuk menggunakan prosesor (CPU) serta tidak saling mengganggu. Dalam banyak kasus, Sistem Operasi menyediakan suatu pustaka dari fungsi-fungsi standar, dimana aplikasi lain dapat memanggil fungsi-fungsi itu, sehingga dalam setiap pembuatan program baru, tidak perlu membuat fungsi-fungsi tersebut dari awal. Sistem Operasi secara umum terdiri dari beberapa bagian: Mekanisme Boot, yaitu meletakkan kernel ke dalam memory Kernel, yaitu inti dari sebuah Sistem Operasi Command Interpreter atau shell, yang bertugas membaca input dari pengguna Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain Driver untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrol mereka. Sebuah Sistem Operasi dapat mengelola memori sekunder dan I/O (Input/Output) devices. Pada tingkat atas, sebuah computer terdiri dari: Processor : Bertugas untuk mengendalikan dan melakukan fungsi pengolahan data. Ketika hanya ada satu prosesor, sering disebut sebagai CPU (Central Processing Unit). Main Memory : Sebagai tempat penyimpanan data dan program. I/O module : Berfungsi sebagai komponen penghubung antara computer dengan dunia luar. System Bus : Sebagai penyedia komunikasi antar processor, main memory dan I/O module.

Komponen-komponen ini saling berhubungan dengan cara tertentu untuk mencapai fungsi utama dari computer, yakni untuk melaksanakan program. Sistem operasi-sistem operasi utama yang digunakan komputer sistem umum (termasuk PC, komputer personal) terbagi menjadi 3 kelompok besar: Keluarga Microsoft Windows - yang antara lain terdiri dari Windows Desktop Environment (versi 1.x hingga versi 3.x), Windows 9x (Windows 95, 98, dan Windows ME), dan Windows NT (Windows NT 3.x, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, dan Windows Vista yang akan dirilis pada tahun 2007)). Keluarga Unix yang menggunakan antarmuka sistem operasi POSIX, seperti SCO UNIX, keluarga BSD (Berkeley Software Distribution), GNU/Linux, MacOS/X (berbasis kernel BSD yang dimodifikasi, dan dikenal dengan nama Darwin) dan GNU/Hurd. Mac OS, adalah sistem operasi untuk komputer keluaran Apple yang biasa disebut Mac atau Macintosh. Sistem operasi yang terbaru adalah Mac OS X versi 10.4 (Tiger). Awal tahun 2007 direncanakan peluncuran versi 10.5 (Leopard).

Sedangkan komputer Mainframe, dan Super komputer menggunakan banyak sekali sistem operasi yang berbeda-beda, umumnya merupakan turunan dari sistem operasi UNIX yang dikembangkan oleh vendor seperti IBM AIX, HP/UX, dll.

BAB II PEMBAHASAN

I.

SISTEM OPERASI

Fungsi dasar Sistem komputer pada dasarnya terdiri dari empat komponen utama, yaitu perangkat-keras, program aplikasi, sistem-operasi, dan para pengguna. Sistem operasi berfungsi untuk mengatur dan mengawasi penggunaan perangkat keras oleh berbagai program aplikasi serta para pengguna. Sistem operasi berfungsi ibarat pemerintah dalam suatu negara, dalam arti membuat kondisi computer agar dapat menjalankan program secara benar. Untuk menghindari konflik yang terjadi pada saat pengguna menggunakan sumber-daya yang sama, sistem operasi mengatur pengguna mana yang dapat mengakses suatu sumber-daya. Sistem operasi juga sering disebut resource allocator. Satu lagi fungsi penting sistem operasi ialah sebagai program pengendali yang bertujuan untuk menghindari kekeliruan (error) dan penggunaan komputer yang tidak perlu. Sejarah system operasi Menurut Tanenbaum, sistem operasi mengalami perkembangan yang sangat pesat, yang dapat dibagi kedalam empat generasi: Generasi Pertama (1945-1955) Generasi pertama merupakan awal perkembangan sistem komputasi elektronik sebagai pengganti sistem komputasi mekanik, hal itu disebabkan kecepatan manusia untuk menghitung terbatas dan manusia sangat mudah untuk membuat kecerobohan, kekeliruan bahkan kesalahan. Pada generasi ini belum ada sistem operasi, maka sistem komputer diberi instruksi yang harus dikerjakan secara langsung. Generasi Kedua (1955-1965) Generasi kedua memperkenalkan Batch Processing System, yaitu Job yang dikerjakan dalam satu rangkaian, lalu dieksekusi secara berurutan.Pada generasi ini sistem komputer belum dilengkapi sistem operasi, tetapi beberapa fungsi sistem operasi telah ada, contohnya fungsi sistem operasi ialah FMS dan IBSYS. Generasi Ketiga (1965-1980) Pada generasi ini perkembangan sistem operasi dikembangkan untuk melayani banyak pemakai sekaligus, dimana para pemakai interaktif berkomunikasi lewat terminal secara on-line ke komputer, maka sistem operasi menjadi multi-user (di gunakan banyak pengguna sekali gus) dan multiprogramming (melayani banyak program sekali gus).

Generasi Keempat (Pasca 1980an) Dewasa ini, sistem operasi dipergunakan untuk jaringan komputer dimana pemakai menyadari keberadaan komputer-komputer yang saling terhubung satu sama lainnya. Pada masa ini para pengguna juga telah dinyamankan dengan Graphical User Interface yaitu antar-muka komputer yang berbasis grafis yang sangat nyaman, pada masa ini juga dimulai era komputasi tersebar dimana komputasikomputasi tidak lagi berpusat di satu titik, tetapi dipecah dibanyak komputer sehingga tercapai kinerja yang lebih baik. Sistem operasi komputer Secara umum sebuah sistem komputer terdiri atas hardware, software dan brainware dimana ketiganya saling terkait satu sama lain (lihat gambar di bawah ini). Ketiganya merupakan syarat mutlak untuk menjalankan sebuah sistem komputer. Sebuah sistem operasi merupakan program yang bertindak sebagai perantara antara pengguna (user) komputer dengan hardware (perangkat keras) komputer. Tujuan dari sistem operasi adalah untuk menyediakan lingkungan dimana user dapat mengeksekusi program yang diinginkan dengan efisien.

GAMBAR: Sistem Komputer Sebuah sistem operasi sama halnya dengan sebuah pemerintahan. Komponen-komponen seperti hardware, software, dan data. Sistem operasi menyediakan kemudahan untuk menggunakan berbagai sumberdaya dalam sebuah operasi. Sama halnya dengan sebuah pemerintahan, sistem operasi tidak 7

bekerja sendirian. Sistem operasi harus menyediakan sebuah lingkungan yang didalamnya terdapat berbagai program untuk menyelesaikan berbagai pekerjaan. Sistem operasi dapat dipandang sebagai pengontrol sumberdaya yang ada. Sebuah sistem komputer memiliki berbagai sumberdaya (hardware dan software) yang dibutuhkan untuk menyelesaikan berbagai masalah: CPU time, ruang memori, ruang penyimpanan file, perangkat I/O (input/output), dan lain sebagainya. Sistem operasi bertindak sebagai manajer bagi semua sumberdaya ini dan mengalokasikannya pada program dan user tertentu untuk melakukan berbagai tugas (task). Dengan demikian ada peluang terjadinya konflik permintaan sumberdaya, sistem operasi harus mengambil keputusan, request (permintaan) sumberdaya mana yang harus dilayani untuk menjaga efisiensi operasi komputer. Pandangan lain terhadap sebuah sistem operasi terfokus pada kebutuhan pengendalian (control) program. Control program mengendalikan eksekusi program user untuk mencegah error dan penggunaan yang tidak efisien, khususnya pengoperasian dan pengendalian perangkat I/O. Tujuan utama sebuah sistem operasi adalah untuk kenyamanan user. Sistem operasi ada untuk lebih memudahkan user mengoperasikan komputer dibanding tanpa sistem operasi. Tujuan lainnya adalah untuk mengefisienkan operasi sistem komputer.

BAB III KONGKURENSI


1. Definisi Konkurensi Konkurensi merupakan landasan unum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama. Proses-proses yang mengalami kongkuren dapat sepenuhnya tak bergantung dengan proses yang lainnya (independent) namun dapat juga saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses agar terkendali dengan baik. 2. Prinsip-prinsip konkurensi Lingkup Konkurensi meliputi hal-hal sebagai berikut: 1. Alokasi waktu pemroses untuk proses-proses 2. Pemakaian bersama dan persaingan untuk mendapatkan sumber daya 3. Komunikasi antarproses 4. Sinkronisasi aktivitas banyak proses.

Konkurensi dapat muncul pada konteks berbeda, yaitu: 1. Untuk banyak aplikasi (multiple application). Sistem multiprogramming memungkinkan banyak proses sekaligus dijalankan di satu pemroses. Proses-proses dapat berasal dari aplikasi- aplikasi berbeda. Pada system multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer. Multiprogramming juga sangat berguna untuk sistem komputer dengan satu pemakai tunggal (single user) karena sambil menunggu selesainya layanan pemakai dapat berinteraksi dengan aplikasi lain. 2. Untuk Strukturisasi dari aplikasi. Perluasan prinsip perancangan modular dan pemrograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses. Dengan sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu. 3. Untuk strukturisasi sistem operasi. Keunggulan strukturisasi dapat jauga diterapkan ke pemrograman sistem. Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai sekumpulan proses. Sistem operasi bermodelkan client/server menggunakan pendekatan ini. 9

4. Untuk strukturisasi dari satu Proses. Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses.

3. Kesulitan-kesulitan yang di timbulkan konkurensi Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beragam kemungkinan yang terjadi tidak dapat diprediksi. Adapun beberapa kesulitan yang dapat muncul, di antaranya: 1. Pemakaian bersama sumber daya global. Jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.

2. Pengelolaan alokasi sumber daya agar optimal Jika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan kanal itu. Jika sistem operasi mengunci kanal tersebut dan proses-proses lain tidak dapat menggunakannya, maka tindakan ini jelas hanya akan menghasilkan inefisiensi sistem komputer. 3. Pencarian kesalahan pemrograman. Pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen.

4. Persaingan diantara proses-proses untuk sumber daya Proses-proses kongkuren berkompetisi ketika proses-proses bersaing menggunakan sumber daya yang sama. Dua proses atau lebih perlu mengakses sumber daya yang sama pada suatu saat. Masing-masing proses tidak peduli keberadaan proses-proses lain dan masing-masing proses tidak dipengaruhi proses proses lain. Pada proses-proses berkompetisi ini, tidak ada pertukaran informasi antara proses-proses itu. Eksekusi satu proses dapat berpengaruh terhadap kelakuan proses-proses yang berkompetisi. Jika dua proses ingin mengakses satu sumber daya tunggal maka sistem operasi mengalokasikan untuk salah satu proses dan mengharuskan proses lain menunggu. Proses yang ditolak pengaksesan menjadi melambat.

10

Kasus ekstrim yang dapat terjadi adalah proses di-blocked terus-menerus sehingga tak pernah mengakses sumber daya. Proses tak pernah dapat berakhir dengan suskses. Kondisi tidak pernah dapat kesempatan dialokasikan sumber daya disebut startvation. Sistem operasi harus menghindarkan terjadinya kondisi ini. Persaingan proses-proses untuk memperoleh sumber daya menimbulkan tiga masalah : 1. Mutual exclusion 2. Deadlock 3. Startvation Pengendalian persaingan melibatkan sistem operasi, yang bertugas mengalokasikan sumber daya. Proses-proses itu sendiri harus menyatakan keperluan mutual exclusion (diprogram oleh pemrogram menggunakan system call yang disediakan sistem operasi) dan sistem operasi menangani agar tidak terlanggar kondisi mutual exclusion, serta tidak terjadi deadlock dan startvation.

5.

Kerjasama diantara proses-proses dengan pemakaian bersama

Dalam kasus kerjasama pemakaian sumber daya bersama meliputi proses-proses yang saling berinteraksi tanpa dinyatakan secara eksplisit. Contoh : Banyak proses mengakses variabel atau berkas yang dipakai bersama. Proses-proses dapat menggunakan dan memperbarui data yang dipakai bersama tanpa peduli prosesproses lain. Proses mengetahui bahwa proses-proses lain dapat juga mengakses data yang sama. Prosesproes harus bekerja sama untuk menjamin integritas data yang dipakai bersama tersebut. Kerjasama diantara proses-proses dalam pemakaian bersama mempunyai masalah : Mutual exclusion Deadlock Startvation Karena data disimpan pada suatu sumber daya (peralatan, memori), maka terdapat masalah pengendalian mutual exclusion, deadlock dan startvation. Perbedaannya adalah item-item data dapat diakses dengan dua mode, yaitu : 1. Operasi pembacaan dan penulisan harus mutually exclusive (yaitu benar-

11

benar hanya satu proses yang berada di critical section). 2. Operasi penulisan saja yang harus mutually exclusive. Pada situasi ini, masalah baru muncul yaitu mengenai koherensi data. Critical section digunakan untuk menjamin integritas data.

6.

Kerjasama diantara proses-proses dengan komunikasi

Pada kasus persaingan, proses-proses memakai sumber daya tanpa peduli proses-proses lain. Pada kasus kedua, proses-proses memakai bersama nilai dan meski masing-masing proses tidak secara eksplisit peduli proses-proses lain. Tapi proses-proses peduli untuk menjaga integritas data. Ketika proses-proses bekerja sama dengan komunikasi, beragam proses berpartisipasi dalam suatu usaha dengan menghubungkan semua proses. Komunikasi menyediakan cara untuk sinkronisasi atau koordinasi beragam aktivitas. Komunikasi dicirikan dengan berisi pesan-pesan dengan suatu urutan. Primitif untuk mengirim dan menerima pesan disediakan sebagai bagian bahasa pemrograman atau disediakan kernel sistem operasi. Karena tak ada sesuatu yang dipakai bersama diantara proses-proses itu dalam melewatkan pesanpesan, tak ada masalah mutual exclusion. Tetapi masalah deadlock dan startvation dapat muncul. Mekanisme konkurensi pada windows 2000 yang menggunakan system W2K, terdiri dari : Proses Thread File Console Input File Change Notification Mutex Semaphore Event Waitable Timer

12

BAB IV PROSES, THREAD, SMP & KERNEL 1. Proses Pengertian Proses Program yang sedang dieksekusi, program yang berjalan pada komputer, entitas yang dapat ditugaskan ke dan dieksekusi pada prosesor, atau unit aktivitas yang dikelompokkan oleh eksekusi dari rangkaian instruksi, keadaan sekarang, dan sebuah asosiasi himpunan sistem instruksi. Sistem operasi (SO) harus bisa, menyisipkan eksekusi dari multiple proses, mengalokasikan sumber daya untuk pemrosesan dan melindungi sumber daya suatu proses dari proses yang lain, memungkinkan proses-proses untuk saling membagi dan bertukar informasi, memungkinkan terjadi sinkronisasi antar proses. Keadaan proses Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan statis/ asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu dari keadaan berikut ini: New: Proses sedang dikerjakan/ dibuat. Running: Instruksi sedang dikerjakan. Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/O atau penerimaan sebuah tanda/ signal). Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor. Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi. CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/ halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi. Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi. Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar open berkas dan banyak lagi.

13

PCB hanya berfungsi sebagai tempat menyimpan/ gudang untuk informasi apa pun yang dapat bervariasi dari prose ke proses. Setiap kali instruksi diberikan, maka kernel akan menciptakan sebuah Proses-ID. Proses-ID (PID) dimulai dari 0, yaitu sebagai INIT, kemudian diikiuti oleh proses berikutnya. Beberapa tipe proses: Foreground, merupakan proses yang akan diciptakan oleh pemakai. Batch, merupakan proses yang dikumpulkan dan dijalankan secara sekuensial (satu persatu). Daemon, Peoses yang menunggu permintaan dari proses lainnya dan menjalankan tugas sesuai dengan permintaan tersebut.

2. THREAD Pengertian Fasilitas Thread adalah mekanisme yang berguna yang diadopsi pada beberapa OS baru untuk mendukung resource sharing dan akses kongruen. Satuan pengiriman disebut sebagai thread atau proses ringan. Thread (Light Weight Process-LWP) adalah suatu unit dasar dari cpu utilization yang berisi program counter, kumpulan register danruang stack. Single Thread MS-DOS mendukung proses pengguna tunggal dan single thread. Beberapa UNIX mendukung beberapa proses pengguna, tetapihanyamendukungsatu thread per proses Multithreading Adalah kemampuan sebuah OS untuk mendukung beberapa program berjalan bersamaan dalam suatu proses tunggal. Java run-time environment adalah proses tunggaldenganbeberapa thread. Multitrhreading ditemukan di windows, solaris, danbanyakversi modern unix. Setiap Thread memiliki: Keadaaneksekusi (berjalan, siap, dll) Tersimpan di konteks thread ketikatidakberjalan Eksekusi stack Beberapa thread penyimpananstatisuntukvariabellokal Akses ke memori dan sumberdaya prosesnya (semua thread dari proses ini)

Implementasi Thread User Level Thread (ULT) : Semua manajemen thread dapat diselesaikan oleh aplikasi yang dijalankan user. Kernel Level Thread(KLT) : Semua Skedul (Penjadwalan) diselesaikan oleh basis thread.

14

3. SYMMETRIC MULTIPROCESSING (SMP) Arsitektur SMP Akan sangat berguna ketika kita tahu bahwa arsitektur SMP sesuai dengan semua kategori dari parallel processor. Sebuah taksonomi yang menyorot system parallel processor pertama diperkenalkan dengan Flynn masih tetap sebagai cara yang paling umum dalam mengkategorikas sistem-sistem. Flynn mengemukakan kategori system computer yaitu : Single instruction single data (SISD) stream: Sebuah processor tunggal mengeksekusi sebuah aliran instruksi tunggal untuk dijalankan dalam data yang tersimpan di single memory. Single instruction multiple data (SIMD) stream: Sebuah mesin instruksi tunggal mengontrol eksekusi bersama dalam beberapa element processing dalam sebuah lockstep basis. Multiple instruction single data (MISD) stream: Sebuah rangkaian data ditransmisikan ke dalam sebuah set processor, tiap satu dari mereka mengeksekusi sebuah rangkaian instruksi yang berbeda. Struktur ini tidak pernah diimplementasikan. Multiple instruction multiple data (MIMD) stream: Sebuah set dari processor bersama mengeksekusi rangkaian istruksi ynag berbeda dalam set data yang berbeda. Seperti sebuah system yang disebut cluster, atau multicomputer. Jika processor berbagi sebuah memory biasa, lalu tiap processor mengakses program dan menyimpan data di shared memory, dan processor berkomunikasi dengan yang lain melalui memory itu, maka system ini disebut shared-memory multiprocessor. Satu klasifikasi umum dari shared-memory multiprocessor adalah berdasarkan bagaimana proses menugaskan processor. Dua pokok pendekatannya adalah master-slave dan symmetric. Dengan arsitektur master-slave,, kernel OS selalu berjalan dalam processor utama. Dalam sebuah symmetric multiprocessor (SMP), kernel dapat mengeksekusi dalam beberapa processor, dan secara khas akan melakukan self-scheduling dari pool pada proses/ thread yang tersedia. Desain baik dari SMPs dan cluster adalah kompleks, menyertakan hasil yang berhubungan dengan organisasi fisik, koneksi interstruktur, komunikasi interprocessor, desain OS, dan teknik aplikasi software. Organisasi SMP Setiap processor memiliki akses ke sebuah shared main memory dan perangkat I/O melalui beberapa bentuk interkoneksi mechanism; Sebuah shared bus adalah sebuah fasilitas yang umum. Pertimbangan Desain Multiprocessor Operating System Sebuah sistem operasi SMP mengatur prosessor dan sumber komputer lain sehingga user mungkin akan melihat sistem ini dalam tampilan yang sama seperti sebuah multiprogramming uniprocessor system. Masalah key design terdiri dari :

15

Simultaneous concurrent processes or threads : kernel secara rutin menjadi reetant untuk membiarkan beberapa processor mengeksekusi kode kernel yang sama secara bersamaan. Scheduling Scheduling mungkin dapat terlihat di beberapa processor, sehingga beberapa konflik akan dapat dihindari. Synchronization dengan multiple active proses yang mempunyai akses potendial untuk shared address space atau shared sumber I/O, perawatan harus dilakukan untuk menyediakan Sinkronisasi yang efektif. Memory management Manajemen memori dalam sebuah multiprosesor harus sesuai dengan semua masalah yang ditemukan dalam computer uniprocessor dan akan didiskusikan dalam part 3. Reliability and fault tolerance OS harus menyediakan degradasi untuk menghadapi kegagalan processor.

4. KERNEL Ada 4 kategori kernel: Monolithic kernel Kernel yang menyediakan abstraksi perangkat keras yang kaya dan tangguh. Microkernel Kernel yang menyediakan hanya sekumpulan kecil abstraksi perangkat keras sederhana, dan menggunakan aplikasi-aplikasi yang disebut sebagai server untuk menyediakan fungsi-fungsi lainnya. Mikrokernel adalah Core /inti system operasi brukuran kecil yang hanya berisi fungsi2 utama, aplikasi dan layanan tambahan yang sebelumnya menjadi bagian dari kernel di exsekusi pada user mode : client process, device drivers, file server, proses server, virtual memory manager, windowing system, security service. Hybrid (modifikasi dari microkernel) Kernel yang mirip microkernel, tetapi ia juga memasukkan beberapa kode tambahan di kernel agar ia menjadi lebih cepat. Exokernel Kernel yang tidak menyediakan sama sekali abstraksi hardware, tapi ia menyediakan sekumpulan pustaka yang menyediakan fungsi-fungsi akses ke perangkat keras secara langsung atau hampir-hampir langsung. Dari keempat kategori kernel yang disebutkan diatas, kernel Linux termasuk kategori monolithic kernel. Kernel Linux berbeda dengan sistem Linux.

16

BAB V MANAJEMEN I/O & INTERRUPT 1. Manajemen I/O Perangkat I/O Terdiri dari 3 kategori, yaitu : 1. Human readable Digunakan untuk berkomunikasi/berinteraksi langsung dengan user. Contohnya : printer, keyboard, mouse, video display 2. Machine readable Digunakan untuk berkomunikasi/berinteraksi dengan perangkat elektronik. Contohnya : disk drives, USB, sensor, controller, actuator 3. Communication Untuk berkomunikasi/berinteraksi dengan perangkat remote. Contohnya modem Perbedaan dalam perangkat I/O meliputi : Data rate Aplikasi Kompleksitas pengaturan Unit transfer Representasi data Kondisi error

Pengontrol/ modul I/O dengan interrupt. Efisiensi akan tercapai apabila prosesor tidak membutuhkan waktu yang lama untuk menunggu tampilan operasi I/O. Teknik untuk tampilan I/O Programmed I/O Prosesor memberikan perintah I/O dalam suatu proses untuk modul I/O. Proses akan berstatus busy wait untuk menunggu operasi selesai dilakukan. Interrupt driven I/O Jika instruksi I/O dalam keadaan nonblocking, prosesor akan melanjutkan untuk mengeksekusi instruksi dari proses yang diberikan oleh perintah I/O. Jika instruksi I/O dalam keadaan blocking, maka instruksi 17

selanjutnya yang dieksekusi prosesor dari OS akan meletakkan arus proses dalam wilayah blok dan menjadwalkan proses lain Direct memory access (DMA) Modul DMA mengontrol pertukaran data antara main memory dan modul I/O. Prosesor mengirim permintaan untuk melakukan transfer blok data ke modul DMA dan ketika selesai, modul DMA akan mengirim sinyal interrupt ke prosesor. I/O Pada Beberapa Sistem Operasi UNIX SVR4 I/O Devices and files : tiap perangkat I/O perhubungan dengan file khusus untuk membaca dari atau menuliskan ke sebuah device , permintaan baca atau tulis dibuat untuk file khusus yang diasosiasikan dengan device. Tipe I/O dalam UNIX : buffer, unbuffered Pada I/O buffer dilewatkan melalui sistem buffer, sedangkan pada I/O unbuffered biasanya berkaitan dengan DMA (Pengaksesan Memori secara langsung). Ada dua macam buffer yang digunakan : system buffer cache dan antrean karakter. Pada buffer cache DMA berfungsi untuk pengopian memori ke memori. Pada pengelolaan buffer cache terdapat 3 pemeliharaan : free list, device list, driver I/O queue Antrean karakter: digunakan untuk pembacaan device berorientasi karakter. Pada antrean karakter, setiap karakter yang telah dibaca normalnya akan langsung dihancurkan. LINUX I/O Elevator scheduler : mengelola antrean single untuk pembacaan disk dan menuliskan permintaan serta melakukan sorting maupun penggabungan fungsi pada queue. Deadline scheduler, skemanya digunakan untuk mengatasi permasalahan starvation serta permasalahan antara pembacaan dengan penulisan. Anticipatory I/O scheduler, proses penjadwalan yang memberikan jarak delay beberapa saat setelah memberikan pemenuhan layanan. Linux page cache, pada versi Linux 2.2 dan sebelumnya hanya digunakan untuk membaca dan menulis dari file system regular dan halaman virtual memori Sedangkan pada Versi 2.4 dan setelahnya page cache memiliki 2 keunggulan: Menulis ulang halaman kotor ke disk danPage pada cache direferensikan ulang sebelum diambil dari cache. 18

WINDOWS I/O Dasar modul I/O, terdapat 4 modul : manajemen cache, driver system file, driver jaringan dan driver device hardware. Asynchronous and synchronous I/O Pada model Asynchronous I/O, pemrosesan dilanjutkan ketika aplikasi sedang melakukan inisialisasi sebuah operasi I/O. Pada model Synchronous , aplikasi akan diblok sampai operasi I/O selesai. W2K menyediakan 4 teknik pensinyalan I/O : Pensinyalan obyek device kernel, Pensinyalan obyek kernel event, Altertabel I/O dan Port penyelesaian I/O Pada software RAID, W2K mendukung dua konfigurasinya, yaitu : Hardware RAID, pengontrol interface yang menangani pembentukan dan regenerasi dari informasi berulang. Software RAID, memfasilitasi implementasi RAID, RAID 1 dan RAID 5. Misalnya pada RAID1, dua disk yang terdiri dari primary dan mirror partisi memilki kemungkinan berada pada disk control yang sama atau berbeda. Volume shadow copies Diimplementasikan pada driver software yang membuat copy data pada volume sebelum di-overwrite.

2. INTERRUPT Microkernel dapat mengenali interrupt, tetapi tidak menangani. Bila ada interrupt, maka microkernel membuatkan pesan dan mengirimkannya ke proses yang ter-interrupt. Bila interrupt enable, maka proses yang meng-interrupt diberi giliran, selanjutnya microkernel memetakan port I/O ke ruang alamat (memori). Hardware dipandang sebagai sekumpulan thread yang mempunyai identitas khusus dan dapat mengirimkan pesan ke thread software. Thread software penerima pesan akan menterjemahkan apakah pesan berasal dari interrupt atau bukan.

19

BAB VI MUTUAL EXCLUSION Teori dasar Di sistem komputer terdapat sumberdaya yang tidak dapat di pakai bersama pada saat bersamaan. Sumberdaya ini hanya dapat digunakan oleh satu proses pada satu waktu. Sumberdaya semacam ini disebut sumberdaya kritis dan bagian program yang menggunakan sumberdaya kritis dikatakan sedang memasuki critical section / critical region. Mutual Exclusion merupakan sebuah jalan yang menjamin jika sebuah proses sedang menggunakan sumberdaya tertentu atau berada pada critical section maka proses lain tidak diizinkan memasuki wilayah tersebut. Pemogram tidak dapat bergantung pada sistem operasi untuk memahami dan memaksakan batasan ini, karena maksud program tidak dapat diketahui oleh sistem operasi. Contoh sumber daya tersebut fine-grained flags, counter atau queue, digunakan untuk berkomunikasi antara kode yang berjalan secara konkruen, seperti aplikasi dan interrupt handler-nya. Sinkronisasi akses terhadap sumber daya adalah masalah akut karena thread dapat dihentikan atau dimulai setiap saat.

20

BAB VII DEADLOCK & STARVATION 1. Deadlock Deadlock yang mungkin dapat terjadi pada suatu proses disebabkan proses itu menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Dua atau lebih proses dikatakan berada dalam kondisi deadlock, bila setiap proses yang ada menunggu suatu kejadian yang hanya dapat dilakukan oleh proses lain dalam himpunan tersebut. Terdapat kaitan antara overhead dari mekanisme koreksi dan manfaat dari koreksi deadlock itu sendiri. Pada beberapa kasus, overhead atau ongkos yang harus dibayar untuk membuat sistem bebas deadlock menjadi hal yang terlalu mahal dibandingkan jika mengabaikannya. Sementara pada kasus lain, seperti pada real-time process control, mengizinkan deadlock akan membuat sistem menjadi kacau dan membuat sistem tersebut tidak berguna. Ilustasi deadlock, misalnya : Terdapat dua proses, yaitu P1 dan P2 dan dua sumber daya kritis, yaitu R1 dan R2. Proses P1 dan P2 harus mengakses kedua sumber daya tersebut, dengan kondisi ini terjadi : R1 diberikan ke P1, sedangkan R2 diberikan ke P2. Karena untuk melanjutkan eksekusi memerlukan kedua sumber daya sekaligus maka kedua proses akan saling menunggu sumber daya lain selamanya. Tak ada proses yang dapat melepaskan sumber daya yang telah dipegangnya karena menunggu sumber daya lain yang tak pernah diperolehnya. Kedua proses dalam kondisi deadlock, yang tidak dapat membuat kemajuan apapun dan deadlock merupakan kondisi terparah karena dapat melibatkan banyak proses dan semuanya tidak dapat mengakhiri prosesnya secara benar. Ilustrasi lainnya terjadi pada sebuah persimpangan jalan. Beberapa hal yang dapat membuat deadlock pada suatu persimpangan, misalnya: Terdapat satu jalur pada jalan. Mobil digambarkan sebagai proses yang sedang menuju sumber daya. Untuk mengatasinya beberapa mobil harus preempt (mundur). Sangat memungkinkan untuk terjadinya starvation (kondisi proses tak akan mendapatkan sumber daya).

Contoh kasus deadlock pada lalu lintas di persimpangan

21

Syarat terjadinya Deadlock Menurut Coffman dalam bukunya "Operating System" menyebutkan empat syarat bagi terjadinya deadlock, yaitu: 1. Mutual Exclusion Suatu kondisi dimana setiap sumber daya diberikan tepat pada satu proses pada suatu waktu. 2. Hold and Wait Kondisi yang menyatakan proses-proses yang sedang memakai suatu sumber daya dapat meminta sumber daya yang lain. 3. Non-pre-emptive Kondisi dimana suatu sumber daya yang sedang berada pada suatu proses tidak dapat diambil secara paksa dari proses tersebut,sampai proses itu melepaskannya. 4. Circular Wait Kondisi yang menyatakan bahwa adanya rantai saling meminta sumber daya yang dimiliki oleh suatu proses oleh proses lainnya. Strategi menghadapi Deadlock Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu: 1. Mengabaikan adanya deadlock. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat kondisi deadlock, tetapi menghentikan setiap proses yang kemungkinan mencapai deadlock. 2. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode yang saling mendukung, yaitu: 3. Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi. 4. Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya. Mencegah Deadlock Metode ini merupakan metode yang paling sering digunakan. Metode Pencegahan dianggap sebagai solusi yang bersih dipandang dari sudut tercegahnya deadlock. Tetapi pencgahan akan mengakibatkan kinerja utilisasi sumber daya yang buruk. 22

Metode pencegahan menggunakan pendekatan dengan cara meniadakan empat syarat yang dapat menyebabkan deadlock terjadi pada saat eksekusi Coffman (1971). Syarat pertama yang akan dapat ditiadakan adalah Mutual Exclusion, jika tidak ada sumber daya yang secara khusus diperuntukkan bagi suatu proses maka tidak akan pernah terjadi deadlock. Namun jika membiarkan ada dua atau lebih proses mengakses sebuah sumber daya yang sama akan menyebabkan chaos. Langkah yang digunakan adalah dengan spooling sumber daya, yaitu dengan mengantrikan jobjob pada antrian dan akan dilayani satu-satu. Beberapa masalah yang mungkin terjadi adalah: Tidak semua dapat di-spool, tabel proses sendiri tidak mungkin untuk di-spool Kompetisi pada ruang disk untuk spooling sendiri dapat mengarah pada deadlock

Hal inilah yang menyebabkan mengapa syarat pertama tidak dapat ditiadakan, jadi mutual exclusion benar-benar tidak dapat dihilangkan. Cara kedua dengan meniadakan kondisi hold and wait terlihat lebih menjanjikan. Jika suatu proses yang sedang menggunakan sumber daya dapat dicegah agar tidak dapat menunggu sumber daya yang lain, maka deadlock dapat dicegah. Langkah yang digunakan adalah dengan membuat proses agar meminta sumber daya yang mereka butuhkan pada awal proses sehingga dapat dialokasikan sumber daya yang dibutuhkan. Namun jika terdapat sumber daya yang sedang terpakai maka proses tersebut tidak dapat memulai prosesnya. Masalah yang mungkin terjadi: Sulitnya mengetahui berapa sumber daya yang dibutuhkan pada awal proses Tidak optimalnya pengunaan sumber daya jika ada sumber daya yang digunakan hanya beberapa waktu dan tidak digunakan tapi tetap dimiliki oleh suatu proses yang telah memintanya dari awal.

Meniadakan syarat ketiga non preemptive ternyata tidak lebih menjanjikan dari meniadakan syarat kedua, karena dengan meniadakan syarat ketiga maka suatu proses dapat dihentikan ditengah jalan. Hal ini tidak dimungkinkan karena hasil dari suatu proses yang dihentikan menjadi tidak baik. Cara terakhir adalah dengan meniadakan syarat keempat circular wait. Terdapat dua pendekatan, yaitu: Mengatur agar setiap proses hanya dapat menggunakan sebuah sumber daya pada suatu waktu, jika menginginkan sumber daya lain maka sumber daya yang dimiliki harus dilepas. Membuat penomoran pada proses-proses yang mengakses sumber daya. Suatu proses dimungkinkan untuk dapat meminta sumber daya kapan pun, tetapi permintaannya harus dibuat terurut. Masalah yang mungkin terjadi dengan mengatur bahwa setiap proses hanya dapat memiliki satu proses adalah bahwa tidak semua proses hanya membutuhkan satu sumber daya, untuk suatu proses yang kompleks dibutuhkan banyak sumber daya pada saat yang bersamaan. Sedangkan dengan penomoran 23

masalah yang dihadapi adalah tidak terdapatnya suatu penomoran yang dapat memuaskan semua pihak. Secara ringkas pendekatan yang digunakan pada metode pencegahan deadlock dan masalah-masalah yang menghambatnya, terangkum dalam tabel dibawah ini. Tabel Deadlock Syarat Langkah Kelemahan Dapat menyebabkan chaos Sulit memperkirakan di awal dan tidak optimal Hasil proses tidak akan baik

Mutual Exclusion Spooling sumber daya Hold and Wait No Pre-emptive Meminta sumber daya di awal Mengambil sumber daya di tengah proses

Circular Wait

Penomoran permintaan sumber daya Tidak ada penomoran yang memuaskan semua pihak

Menghindari Deadlock Pendekatan metode ini adalah dengan hanya memberi kesempatan ke permintaan sumber daya yang tidak mungkin akan menyebabkan deadlock. Metode ini memeriksa dampak pemberian akses pada suatu proses, jika pemberian akses tidak mungkin menuju kepada deadlock, maka sumber daya akan diberikan pada proses yang meminta. Jika tidak aman, proses yang meminta akan di-suspend sampai suatu waktu permintaannya aman untuk diberikan. Kondisi ini terjadi ketika setelah sumber daya yang sebelumnya dipegang oleh proses lain telah dilepaskan. Kondisi aman yang dimaksudkan selanjutnya disebut sebagai safe-state, sedangkan keadaan yang tidak memungkinkan untuk diberikan sumber daya yang diminta disebut unsafe-state. Mendeteksi Deadlock dan Memulihkan Deadlock Metode ini mengunakan pendekatan dengan teknik untuk menentukan apakah deadlock sedang terjadi serta proses-proses dan sumber daya yang terlibat dalam deadlock tersebut. Setelah kondisi deadlock dapat dideteksi, maka langkah pemulihan dari kondisi deadlock dapat segera dilakukan. Langkah pemulihan tersebut adalah dengan memperoleh sumber daya yang diperlukan oleh proses-proses yang membutuhkannya. Beberapa cara digunakan untuk mendapatkan sumber daya yang diperlukan, yaitu dengan terminasi proses dan pre-emption (mundur) suatu proses. Metode ini banyak digunakan pada komputer mainframe berukuran besar.

24

2. Startvation Startvation adalah keadaan dimana pemberian akses bergantian terus menerus, dan ada suatu proses yang tidak mendapatkan gilirannya. Juga dapat dimaksudkan bahwa kondisi bila beberapa proses-proses menunggu alokasi sumber daya sampai tak berhingga, sementara proses-proses lain dapat memperoleh alokasi sumber daya. Hal ini disebabkan bias pada kebijaksanaan atau strategi alokasi sumber daya. Kondisi seperti ini harus dihindari pada sistem operasi karena tidak adil, tapi dikehendaki penghindaran dilakukan seefisien mungkin. Penanganan ini merupakan persoalan yang sulit untuk menemukan kriteria yang benar, adil dan efesien dalam suatu strategi Sistem Operasi. Contoh : Terdapat tiga proses, P1, P2, dan P3. P1, P2 dam P3 memerlukan pengaksesan sumber daya R secara periodik. Skenario berikut terjadi: o P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber daya R. o Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengakses R. o Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang satu itu kembali membutuhkan sumber daya R.

Jika pemberian hak akses bergantian terus menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R, meski tidak ada deadlock. Pada situasi ini, P2 mengalami situasi yang disebut dengan startvation.

25

BAB VIII PENUTUP

KESIMPULAN Sistem Operasi telah berkembang selama lebih dari 40 tahun dengan dua tujuan utama. Pertama, Sistem Operasi mencoba mengatur aktivitas-aktivitas komputasi untuk memastikan pendayagunaan yang baik dari sistem komputasi tersebut. Kedua, menyediakan lingkungan yang nyaman untuk pengembangan dan jalankan dari program. Pada awalnya, sistem komputer digunakan dari depan konsol. Perangkat lunak seperti assembler, loader, linker dan kompilator meningkatkan kenyamanan dari sistem pemrograman, tapi juga memerlukan waktu set-up yang banyak. Untuk mengurangi waktu set-up tersebut, digunakan jasa operator dan menggabungkan tugas-tugas yang sama (sistembatch). Sistem batch mengizinkan pengurutan tugas secara otomatis dengan menggunakan Sistem Operasi yang resident dan memberikan peningkatan yang cukup besar dalam utilisasi komputer. Komputer tidak perlu lagi menunggu operasi oleh pengguna. Tapi utilisasi CPU tetap saja rendah. Hal ini dikarenakan lambatnya kecepatan alat-alat untuk Masukan/Keluaran relatif terhadap kecepatan CPU. Operasi off-line dari alat-alat yang lambat bertujuan untuk menggunakan beberapa sistem reader-to-tape dan tape-to-printer untuk satu CPU. Untuk meningkatkan keseluruhan kemampuan dari sistem komputer, para developer memperkenalkan konsep multiprogramming.

26

BAB IX DAFTAR PUSTAKA

Modul Praktikum Sistem Operasi http://www.google.com/

http://teknik-informatika.com/ http://kuliah.dinus.ac.id/ika/so5.html http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch23.html http://dedesinau.wordpress.com/2011/04/03/9/


http://www.cs.rpi.edu/academics/courses/fall04/os/c10/index.html http://ahmadfaza.com/definisi-dari-proses-threadmutual-exclution-race-conditionsinkronisasi-deadlockstarvationmonitor-dan-semaphore.html http://id.hicow.com/benang/central-processing-unit/sinkronisasi-2237157.html http://ervamadiyudhistira.wordpress.com/

27

Вам также может понравиться