Minggu, 31 Mei 2015

Precise & Imprecise Interrupt

Precise Interrupt adalah interupsi yang meninggalkan mesin dalam keadaan baik-didefinisikan.

Precise Interrupt mempunyai 4 properties :

  • Program Counter (PC) disimpan di tempat yang dikenal.
  • Semua instruksi sebelum salah satu yang ditunjuk oleh PC telah sepenuhnya dilaksanakan.
  • Tidak ada instruksi lebih dari satu yang ditunjuk oleh PC telah dieksekusi.
  • State eksekusi pada instruksi yang ditunjuk oleh PC di kenal.
Imprecise Interrupt adalah interupsi yang tidak memenuhi requirement yang di atas.
Membuat hidup yang paling menyenangkan bagi penulis sistem operasi, yang sekarang harus mencari tahu apa yang telah terjadi dan apa yang masih harus terjadi.

            Figure 1. (a) A precise interrupt. (b) A imprecise interrupt.
Situasi pada Figure 2 (a) menunjukkan sebuah precise interrupt. Semua instruksi untuk program counter (316) telah selesai dan tidak ada yang di luar itu sudah mulai (atau telah diperpanjang kembali untuk membatalkan efek mereka).

Sedangkan pada Figure 2 (b) menunjukkan sebuah imprecise interrupt, di mana instruksi yang berbeda dekat program counter sedang dalam berbagai tahap penyelesaian, dengan yang lebih tua belum tentu lebih lengkap dari pada yang lebih muda. 

Mesin dengan imprecise interrupt biasanya memberikan sejumlah besar keadaan internal ke dalam stack untuk memberikan sistem operasi kemungkinan mencari tahu apa yang sedang terjadi. Kode yang diperlukan untuk me-restart mesin biasanya sangat rumit. Juga, menyimpan sejumlah besar informasi ke memori pada setiap interupsi membuat interupsi lambat dan pemulihan bahkan lebih buruk. Hal ini menyebabkan situasi ironis memiliki CPU superscalar sangat cepat kadang-kadang menjadi tidak cocok untuk real-time kerja karena memperlambat interupsi.


www.binus.ac.id
www.skyconnectiva.com

Sabtu, 09 Mei 2015

Memory Management

Memory Management

  • Pengelompokkan memori untuk mengakomodasi beberapa proses.
  • Memori perlu dialokasikan secara efisien agar bisa menampung banyak proses sekaligus.

Memory Management Requirement:
  • Relocation: Programmer tidak akan tahu dimana program ini akan dialokasikan di memory ketika dieksekusi. Lokasi memory dapat terus berubah - rubah ketika program dijalankan.

  • Protection: Proses seharusnya tidak bisa mereference lokasi memori proses lain tanpa ijin.

  • Sharing:Mengijinkan beberapa proses untuk mengakses bagian yang sama dari memori.Hal ini bisa berguna untuk mengurangi jumlah memori yang digunakan.
  • Logical Organization: Program ditulis dalam bentuk modul - modul dan setiap modul dapat ditulis dan dicompile secara independent.
  • Physical Organization:
    Memori yang tersedia untuk program plus data mungkin tidak cukup.
    - Programmer tidak tahu berapa banyak space yang available.
Addresing
  • Logical
    -
    Mereference ke lokasi memori independent dari assignment yang sekarang dari data ke memori.
    - Translasi harus dilakukan ke physical address.
  • Relative
    -
    Alamat dinyatakan sebagai lokasi yang relatif terhadap beberapa titik yang diketahui.
  • Physical
    -
    Alamat absout atau lokasi sebenarnya di main memory.
Memory Allocation Algorithm
  • First Fit : Tercepat karena mencari dan mengambil blok memori yang terdepan.
  • Next Fit : Mencari memory dari yang sekarang ke selanjutnya, bukan dari lokasi memori yang paling pertama.
  • Best Fit : Mencari blok memori yang ukurannya sesuai atau mendekati yang diminta.
  • Worst Fit : Mencari ukuran memori yang terbesar.
  • Quick Fit : 
  • Buddy System : Mencari lokasi memori dengan menggunakan rumus
    Rumus Buddy System : 2U-1 < s <= 2U




Deadlock

Deadlock:
dapat didefinisikan sebagai keadaan dimana dua proses atau lebih menunggu resources yang hanya bisa diubah oleh proses lainnya.


