Status Proses Sistem Operasi

Proses adalah keadaan ketika sebuah program sedang di eksekusi. Saat komputer berjalan, terdapat banyak proses yang berjalan secara bersamaan. Sebuah proses dibuat melalui system call create-process yang membentuk proses turunan ( child process) yang dilakukan oleh proses induk ( parent process). Proses turunan tersebut juga mampu membuat proses baru sehingga semua proses ini pada akhirnya membentuk pohon proses.
Pada saat proses dieksekusi, akan terjadi perubahan status. Status proses didefinisikan sebagai bagian dari aktivitas proses yang sedang berlangsung saat itu. Tipa-tiap proses dapat memiliki salah satu status di bawah ini:
– New, yaitu status yang dimiliki pada saat proses baru saja dibuat oleh penjadwalan tingkat tinggi, tetapi belum siap melakukan eksekusi
– Running, yaitu status yang dimiliki pada saat proses bisa dieksekusi, karena CPU tidak sedang mengerjakan tugas yang lain
– Waiting, yaitu status yang dimiliki pada saat proses sedang menunggu beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal)
– Ready, yaitu status yang dimiliki pada saat proses menunggu jatah waktu dari prosesor
– Terminated, yaitu status yang dimiliki pada saat proses telah selesai dieksekusi
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 kesemua proses-proses ini pada akhirnya membentuk pohon proses.
Ketika sebuah proses dibuat maka proses tersebut dapat memperoleh sumber-daya seperti ”waktu CPU”, ”memori”, ”berkas” atau perangkat ”M/K”. Sumber daya ini dapat diperoleh langsung dari Sistem Operasi, dari Proses Induk yang membagi-bagikan sumber daya kepada setiap proses turunannnya, atau proses turunan dan proses induk berbagi sumber-daya yang diberikan Sistem Operasi.
Ada dua kemungkinan bagaimana jalannya (running) proses induk dan turunan berjalan (running). Proses-proses tersebut berjalan secara konkuren atau proses induk menunggu sampai beberapa/seluruh proses turunannya selesai berjalan
Proses Control Block adalah bentuk informasi-informasi lain yang diperlukan sistem operasi untuk mengendalikan dan mengoordinasikan beragam proses aktif dalam suatu proses. Dalam kenyataannya, proses banyak mengalami gangguan dalam menjalankan tugasnya oleh karena itu ada PCB (Proses Control Block) untuk membantu dan memberikan dukungan kepada proses itu.
Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block(PCB), juga disebut sebuah control block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, seperti status proses, program counter, CPU register, Informasi manajemen memori, informasi pencatatan, informasi status I/O. Berikut adalah gambar diagram PCB.

sumber :
– http://aliansyah.blog.upi.edu/2013/09/29/model-status-proses-pada-sistem-operasi/
– http://idaparida.blog.upi.edu/2013/09/30/diagram-status-proses/

Struktur Sistem Operasi

Menurut Avi Silberschatz, Peter Galvinm dan Greg Gagne bahwa struktur sistem operasi terdiri dari :
– Process Management
– Memory Management
– Secondary Storage Management
– Sistem Input Output Management
– File Management
– Protection Sistem
– Networking
– Command Interpreter System
Process Management
Proses yaitu keadaan saat suatu program sedang di eksekusi. Suatu proses memerlukan beberapa sumber daya untuk menyelesaian pekerjaanya. Sumber daya tersebut bisa berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat I/O.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berhubungan dengan manajemen proses adalah :
– Pembuatan dan penghapusan proses pengguna dan sistem proses
– Melanjutkan atau menunda proses
– Menyediakan mekanisme untuk proses sinkronisasi, komunikasi, dan penanganan deadlock
Memory Management
Memori utama adalah sebuah array yang besar dari word atau byte, yang ukurannya mencapai ratusan, ribuan atau bahkan jutaan. Setiap word atau byte memiliki alamat tersendiri. Memori utama berfungsi sebagai tempat penyimpanan yang akses datanya dipakai oleh CPU atau perangkat I/O.
Memori utama merupakan penyimpanan data yang sifatnya sementara (volatile), artinya yang dapat hilang saat sistem dimatikan. Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berhubungan dengan manajemen memori seperti :
– Memilih program yang akan di-load ke memori
– Menjaga track dari memori yang sedang dipakai dan siapa yang menggunakannya
– Mengalokasikan dan meng-delokasikan ruang memori sesuai kebutuhan
Secondary Storage Management
Memori utama hanya menyimpan data bersifat sementara dengan jumlah yang sangat kecil. Oleh karena itu, untuk menyimpan keseluruhan data dan program komputer diperlukan secondary-storage adalah hardisk, disket, dll.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berhugungan dengan disk-management seperti : free-space management, alokasi penyimpanan, penjadwalan disk.
Input Output Sistem Management
Biasanya disebut device manager. Menyediakan “device driver” yang umum sehingga operasi I/O dapat seragam (membuka, membaca, menulis, menutup). Contoh : pengguna menggunakan operasi yang sama untuk membaca berkas pada hardisk, CD-ROM dan floppy disk.
Komponen sistem operasi untuk sistem I/O :
– Buffer: untuk menampung sementara data dari / ke perangkat I/O
– Spooling: untuk melakukan penjadwalan pemakaian I/O sistem supaya lebih efisien (antrian dsb)
– Menyediakan driver untuk dapat melakukan operasi “rinci” untuk perngkat keras I/O tertentu
File Management
Berkas adalah kumpulan informasi yang berhubungan sesuai dengan tujuan pembuat berkas tersebut. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, colume, dll). Sistem operasi bertanggung jawab :
– Pembuatan dan penghapusan direktori
– Mendukung manipulasi berkas dan direktori
– Pembuatan dan penghapusan berkas
– Memetakan berkas ke secondary storage
– Mem-backup berkas ke media penyimpanan yang permanen (non-volatile)
Protection Management
Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor atau pengguna ke sistem sumber daya. Mekanisme proteksi harus :
– Membedakan antara penggunaan yang suda diberi izin dan yang belum
– Specify the controls to be imposed
– Provide a means of enforcement
Networking
Sistem terdistribusi merupakan sekumpulan prosesor yang tidak berbagi memori atau clock. Tiap prosesor memiliki memori sendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi sistem terdistribusi menyediakan akses pengguna ke bermacam sumber daya sistem. Akses tersebut bisa mengakibatkan :
– Computation speed-up
– Increased data availability
– Enhanced reliability
Command Interpreter System
Sistem operasi menunggu perintah/ intruksi dari pengguna (command driven). Program yang membaca instruksi dan mengartikan control statements biasa disebut : control-card interpreter, command-line interpreter, dan UNIX shell. Command-interpreter system sangat bervariasi dari satu sistem operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi I/O devices yang ada. Contohnya : CLI, windows, pen-based (touch) dan lain-lain.