Kondisi - kondisi yang menyebabkan deadlock:
  • Mutual exclution : hanya satu proses yang dapat menggunakan resources.
  • Hold and Wait : Suatu proses sedang memegang satu resource,dan sekaligus menunggu untuk mengambil resource lainnya.
  • No Preemption : Resource dapat dilepaskan hanya dengan sukarela oleh prosesyang memegangnya, setelah proses telah menyelesaikan tugasnya.
  • Circular wait : Terjadi ketika proses saling menunggu resource sehingga membentuk circular.
Deadlock Modeling
(a). Holding a resource.
(b). Requesting a resource.
(c). Deadlock.
Strategy dealing with Deadlock:
  • Hindari saja masalah.(Ostrich algorithm)
  • Deteksi dan pemulihan. Biarkan deadlock terjadi, mendeteksi mereka, mengambil tindakan.
  • Menghindari dengan mengaalokasi sumber daya dengan hati - hati.
  • Pencegahan, dengan struktural meniadakan salah satu dari empat kondisi yang diperlukan.

Deadlock avoidance:
  • Mengetahui jumlah resources yang dibutuhkan.
  • Mengetahui jumlah resources ada berapa, pengalokasiannya, dan bisa diblock.
Safe and Unsafe State:
  • Safe State
(a) is safe
  • Unsafe State
    (b) is unsafe


www.binus.ac.id
www.skyconnectiva.com

Concurrency

Concurrency
  • Komunikasi antar proses.
  • Berbagi sumber daya.
  • Sinkronisasi beberapa proses.
  • Alokasi waktu processor.
Concurrency berguna untuk mengatasi :
  • Multiple Application
    - Multiprogramming
  • Structured Application
    - Aplikasi yang dapat mengatur proses concurrent.
  • Operating system structure
    - Sistem Operasi yang mengatur sekumpulan thread atau proses.
Masalah - masalah dalam concurrency :
  • Sharing global resources.
  • Pengelolaan alokasi sumber daya.
  • Sulit untuk menemukan error pada program.
O/S Concerns
Ada beberapa hal yang di pengaruhi oleh concurrency:
  • OS harus dapat melacak proses yang aktif yang dapat menimbulkan concurrency.
  • Mengalokasikan dan dealokasi sumber daya berikut:
    - Processor time
    - Memory
    - Files
    - I/O devices
  • OS harus dapat melindungi data dan sumber daya.
  • Hasil dari suatu proses harus independen dari kecepatan eksekusi proses lainnya.
Persaingan antar proses dari sumber daya:
  • Mutual Exclusion : hanya ada satu proses yang diperbolehkan menggunakan resources.
  • Deadlock : dimana semua proses ingin menggunakan resources yang sama.
  • Starvation : setiap proses saling mengalah.
Cooperation among process:
  • By Sharing
  • By Communication
Mutual Exclusion:
  • Hanya ada satu proses yang diperbolehkan menggunakan resources.
  • Sebuah proses yang stop di bagian non-critical harus melakukannya tanpa mengganggu proses lainnya.
  • No deadlock and starvation.
  • Alasan untuk menciptakan Mutucal exclusion:
    - Disabling Interrupts
    - Lock Variables
    - Strict Alternation
    - Peterson's solution
    - The TSL Instruction
Semaphore
  • Variable yang bernilai integer digunakan untuk memberi sinyal.
  • Dapat digunakan untuk mengatasi concurrency.
  • Ada 3 operasi yang digunakan semaphore:
    - Inisialisasi
    - Increment
    - Decrement
  • Jika suatu proses menunggu sinyal, maka proses tersebut ditunda hingga sinyal di kirimkan.
  • Wait dan Operasi sinyal tidak dapa diganggu.
  • Queue digunakan untuk proses yang menunggu.
  • Variable Semophore:
    - Diinisialisasi ke bilangan non-negatif.
    - Wait operation decrement nilai semaphore.
    - Signal operation increment nilai semaphore.
Mutex : mirip dengan semaphore, tetapi hanya menggunakan 2 operator atau penanda.

Monitor
  • Konstruksi bahasa pemograman yang mendukung akses kontrol untuk sharing data.
  • Encapsulates
  • Hanya ada satu proses yang aktif dalam monitor setiap saat.
Message Passing : melakukan komunikasi dengan saling kirim - mengirim pesan antar sender dan receiver.



www.binus.ac.id
www.skyconnectiva.com

Kamis, 07 Mei 2015

CPU Scheduling

Keputusan CPU Scheduling mungkin terjadi ketika sebuah proses:
  • Switch dari running menjadi waiting state.
  • Switch dari running menjadi ready state.
  • Switch dari waiting menjadi ready.
  • Ketika terjadi terminasi.
Modul dispatcher memberikan kontrol atas CPU ke proses yang dipilih oleh short-term scheduler;hal ini berkaitan dengan:
  • Switching context.
  • Switching to user mode.
  • Melompat ke lokasi yang tepat dalam program pengguna untuk me-restart program.
Scheduling juga mempunyai opimization criteria :
  • Penggunaan CPU secara maksimal.
  • Throughput Maksimal.
  • Waktu pemakaian yang maksimal.
  • Waktu tunggu yang minimum.
  • Waktu respon yang minimum.
Scheduling mempunya beberapa tujuan, yaitu:
  • All systems
    - Memberikan setiap proses pembagian CPU yang adil.
    - Melihat bahwa ada kebijakan yang dinyatakan dilakukan.
    - Menjaga semua bagian dari system yang sibuk.
  • Batch sytems
    - Maksimalkan pekerjaan per jam.
    - Meminimalkan waktu antara pengajuan dan terminasi.
    - Menjaga CPU sibuk sepanjang waktu.
  • Interactive systems
    - Menanggapi permintaan cepat.
    - Memenuhi harapan pengguna.
  • Real-time systems
    - Mencegah hilangnya data.
    - Menghindari penurunan kualitas dalam sistem multimedia.
Beberapa cara atau algoritma yang digunakan dalam scheduling :
  1. First-Come First-Serve
  2. Shortest Job First
  3. Interactive Scheduling Alogrithm
    - Round-robin scheduling

    - Priority scheduling
    - Multiple queues
    - Shortest process next
    - Guaranteed scheduling
    - Lottery scheduling
    - Fair-share scheduling

Processes and Threads

4.1 Processes

Perbedaan Proses dan Program

  • Program : merupakan instruksi untuk melakukan suatu tugas.
  • Proses : merupakan eksekusi dari suatu program.
Process Model
(a). Multiprogramming of four program
(b). Conceptual model of four independent, sequential processes
(c). Only one program is active at one

Process Creation
Event yang menyebabkan process creation:
  • Inisialisasi system.
  • Eksekusi dari sebuah pemanggilan process creation dengan sebuah proses yang sedang berjalan (fork()).
  • User meminta untuk membuat proses baru.
  • inisialisasi batch job.
Process

Disebut juga sebagai task atau pelaksanaan program secara individu, merupakan eksekusi dari sebuah program, dan dapat ditelusuri karena adanya daftar urutan instruksi yang sudah di eksekusi.

Suspended Process

  • Prosesor lebih cepat daripada I/O sehingga semua proses dapat menunggu I/O.
  • Memindahkan proses ke disk untuk membebaskan lebih banyak memory.
  • State yang diblokir menjadi suspend state ketika bertukar ke disk.
  • Dua jenis state : Blocked-suspend, Ready-suspend.

Processes Table

Merupakan tempat dimana suatu proses ditempatkan. Atribut yang diperlukan untuk management:
  • Process ID.
  • Process State.
  • Location in Memory.
Processes Location
  • Proses mencakup sekumpulan program yang akan dieksekusi : Lokasi data untuk variabel lokal dan global.- Setiap konstanta yang didefinisikan.- Stack.
  •  Process Control Block
    - Control and status register.- Processor state information.- Process control information.
  • Process Image
Processes Termination
Penyebab terjadinya proses terminasi :
  • Normal exit (voluntary)
  • Error exit (voluntary)
  • Fatal error (involuntary)
  • Killed by another process (involuntary)
System() : untuk mengeksekusi perintah dalam suatu program.

Fork()
  • Program akan melakukan proses duplikasi yang disebut pembuatan proses child.
  • Proses parent terus melaksanakan program dari titik yang disebut fork.
  • Proses child mengeksekusi program yang sama dari tempat yang sama pid_t fork (void).
Exec() : untuk mengterminate process.
  •  execvp dan execlp (dengan p)
  •  execv, execvp, dan execve (dengan v)                                
  •  execve dan execle (dengan e)

4.2 Threads