sumber :
http://sistemoperasikomp.blogspot.com/2013/04/struktur-sistem-operasi.html

Direct Memory Access (DMA)

Direct Memory Access (DMA) means CPU grants I/O module authority to read from or write to memory without involvement. DMA module controls exchange of data between main memory and the I/O device. Because of DMA device can transfer data directly to and from memory, rather than using the CPU as an intermediary, and can thus relieve congestion on the bus. CPU is only involved at the beginning and end of the transfer and interrupted only after entire block has been transferred.
Direct Memory Access needs a special hardware called DMA controller (DMAC) that manages the data transfers and arbitrates access to the system bus. The controllers are programmed with source and destination pointers (where to read/write the data), counters to track the number of transferred bytes, and settings, which includes I/O and memory types, interrupts and states for the CPU cycles.
DMA increases system concurrency by allowing the CPU to perform tasks while the DMA system transfers data via the system and memory busses. Hardware design is complicated because the DMA controller must be integrated into the system, and the system must allow the DMA controller to be a bus master. Cycle stealing may also be necessary to allow the CPU and DMA controller to share use of the memory bus.

source : http://www.louiewong.com/archives/137

Interrupt Driven I/O

The CPU issues commands to the I/O module then proceeds with its normal work until interrupted by I/O device on completion of its work.
For input, the device interrupts the CPU when new data has arrived and is ready to be retrieved by the system processor. The actual actions to perform depend on whether the device uses I/O ports, memory mapping.
For output, the device delivers an interrupt either when it is ready to accept new data or to acknowledge a successful data transfer. Memory-mapped and DMA-capable devices usually generate interrupts to tell the system they are done with the buffer.
Although Interrupt relieves the CPU of having to wait for the devices, but it is still inefficient in data transfer of large amount because the CPU has to transfer the data word by word between I/O module and memory.

Below are the basic operations of Interrupt:
– CPU issues read command
– I/O module gets data from peripheral whilst CPU does other work
– I/O module interrupts CPU
– CPU requests data
– I/O module transfers data

source : http://www.louiewong.com/archives/137

Programmed I/O

The oldest method of transferring data over the IDE/ATA interface is through the use of programmed I/O. This is a technique whereby the system CPU and support hardware directly control the transfer of data between the system and the hard disk. There are several different speeds of programmed I/O, which are of course called programmed I/O modes, or more commonly, PIO modes.
Programmed I/O (PIO) refers to data transfers initiated by a CPU under driver software control to access registers or memory on a device.
The CPU issues a command then waits for I/O operations to be complete. As the CPU is faster than the I/O module, the problem with programmed I/O is that the CPU has to wait a long time for the I/O module of concern to be ready for either reception or transmission of data. The CPU, while waiting, must repeatedly check the status of the I/O module, and this process is known as Polling. As a result, the level of the performance of the entire system is severely degraded.
Programmed I/O basically works in these ways:
– CPU requests I/O operation
– I/O module performs operation
– I/O module sets status bits
– CPU checks status bits periodically
– I/O module does not inform CPU directly
– I/O module does not interrupt CPU
– CPU may wait or come back later

sources :
– http://www.pcguide.com/ref/hdd/if/ide/modesPIO-c.html
– http://www.louiewong.com/archives/137