Thread memungkinkan beberapa eksekusi berlangsung dalam lingkungan proses yang sama.
Ada 2 Karakteristik Thread yang menjadi pembeda, yaitu:

  • Lightweight process : Terjadi karena thread mempunyai sifat yang sama dengan proses.
  • Multithreading : Memperbolehkan multiple thread dalam proses yang sama.
Contoh dari thread terdapat pada Figure 4.1


Figure 4.1 Thread Model

Figure 4.2 menggambarkan perbedaan antara thread dan proses dari sudut pandang manajemen proses.

Figure 4.2 Single-Threaded and Multithreaded Process Models

Dalam model proses single-threaded, representasi proses termasuk yang blok kontrol proses dan ruang alamat pengguna, serta pengguna dan kernel tumpukan untuk mengelola perilaku call / kembalinya pelaksanaan proses. Sementara proses sedang berjalan, ia mengendalikan register prosesor.
Dalam model proses multi-threaded, masih ada single proses kontrol blok dan asosiasi alamat user dengan proses, tetapi sekarang sudah ada pemisah untuk stack pada masing - masing thread.

Kelebihan dari Thread:
  • Waktu yang panjang untuk membuat thread baru dari suatu proses.
  • Cepat untuk mengakhiri thread dari sebuah proses.
  • Cepat untuk beralih di antara dua benang dalam proses yang sama.
  • Sejak thread dalam memori yang sama berbagi proses dan file, mereka dapat berkomunikasi satu sama lain tanpa memanggil kernel.
Table 4.1 menampilkan hubungan - hubungan yang dapat terjadi antara threads dan processes.

Table 4.1 Relationship between Threads and Processes


File System

File system:
File system digunakan untuk mengatur file dan waktu akses pada suatu data. Suatu file system berfokus pada pengelolaan penyimpanan secondary.

Pada File system terdapat objek yang berhubungan dengan meta data, yaitu:
  • Owner and Group Information
  • Time
  • Permission
Tipe - tipe dasar file :
  • Regular File
  • Directories
  • Links
  • Special File : untuk menghindari serangan virus.
  • Name Pipes : Tipe yang special untuk special file, digunakan untuk menunjukkan struktur dalam suatu memori dan menunjuk blok dalam suatu disk.
Operasi dalam File System ada 11, yaitu:
  1. Create
  2. Delete
  3. Open
  4. Close
  5. Read
  6. Write
  7. Append
  8. Seek
  9. Get Attributes
  10. Set Attributes
  11. Rename
Operasi dalam Directory ada 8,yaitu:
  1. Create
  2. Delete
  3. Opendir
  4. Closedir
  5. Readdir
  6. Rename
  7. Link
  8. Unlink

Process Description and Control

 3.1 WHAT IS A PROCESS

Kita juga bisa memikirkan proses sebagai entitas yang terdiri dari sejumlah elemen. Dua elemen penting dari sebuah proses adalah program code (yang dapat dibagi dengan proses lainnya yang melaksanakan program yang sama) dan satu set data yang terkait dengan kode itu. Pada setiap titik waktu tertentu, sementara program mengeksekusi, proses ini dapat secara unik ditandai dengan sejumlah elemen, termasuk yang berikut ini :
  • Identifier: Sebuah identifier unik yang terkait dengan proses ini, untuk membedakannya dari semua proses lainnya.
  • State: Jika proses ini sedang dijalankan, itu adalah dalam running state.
  • Priority: Tingkat prioritas relatif terhadap proses lainnya.
  • Program counter: Alamat dari instruksi berikutnya dalam program yang akan dijalankan.
  • Memory pointers: Termasuk pointer ke kode program dan data yang terkait dengan proses ini, ditambah blok memori setiap bersama dengan proses lainnya.
  • Context data: Ada data yang hadir dalam register di prosesor saat proses mengeksekusi.
  • I/O status information: Termasuk luar biasa permintaan I / O, I / O perangkat ditugaskan untuk proses ini, daftar file yang digunakan oleh proses, dan sebagainya.
  • Accounting information: Mungkin termasuk jumlah waktu prosesor dan waktu jam yang digunakan, batas waktu, nomor rekening, dan sebagainya.
Informasi yang ada dalam daftar sebelumnya disimpan ke dalam struktur data, biasanya disebut Process Control Block (Figure3.1).
Figure 3.1 Simplified Process Control Black
3.2 PROCESS STATES

A Two-State Process Model
Figure 3.2 Two-State Process Model

Dapat dilihat di Figure 3.2, terdapat 2 proses model. Yang (a) merupakan State Transition Diagram, pada model ini, proses bisa saja dalam satu dari 2 states: Running atau Not Running. Yang (b) merupakan Queuing Diagram. Queue dapat terdiri dari linked list dari blok data, dimana setiap blok merupakan satu proses.
Process Creation

Ketika sebuah proses baru yang akan ditambahkan ke mereka yang saat ini sedang dikelola, OS membangun struktur data yang digunakan untuk mengelola proses dan mengalokasikan ruang alamat di memori utama untuk proses.
Berikut Merupakan 4 peristiwa umum atau alasan mengarah pada penciptaan proses :
Table 3.1 Reasons for Process Creation

Ketika OS menciptakan proses atas permintaan eksplisit proses lain, tindakan ini disebut sebagai Process Spawning.

Process Termination
Table 3.2 Reasons for Process Termination

Tabel 3.2 merangkum alasan khas untuk process termination. Selain itu, sejumlah kondisi kesalahan dan kesalahan dapat menyebabkan penghentian proses. Dan akhirnya, dalam beberapa sistem operasi, proses dapa saja dihentikan oleh proses yang menciptakannya atau ketika proses induk itu sendiri diakhiri.

A Five State Model

five states dalam diagram model adalah sebagai berikut:
  • Running: Proses yang sedang dijalankan.
  • Ready: Sebuah proses yang siap untuk mengeksekusi ketika diberi kesempatan.
  • Block/Waiting: Sebuah proses yang tidak dapat mengeksekusi sampai beberapa peristiwa terjadi, seperti penyelesaian I / O operasi.
  • New: Sebuah proses yang baru saja dibuat namun belum mengakui ke kolam proses eksekusi oleh OS.
  • Exit: Sebuah proses yang telah dibebaskan dari kolam proses eksekusi oleh OS, baik karena dihentikan atau dibatalkan karena untuk beberapa alasan.

Figure 3.3 Five-State Process Model

Figure 3.6 menunjukkan jenis peristiwa yang menyebabkan setiap transisi state untuk proses; transisi yang mungkin adalah sebagai berikut:
  • Null -> New: Proses yang baru dibuat untuk mengeksekusi sebuah program.
  • New -> Ready: OS akan bergerak proses dari New state ke Ready state ketika siap untuk mengambil proses tambahan.
  • Ready -> Running: Ketika saatnya untuk memilih proses untuk menjalankan, OS memilih salah satu proses dalam Ready state.
  • Running -> Exit: Proses yang sedang berjalan dihentikan oleh OS jika proses menunjukkan bahwa mereka telah menyelesaikan atau jika dibatalkan.
  • Running -> Ready: Ketika proses yang berjalan melebihi waktu yang diizinkan untuk menginterupsi eksekusi merupakan alasan yang paling sering mengapa transisi ini terjadi.
  • Running -> Blocked: Sebuah proses diletakkan di Blocked state jika permintaan sesuatu yang harus menunggu.
  • Blocked -> Ready: Sebuah proses di Blocked state dipindahkan ke Ready state ketika acara yang telah menunggu terjadi.
  • Ready -> Exit: Untuk kejelasan, transisi ini tidak ditampilkan pada state diagram.
  • Blocked -> Exit:  Komentar di bawah item sebelumnya berlaku.
3.3 PROCESS CONTROL

Modes of Execution

Table 3.3 Typical Functions of an Operating System Kernel

3.4 EXECUTION OF THE OPERATING SYSTEM

Nonprocess Kernel

Figure 3.4 Relationship between Operating System and User Processes

Pada Figure 3.4(a), kebanyakan OS yang lama digunakan untuk mengeksekusi kernel dari OS keluar dari process apapun.
Pada Figure 3.4(b), OS menjadi kumpulan panggilan user untuk menjalan kan fungsi - fungsi yang ada dan mengeksekusi di dalam proses milik user.
Pada Figure 3.4(c), OS diimplementasikan sebagai kumpulan dari proses sistem.

Execution within User Processes

Sebuah alternatif yang umum dengan sistem operasi pada komputer yang lebih kecil untuk menjalankan hampir semua perangkat lunak OS dalam konteks proses pengguna.
Figure 3.5 menunjukkan struktur gambar proses khas untuk strategi ini.

Figure 3.5 Process Image: Operating System Executes within User Space