Tuesday 29 March 2011

Tugas Kelompok 2 Sistem Operasi(Konsep Sistem Operasi Solaris)

           
Sistem Operasi Solaris adalah sebuah Sistem Operasi yang berdasarkan UNIX system yang diperkenankan oleh Sun Microsystems oada tahun 1992 sebagai pendukung SunOS. Solaris terkenal karena kestabilannya, khususnya pada sistem SPARC (Scalable Processor Architecture), Solaris disertifikasi dalam Spesifikasi UNIX walaupun pada awal pengembangannya berdasarkan kepemilikan pribadi, dan kebanyakan kode dasarnya sekarang ini merupakan Software OpenSource yang biasa dikenal dengan OpenSolaris. OpenSolaris adalah OpenSource versi Sistem Operasi Sun Solaris, tetapi Sun Solaris terdiri dari lebih beberapa kode yang tidak hanya inti dari Sistem Operasi misalnya : Source untuk Installer, Desktop, Software.

         Open Solaris memiliki banyak fitur yang menjadikan OpenSolaris bisa digunakan untuk skala penggunaan yang besar dari penggunaan untuk desktop pC atau Mobile PC. Konsep Open Solaris adalah sebagai berikut :

1.Free Redistribution : Didistribusi secara bebas.

2.Source Code : Sumber (Source) harus tersedia untuk semua distribusi.

3.Derived Works : Setiap orang bisa mengubah kode dan mendisrtibusikan kembali.

4.No Discrimination : Kode harus disediakan untuk seseorang untuk dikembagkan.

Beberapa kelebihan OpenSolaris dibandingkan dengan Sistem Operasi lain :

1.ZFS : System Rstore.

2.DTrace L : Dapat mengamati dimana aplikasi banyak menggunakan waktunya dan berapa lama.

3.Manajemen Kegagalan : Mencegah, mendiagnosa dan memperbaiki error.

4.Zona : Mengimplementasikan sebuah abstraksi Sistem Operasi yang memungkinkan beberapa aplikasi berjalan secara terisolasi satu dengan lainnya di perangkat keras fisik yang sama.
5.Multimedia.

Monday 28 March 2011

tugas 3 alpro(kondisi)


1.Carilah Akar-Akar Persamaan Kuadrat

#include <iostream>
#include <math.h>
#include <conio.h>

using namespace std;
class Akar{
      friend ostream& operator<<(ostream&, Akar&);
      friend istream& operator>>(istream&, Akar&);
public:
       Akar();
       int disk(){ return B*B-4*A*C;}
       float akar1(){ return(-B+sqrt(disk()))/(2*A);}
       float akar2(){ return(-B-sqrt(disk()))/(2*A);}
       void hitung_akar();
       void cetak_disk(){cout<<"diskriminan="<<disk()<<endl;}
       void cetak_akar(){
            cout<<"x1="<<akar1()<<endl;
            cout<<"x2="<<akar2()<<endl;
            }
       private:
               int A,B,C;
               float x1,x2;
               };
       ostream& operator<<(ostream& out,Akar& keluaran){
                keluaran.cetak_disk();
                if(keluaran.disk()>=0)keluaran.cetak_akar();
                else out<<"akar imajiner";
                return out;
                }
                istream& operator>>(istream& in,Akar&masukan){
                         cout<<"koefisien pangkat 2:";in>>masukan.A;
                         cout<<"koefisien pangkat 1:";in>>masukan.B;
                         cout<<"koefisien pangkat 0:";in>>masukan.C;
                         return in;
                         }
                         Akar::Akar(){
                                     cout<<"menghitung akar persamaan kuadrat\n";
                                     }
                         void Akar::hitung_akar(){
                                      if(A==0){
                                      cout<<"bukan pers.kuadrat.\n";
     cout<<"harga akar="<<-C/B;} else{
                  if(disk()>0){
                   x1=akar1();
                   x2=akar2();
       } else if(disk()==0){
                    x1=akar1();
                     x2=x1;
            }
          }
        }
                                                                                 
            
int main(int argc, char *argv[])
{
    Akar kasus;
    cin>>kasus;
    kasus.hitung_akar();
    cout<<kasus;

    system("PAUSE");
    return EXIT_SUCCESS;
}











Flow chart
Mulai
Rounded Rectangle: selesai
Disk=-4 A C
 
Parallelogram: A,B,C

2.algoritma
Algoritma Persamaan_Kuadrat
{menghitung akar-akar persamaan kuadrat Ax^2+Bx+C=0}
Deklarasi
A,B,C            :real            {koefisien-koefisien persamaan}
Disk               :longreal    {nilai diskriminan}
x1,x2             :float           {nilai-nilai akar untuk disk>=0}
Deskripsi
              read(A,B,C)
              disk çA+B
              if (A<0)then write(bukan persamaan kuadrat)
              else if disk<0 then
                         x1(-B+sqrt(disk)2*A
                         x2(-b-sqrt(disk)/2*A
              else if disk <0 then
                         x1(-b/(2*A)
                         x2(x1)
              else write(akar imajiner)
              end if
            write(x1,x2)
3.konversi nilai ke angka
#include <cstdlib>
#include <iostream>

using namespace std;
class Nilai{
      friend ostream& operator<<(ostream&,Nilai&);
      friend istream& operator>>(istream&,Nilai&);
public:
       Nilai(){};
       void konversikan(){
            if((nilai>0)&&(nilai<=20))
            nilai_huruf='E';
            else if((nilai > 20)&&(nilai<=40))
            nilai_huruf='D';
            else if((nilai > 40)&&(nilai<=60))
            nilai_huruf='C';
            else if((nilai>60)&&(nilai<=80))
            nilai_huruf='B';
            else nilai_huruf='A';
            }
       private:
                    int nilai;
                    char nilai_huruf;
                    };
       istream& operator>>(istream& in,Nilai& masukan){
                   cout<<"masukan nilai angka=";
                   in>>masukan.nilai;
                             return in;
                             };
       ostream& operator<<(ostream& out,Nilai&keluaran){
                   out<<"nlai angka:"<<keluaran.nilai<<endl;
                   out<<"nilai huruf:"<<keluaran.nilai_huruf;
                        return out;
                        }     
                                     
int main()
{
    Nilai angka;
    cin>>angka;
    angka.konversikan();
    cout<<angka;
   
    system("PAUSE");
    return EXIT_SUCCESS;
}

4.algoritma menentukan bilangan bulat dan real
Algoritma bilangan bulat dan real
(menentukan apakan yang di masukan bilangan real atau bulat)

Deklarasi
A,B:real,int
Deskripsi
Read(A,B)
If(A=int)then write(blangan bulat adalah=’A)
Else wrute (bilangan real adalah=’B),then write (bilangan real=B)
endif

Thursday 17 March 2011

tugas apro pertemuan 2(sekuen)

1.Penjumlahan dari Tiga Buah Bilangan
#include
#include

using namespace std;
main()
{
int a,b,c,jumlah;
cout<<"bilangan 1:"; cin>>a;
cout<<"bilangan 2:"; cin>>b;
cout<<"bilangan 3:"; cin>>c;
jumlah=(a+b+c);
cout<<"jumlah 3 bilangan="<2.Perkalian 2 Bilangan dengan Overloading

#include
#include
using namespace std;
class Perkalian{
friend ostream& operator<<(ostream&, const Perkalian&); friend istream& operator>>(istream&, Perkalian&);
public:
Perkalian();
void hitung_perkaliannya(){hasil=(a*b);}
private:
int a,b;
int hasil;
};
Perkalian::Perkalian(){
cout<<"program mengalikan 2 integer\n"; cout<<"selamat berkarya\n"; } istream& operator>>(istream& in,Perkalian& masukan){
cout<<"masukan nilai a:"; in>>masukan.a;
cout<<"masukan nilai b:"; in>>masukan.b;
return in;
}
ostream& operator<<(ostream& out,const Perkalian& keluaran){ out<<"nilai a:"<>X;
X.hitung_perkaliannya();
cout<3.Mencari Kelilling dan Luas Lingkaran
#include
#include
using namespace std;

int main(int argc, char *argv[])
{
float phi=3.14;
int r;
float keliling,luas;
cout<<"jari-jari lingkaran:"; cin>>r;
keliling= 2*phi*r;
luas=phi*r*r;
cout<<"kelliling="<4.Konversi Suhu dari Celsius menjadi Reamur,Fehrenheit Dan Kelvin

#include
#include

using namespace std;
class Suhu{
friend ostream& operator<<(ostream&,Suhu&); friend istream& operator>>(istream&,Suhu&);
public:
void konversi_keR(){ r=4/5.0*c;}
void konversi_keF(){f=9/5.0*c+32;}
void konversi_keK(){k=c+273;}
private:
int c;
float r,f,k;
};
istream& operator>>(istream& in,Suhu& A){
cout<<"masukan suhu derajat celcius:"; in>>A.c;
return in;
}
ostream& operator<<(ostream&out,Suhu& A){ A.konversi_keR(); A.konversi_keF(); A.konversi_keK(); cout<>X;
cout<
system ("PAUSE");
return EXIT_SUCCESS;
}

Wednesday 16 March 2011

tugas individu 2 sistem operasi

KONSEP MANAJEMEN PROSES PADA SISTEM OPERASI
Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control Block) yang memuat informasi tentang proses tersebut, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori. Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa sering proses harus dijalankan oleh prosesor. Proses yang memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Suatu sistem operasi dapat saja menentukan semua proses dengan prioritas yang sama, sehingga setiap proses memiliki kesempatan yang sama. Suatu sistem operasi dapat juga merubah nilai prioritas proses tertentu, agar proses tersebut akan dapat memiliki kesempatan lebih besar pada eksekusi berikutnya (misalnya: pada proses yang sudah sangat terlalu lama menunggu eksekusi, sistem operasi menaikkan nilai prioritasnya).

Komunikasi antar proses

(Inter Process Communinication / IPC) :


* Beberapa proses biasanya berkomunikasi dengan proses lainnya.
* Contohnya pada shell pipe line : output dari proses pertama harus diberikan kepada proses ke dua dan seterusnya.
* Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing (berbagi) media penyimpanan, dimana suatu proses dapat membaca dan menulis pada shared storage (main memory atau files).

Mekanisme proses untuk komunikasi dan sinkronisasi aksi

* Sistem Pesan – komunikasi proses satu dengan yang lain dapat dilakukan tanpa perlu pembagian data.
* IPC menyediakan dua operasi :
o send(message) – pesan berukuran pasti atau variabel
o receive(message)
o Jika P dan Q melakukan komunikasi, maka keduanya memerlukan :
+ Membangun jalur komunikasi diantara keduanya
+ Melakukan pertukaran pesan melaui send/receive
o Implementasi jalur komunikasi
+ physical (shared memory, hardware bus)
+ logical (logical properties)

Create and Destroyed Process

* Pembuatan Proses (Create)

Penciptaan proses terjadi karena terdapat batch baru. SO dengan kendali batch job, setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya.

Penciptaan proses melibatkan banyak aktivitas, yaitu :

* Menamai (memberi identitas) proses.
* Menyisipkan proses pada senarai proses atau tabel proses.
* Menentukan prioritas awal proses.
* Menciptakan PCB.
* Mengalokasikan sumber daya awal bagi proses.
* Penghancuran Proses (Destroyed)

Penghancuran proses terjadi karena :

* Selesainya proses secara normal.
* Proses mengeksekusi panggilan layanan So untuk menandakan bahwa proses telah berjalan secara lengkap.
* Batas waktu telah terlewati.
* Proses telah berjalan melebihi batas waktu total yang dispesifikasikan. Terdapat banyak kemungkinan untuk tipe waktu yang diukur, termasuk waktu total yang dijalani (“walk clock time”) jumlah waktu yang dipakai untuk eksekusi, dan jumlah waktu sejak pemakai terakhir kali memberi masukan (pada proses interaktif) .
* Memori tidak tersedia.
* Proses memerlukan memori lebih banyak daripada yang dapat disediakan oleh sistem.
* Pelanggaran terhadap batas memori.
* Proses memcoba mengakses lokasi memori yang tidak diijinkan untuk diakses.
* Terjadi kesalahan karena pelanggaran proteksi.
* Proses berusaha menggunakan sumber daya atau file yang tidak diijinkan dipakainya, atau proses mencoba menggunakannya tidak untuk peruntukannya, seperti menulis file read only.
* Terjadi kesalahan aritmatika.
* Proses mencoba perhitungan terlarang, seperti pembagian dengan nol, atau mencoba menyimpan angka yang lebih besar daripada yang ddapat diakomodasi oleh H/W.
* Waktu telah kadaluwarsa.
* Proses telah menunggu lebih lama daripada maksimum yang telah ditentukan untuk terjadinya suatu kejadian spesfiik.
* Terjadi kegagalan masukan/keluaran.
* Kesalahan muncul pada masukan atau keluaran, seprti ketidakmampuan menemukan file, kegagalan membaca atau mennulis setelah sejumlah maksimum percobaan yang ditentukan (misalnya area rusak didapatkan pada tape,atau operasi tidak valid seperti membaca dari line printer).
* Intruksi yang tidak benar.
* Proses berusaha mengeksekusi instruksi yang tidak ada (sering sebagi akibat pencabangan ke daerah data dan berusaha mengeksekusi data tersebut).
* Terjadi usaha memakai instruksi yang tidak diijinkan.
* Proses berusaha mengeksekusi instruksi yang disimpan untuk SO.
* Kesalahan penggunaan data.
* Bagian data adalah tipe yang salah atau tidak diinisialisasi.
* Diintervensi oleh SO atau operator.
* Untuk suatu alasan, operator atau sistem operasi mengakhiri proses (misalnya terjadi deadlock).
* Berakhirnya proses induk.
* Ketika parent berakhir. So mungkin dirancannng secara otomatis mengakhiri semua anak proses dari parent itu.
* Atas permintaan proses induk.
* Parent process biasanya mempunyai otoritas mengakhiri suatu anak proses.

Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua pendekatan, yaitu :

* Pada beberapa sistem, proses-proses turunan dihancurkan saat proses induk dihancurkan secara otomatis.
* Beberapa sistem lain menganggap proses anak independen terhadap proses induk Proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.

Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :

* Sumber daya-sumber daya yang dipakai dikembalikan.
* Proses dihancurkan dari senarai atau tabel sistem.
* PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).

Threads

Sebagai contoh, jika sebuah proses menjalankan sebuah program Word Processor, ada sebuah thread tunggal dari instruksi-instruksi yang sedang dilaksanakan.

Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat dapat secara terus menerus mengetik dalam karakter dan menjalankan pengecek ejaan didalam proses yang sama. Maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu.

1. 2. Keadaan Proses

1) Running, yaitu suatu kondisi pemroses sedang mengeksekusi instruksi. Benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).

2) Ready, yaitu suatu kondisi proses siap dieksekusi, akan tetapi pemroses belum siap atau sibuk.

3) Blocked, yaitu suatu proses menunggu kejadian untuk melengkapi tugasnya. Bentuk kegiatan menunggu proses yaitu : selesainya kerja dari perangkat I/Otersedianya memori yang cukup.
Transisi Status


1) Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia / meminta layanan I/O sehingga menunggu kejadian muncul.

2) Penjadwalan mengambil proses lain.

3) Penjadwalan mengambil proses ini (baru).

4) Input telah tersedia.

Implementasi Proses :

* Untuk mengimplementasikan model proses, sistem operasi menggunakan suatu tabel / array yang disebut tabel proses dengan 1 entry per-proses.
* Setiap entry berisi tentang : status proses, program counter, stack pointer, alokasi memori, status file, informasi schedulling / penjadwalan informasi, dll dari status kerja ke status siap.

1. 3. Penjadwalan Proses

Kriteria untuk mengukur dan optimasi kinerja penjadwalan :

a) Adil (fairness)

Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami kekurangan waktu.

b) Efisiensi (eficiency)

Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu

sibuk pemroses.

c) Waktu tanggap (response time)

Waktu tanggap berbeda untuk :

1) Sistem interaktif

Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari . perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut terminal response time.

2) Sistem waktu nyata

Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response time.

d) Turn around time

Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu eksekusi + waktu menunggu.

e) Throughput

Adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit/interval waktu

Algoritma Penjadwalan

Berikut jenis-jenis algoritma berdasarkan penjadwalan :

1. Nonpre-emptive, menggunakan konsep :
1. FIFO (First In First Out) atau FCFS (First Come First Serve)
2. SJF (Shortest Job First)
3. HRN (Highest Ratio Next)
4. MFQ (Multiple Feedback Queues)
5. Pre-emptive, menggunakan konsep :
1. RR (Round Robin)
2. SRF (Shortest Remaining First)
3. PS (Priority Schedulling)
4. GS (Guaranteed Schedulling)

Algoritma Pre-emptive

1. A. Round Robin (RR)

Merupakan :

* Penjadwalan yang paling tua, sederhana, adil,banyak digunakan algoritmanya dan mudah diimplementasikan.
* Penjadwalan ini bukan dipreempt oleh proses lain tetapi oleh penjadwal berdasarkan lama waktu berjalannya proses (preempt by time).
* Penjadwalan tanpa prioritas.
* Berasumsi bahwa semua proses memiliki kepentingan yang sama, sehingga tidak ada prioritas tertentu.

Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemroses yang disebut kwanta (quantum) atau time slice dimana proses itu berjalan. Jika proses masih running sampai akhir quantum, maka CPU akan mempreempt proses itu dan memberikannya ke proses lain.

Algoritma yang digunakan :

1) Jika kwanta habis dan proses belum selesai, maka proses menjadi runnable dan pemroses dialihkan ke proses lain.

2) Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.

3) Jika kwanta belum habis tetapi proses telah selesai, maka proses diakhiri dan pemroses dialihkan ke proses lain.

Diimplementasikan dengan :

1) Mengelola senarai proses ready (runnable) sesuai urutan kedatangan.

2) Ambil proses yang berada di ujung depan antrian menjadi running.

3) Bila kwanta belum habis dan proses selesai, maka ambil proses di ujung depan antrian proses ready.

4) Jika kwanta habis dan proses belum selesai, maka tempatkan proses running ke ekor antrian proses ready dan ambil proses di ujung depan antrian proses ready.

Masalah yang timbul adalah menentukan besar kwanta, yaitu :

* Kwanta terlalu besar menyebabkan waktu tanggap besar dan turn arround time rendah.
* Kwanta terlalu kecil menyebabkan peralihan proses terlalu banyak sehingga menurunkan efisiensi proses.

Penjadwalan ini :

* Baik untuk sistem interactive-time sharing dimana kebanyakan waktu dipergunakan menunggu kejadian eksternal.

Contoh : text editor, kebanyakan waktu program adalah untuk menunggu keyboard, sehingga dapat dijalankan proses-proses lain.

* Tidak cocok untuk sistem waktu nyata apalagi hard-real-time applications.

1. B. Priority Schedulling (PS)

Adalah tiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat jatah waktu lebih dulu (running). Berasumsi bahwa masing-masing proses memiliki prioritas tertentu, sehingga akan dilaksanakan berdasar prioritas yang dimilikinya. Ilustrasi yang dapat memperjelas prioritas tersebut adalah dalam komputer militer, dimana proses dari jendral berprioritas 100, proses dari kolonel 90, mayor berprioritas 80, kapten berprioritas 70, letnan berprioritas 60 dan seterusnya. Dalam UNIX perintah untuk mengubah prioritas menggunakan perintah nice.

Pemberian prioritas diberikan secara :

1. Statis (static priorities)

Berarti prioritas tidak berubah.

Keunggulan :

* Mudah diimplementasikan.
* Mempunyai overhead relatif kecil.

Kelemahan :

* Tidak tanggap terhadap perubahan lingkungan yang mungkin menghendaki penyesuaian prioritas.

1. Dinamis (dynamic priorities)

Merupakan mekanisme untuk menanggapi perubahan lingkungan sistem beroperasi. Prioritas awal yang diberikan ke proses mungkin hanya berumur pendek setelah disesuaikan ke nilai yang lebih tepat sesuai lingkungan.

Kelemahan :

* Implementasi mekanisme prioritas dinamis lebih kompleks dan mempunyai overhead lebih besar. Overhead in diimbangi dengan peningkatan daya tanggap sistem.

Dalam algoritma berprioritas dinamis dituntun oleh keputusan untuk memenuhi kebijaksanaan tertentu yang menjadi tujuan. Layanan yang bagus adalah menset prioritas dengan nilai 1/f, dimana f adalah ration kwanta terakhir yang digunakan proses.

Contoh :

* Proses yang menggunakan 2 msec kwanta 100 ms, maka prioritasnya50.
* Proses yang berjalan selama 50 ms sebelum blocked berprioritas 2.
* Proses yang menggunakan seluruh kwanta berprioritas 1.

1. C. Multiple Feedback Queues (MFQ)

Merupakan :

* Penjadwalan berprioritas dinamis.

Penjadwalan ini untuk mencegah (mengurangi) banyaknya swapping dengan proses-proses yang sangat banyak menggunakan pemroses (karena menyelesaikan tugasnya memakan waktu lama) diberi jatah waktu (jumlah kwanta) lebih banyak dalam satu waktu. Penjadwalan ini juga menghendaki kelas-kelas prioritas bagi proses-proses yang ada. Kelas tertinggi berjalan selama satu kwanta, kelas berikutnya berjalan selama dua kwanta, kelas berikutnya berjalan empat kwanta, dan seterusnya.

Ketentuan yang berlaku adalah sebagai berikut :

* Jalankan proses pada kelas tertinggi.
* Jika proses menggunakan seluruh kwanta yang dialokasikan, maka diturunkan kelas prioritasnya.
* Proses yang masuk untuk pertama kali ke sistem langsung diberi kelas tertinggi.

Mekanisme ini mencegah proses yang perlu berjalan lama swapping berkali-kali dan mencegah proses-proses interaktif yang singkat harus menunggu lama.

1. D. Shortest Remaining First (SRF)

Merupakan :

* Penjadwalan berprioritas dinamis.
* Adalah preemptive untuk timesharing.
* Melengkapi SJF.

Pada SRF, proses dengan sisa waktu jalan diestimasi terendah dijalankan, termasuk proses-proses yang baru tiba.

* Pada SJF, begitu proses dieksekusi, proses dijalankan sampai selesai.
* Pada SRF, proses yang sedang berjalan (running) dapat diambil alih proses baru dengan sisa waktu jalan yang diestimasi lebih rendah.

Kelemahan :

* Mempunyai overhead lebih besar dibanding SJF. SRF perlu penyimpanan waktu layanan yang telah dihabiskan job dan kadang-kadang harus menangani peralihan.
* Tibanya proses-proses kecil akan segera dijalankan.
* Job-job lebih lama berarti dengan lama dan variasi waktu tunggu lebih lama dibanding pada SJF.

SRF perlu menyimpan waktu layanan yang telah dihabiskan , menambah overhead. Secara teoritis, SRF memberi waktu tunggu minimum tetapi karena overhead peralihan, maka pada situasi tertentu SFJ bisa memberi kinerja lebih baik dibanding SRF.

1. E. Guaranteed Scheduloing (GS)

Penjadwalan ini memberikan janji yang realistis (memberi daya pemroses yang sama) untuk membuat dan menyesuaikan performance adalah jika ada N pemakai, sehingga setiap proses (pemakai) akan mendapatkan 1/N dari daya pemroses CPU. Untuk mewujudkannya, sistem harus selalu menyimpan informasi tentang jumlah waktu CPU untuk semua proses sejak login dan juga berapa lama pemakai sedang login. Kemudian jumlah waktu CPU, yaitu waktu mulai login dibagi dengan n, sehingga lebih mudah menghitung rasio waktu CPU. Karena jumlah waktu pemroses tiap pemakai dapat diketahui, maka dapat dihitung rasio antara waktu pemroses yang sesungguhnya harus diperoleh, yaitu 1/N waktu pemroses seluruhnya dan waktu pemroses yang telah diperuntukkan proses itu.

Rasio 0,5 berarti sebuah proses hanya punya 0,5 dari apa yang waktu CPU miliki dan rasio 2,0 berarti sebuah proses hanya punya 2,0 dari apa yang waktu CPU miliki. Algoritma akan menjalankan proses dengan rasio paling rendah hingga naik ketingkat lebih tinggi diatas pesaing terdekatnya. Ide sederhana ini dapat diimplementasikan ke sistem real-time dan memiliki penjadwalan berprioritas dinamis.

Algoritma Non Pre-emptive

1. A. First In First Out (FIFO)

Merupakan :

* Penjadwalan tidak berprioritas.

FIFO adalah penjadwalan paling sederhana, yaitu :

* Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan.
* Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.

Penjadwalan ini :

* Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai.

Contoh : aplikasi analisis numerik, maupun pembuatan tabel.

* Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak memberi waktu tanggap yang baik.
* Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).

1. B. Shortest Job First (SJF)

Penjadwalan ini mengasumsikan waktu jalan proses sampai selesai diketahui sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan terpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi dan turn around time rendah dan penjadwalannya tak berprioritas.

Masalah yang muncul adalah :

* Tidak mengetahui ukuran job saat job masuk.

Untuk mengetahui ukuran job adalah dengan membuat estimasi berdasarkan kelakukan sebelumnya.

* Proses yang tidak datang bersamaan, sehingga penetapannya harus dinamis.

Penjadwalan ini jarang digunakan, karena merupakan kajian teoritis untuk pembandingan turn around time.

1. C. Highest Ratio Next (HRN)

Merupakan :

* Penjadwalan berprioritas dinamis.
* Penjadwalan untuk mengoreksi kelemahan SJF.
* Adalah strategi penjadwalan dengan prioritas proses tidak hanya merupakan fungsi waktu layanan tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat jatah pemroses, proses berjalan sampai selesai.

Prioritas dinamis HRN dihitung berdasarkan rumus :

Prioritas = (waktu tunggu + waktu layanan ) / waktu layanan

Karena waktu layanan muncul sebagai pembagi, maka job lebih pendek berprioritas lebih baik, karena waktu tunggu sebagai pembilang maka proses yang telah menunggu lebih lama juga mempunyai kesempatan lebih bagus.

Disebut HRN, karena waktu tunggu ditambah waktu layanan adalah waktu tanggap, yang berarti waktu tanggap tertinggi yang harus dilayani.

Interupsi

Kerja prosesor pada suatu proses terhenti oleh pensaklaran konteks (perubahan kegiatan prosesor dari proses ke proses yang terjadi diantara proses sistem / proses aplikasi).

2 cara interupsi pada processor :

1. 1. Interupsi langsung

Berasal dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk meminta pelayanan)

1. 2. Interupsi Tanya / Polling

Berasal dari prosesor (prosesor secara bergiliran mengecek apakah ada peripheral yang memerlukan pelayanan atau tidak)

* Interupsi dapat di-enable dan disable tergantung pada levelnya.
* Pembangkit interupsi dapat berasal dari :
o Program, di dalam program telah dirancang pada bagian tertentu akan terjadi pensaklaran konteks, yang menimbulkan interupsi, contohnya pada saat penggunaan alat / prosesor secara bergantian.
o Prosesor, prosesor sendiri dapat membangkitkan interupsi, yang biasa mengolah logika dan aritmatika. Jika melampoi ukuran tampung register di dalam prosesor, maka terjadi kekeliruan yang akan menginterupsi kerjanya sendiri dan menyerahkan kendali prosesor pada sistem operasi. Misalnya pembagian dengan bilangan nol.
o Satuan kendali, tugas untuk melaksanakan interupsi terletak pada satuan kendali, sehingga satuan kendali dapat membangkitkan interupsi. Misalnya kekeliruan instruksi
o Kunci waktu / clock, menggunakan interupsi berkala. Misalnya pada program looping yang tak terhingga, diinterupsi pada setiap selang waktu 60 detik.
o Peripheral I/O, I/O jika akan bekerja memberitahukan pada prosesor dengan interupsi prosesor dan juga ketika pekerjaan selesai atau pada saat terjadi kekeliruan paritas.
o Memori, karena terjadi kekeliruan, misalnya ketika prosesor ingin mencapai alamat memori yang terletak di luar bentangan alamat memori yang ada.

Sumber daya lain, misal dibangkitkan oleh operator sistem komputer yang mengerti cara interupsi.

î Interupsi vector : Berisi alamat prosedur service interupsi

î Penerimaan interupsi dan interupsi berganda : ada kalanya interupsi ditolak oleh prosesor atau interupsi yang datang tidak hanya satu sehingga diperlukan prioritas.

Tindak lanjut interupsi :

1. 1. Penata interupsi / interrupt handler

Jika terjadi interupsi, maka kendali prosesor diserahkan ke bagian penata interupsi pada sistem operasi, maka penata interupsi inilah yang melaksanakan interupsi.

1. Instruksi yang sedang diolah oleh prosesor dibiarkan sampai selesai program.
2. Penata interupsi merekam semua informasi proses ke dalam blok kendali proses.
3. Penata interupsi mengidentifikasi jenis dan asal interupsi.
4. Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi.
5. Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses yang diinterupsi.
6. 2. Penata keliru / error handler

yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem operasi yang menata kegiatan akibat kekeliruan adalah penata keliru.

1. Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan pemulihan kekeliruan, contohnya telah dilengkapi dengan sandi Hamming sehingga ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke bentuk semula sebelum terjadi kekeliruan.
2. Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung seperti biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses.
3. Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari monitor, setelah itu prosesor keluar dari proses, ini adalah tindakan terakhir jika tidak dapat menolong proses yang keliru tersebut.

Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi :

1. hardware memasukkan program counter, dl.l.

memasukkan ke dalam stack pencacah program

1. Hardware memuatkan (load) program counter baru dari vector interrupsi
2. Prosedur bahasa rakitan menyimpan isi register
3. Prosedur bahasa rakitan men-set stack yang baru
4. Prosedur C menandai proses servis siap (ready)
5. Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya
6. Prosedur C kembali ke modus bahasa rakitan
7. Prosedur bahasa rakitan memulai proses yang sedang dilaksanakan.

Monday 14 March 2011

tugas kelompok 1 sistem operasi

SEJARAH OPEN SOLARIS
1. Definisi OpenSolaris
Solaris merupakan sebuah sistem operasi keluarga UNIX yang dikembangkan oleh Sun Microsystems Inc. Sedangkan OpenSolaris adalah Sun Solaris yang di Open Souce kan di bawah lisensi CDDL (Common Developer and Distribution Lisence). Open Solaris terdiri dari jutaan baris source code dalam puluhan ribu file.
2. Sejarah OpenSolaris
Pada tahun 1969, Ken Thompson di Lab AT&T Bell menulis versi pertama dari sistem operasi UNIX. UNIX dari awal memang dirancang untuk multitasking dan multiuser dengan interaktif shell yang masih terlihat akrab untuk pengguna UNIX dan Linux. Selama beberapa tahun, Ken Thompson dan Dennis Ritchie terus menyempurnakan UNIX yang umumnya digunakan di dalam Lab AT&T Bell. Namun pada pertengahan akhir tahun 1970-an, UNIX versi 6 dan 7 didistribusikan cukup banyak dan digunakan diberbagai instansi pemerintah dan akademik, termasuk Universitas California di Barkeley. Karena Lisensi yang ringan pada awal versi AT&T’s UNIX, Organisasi lainnya secara signifikan mulai mengubah dan ikut meningkatkan sistem operasi tersebut. Project inilah yang menyebabkan beberapa cabang utama UNIX, dan yang paling relevan dengan OpenSolaris adalah keluarg BSD ( Barkeley Software Distribution ).
Pada tahun 1978, Bill Joy dan rekan-rekannya di Barkeley menambahkan virtual memory, demand paging, dan lain-lain untuk UNIX versi 7 untuk menciptakan sebuah versi UNIX yang disebut 3BSD. Joy dan rekan-rekannya terus meningkatkan BSD UNIX selama beberapa tahun, menambahkan TCP / IP networking, C shell, editor VI dan fitur penting lainnya. Pada tahun 1982, Bill Joy mendirikan Sun Microsystems dan pada 1984 telah menggunakan UNIX BSD sebagai dasar bagi sistem operasi SunOS yang dijalankan di Sun workstation. Sementara it, AT&T terus mengembangkan lini UNIX, yang biasa disebut system V, dan perusahaan lain mngembangkan distro mereka sendiri, seperti Microsoft Xenix (yang kemudian menjadi SCO UNIX).
Pada akhir tahun 1980-an, Sun dan AT&T mulain mengerjakan sebuah proyek bersama untuk remerge beberapa varian popular UNIX untuk menciptakan System V Release 4. Hasilnya, selesai pada tahun 1990, berisi fitur terbaik dari AT&T’s sebelumnya System V Release 3, SunOS, 4.3BSD, dan Xenix 5, termasuk dukungan TCP / IP, Network File System (NFS), Unix File System (UFS), dan Virtual File System (VFS) interface. Selain itu System V Release 4 (SVR4) benar-benar dipenuhi standar Portable Operating System Interface (POSIX), yang mendefinisikan pemrograman aplikasi interface, utilitas dan aspek-aspek lain dari sistem operasi. Secara teori, sebuah program POSIX interface ditulis untuk dapat berjalan pada POSIX-compliant sistem operasi. Pada tahun 1992, SVR4 menjadi dasar dari Sun sistem operasi baru, Solaris 2.0.
Sejak saat itu, Sun terus-menerus memperkuat Solaris dengan fitur seperti kernel lab pengalokasian memori multithreaded kernel dan dukungan proses multithreaded, kernel 64-bit dan banyak lainnya. Rilis terbaru Solaris, Solaris 10, memperkenalkan beberapa fitur baru yang menarik seperti dynamic tracing facility (DTrace), Service Management Facility (SMF), zone, dan ZFS file system. Pada tahun 2005, Solaris menjadi sistem operasi proprietary pertama yang mau merilis versi opensource. Source code yang terbuka pada dasarnya adalah source untuk Solaris 10, yang telah pertama kali diliris sekitar lima bulan sebelumnya. Sejak saat itu, beberapa pengembangan aktif di OpenSolaris telah backported dan diliris di Solaris 10 pembaruan. Sangat penting untuk dicatat bahwa backports dari fitur OpenSolaris ke solaris 10 hanya dapat dilakukan oleh Sun Solaris 10 karena sumber kode ini tidak open source.
Sumber :
http://fredy.web.ugm.ac.id
http://www.itb.ac.id/news/2229.xhtml
http://www.animasikidz.co.cc/2009/12/opensolaris-apaan-sech.html

tugas individu 1 sistem operasi

Sejarah Sistem Operasi dari DOS, Windows sampai Linux
Jangan melupakan sejarah …!
Kalimat ini bukan hanya berlaku di dunia nyata, tetapi juga di dunia komputer, khususnya dunia sistem operasi.
Mempelajari sejarah memang menarik, bahkan sekalipun itu hanya sejarah sistem operasi / operating system (OS) suatu komputer. Paling tidak dengan mempelajari sejarah sistem operasi komputer, wawasan kita bertambah luas dan tidak hanya berkutat pada satu sistem operasi saja.
Artikel ini akan menguraikan sejarah sistem operasi dari DOS, Mac, Windows, BSD, sampai Linux.
1980
QDOS  : Tim Paterson dari Seattle Computer menulis QDOS yang dibuat dari OS terkenal pada masa itu, CP/M. QDOS (Quick and Dirty Operating System) dipasarkan oleh Seatle Computer dengan nama 86-DOS karena dirancang untuk prosesor Intel 8086.
Microsoft : Bill Gates dari Microsoft membeli lisensi QDOS dan menjualnya ke berbagai perusahaan komputer.
1981
PC DOS : IBM meluncurkan PC DOS yang dibeli dari Microsoft untuk komputernya yang berbasis prosesor Intel 8086.
MS DOS : Microsoft menggunakan nama MS DOS untuk OS ini jika dijual oleh perusahaan diluar IBM.
1983
MS DOS 2.0 : Versi 2.0 dari MS DOS diluncurkan pada komputer PC XT.
1984
System 1.0 : Apple meluncurkan Macintosh dengan OS yang diturunkan dari BSD UNIX. System 1.0 merupakan sistem operasi pertama yang telah berbasis grafis dan menggunakan mouse.
MS DOS 3.0 : Microsoft meluncurkan MS DOS 3.0 untuk PC AT yang menggunakan chip Intel 80286 dan yang mulai mendukung penggunaan hard disk lebih dari 10 MB.
MS DOS 3.1 : Microsoft meluncurkan MS DOS 3.1 yang memberikan dukungan untuk jaringan.
1985
MS Windows 1.0 : Microsoft memperkenalkan MS Windows, sistem operasi yang telah menyediakan  lingkungan berbasis grafis (GUI) dan kemampuan multitasking. Sayangnya sistem operasi ini sangat buruk performanya dan tidak mampu menyamai kesuksesan Apple.
Novell Netware : Novell meluncurkan sistem operasi berbasis jaringan Netware 86 yang dibuat untuk prosesor Intel 8086.
1986
MS DOS 3.2 : Microsoft meluncurkan MS DOS 3.2 yang menambahkan dukungan untuk floppy  3.5 inch 720 KB.
1987
OS/2 : IBM memperkenalkan OS/2 yang telah berbasis grafis, sebagai calon pengganti IBM PC DOS.
MS DOS 3.3 : Microsoft meluncurkan MS DOS 3.3 yang merupakan versi paling populer dari MS DOS.
Windows 2.0 : Windows versi 2.0 diperkenalkan.
MINIX : Andrew S. Tanenbaum mengembangkan Minix, sistem operasi berbasis Unix yang ditujukan  untuk pendidikan. MINIX nantinya menginspirasi pembuatan Linux.
1988
MS DOS 4.0 : Microsoft mengeluarkan MS DOS 4.0 dengan suasana grafis.
WWW : Proposal World Wide Web (WWW) oleh Tim Berners Lee.
1989
NetWare/386 (juga dikenal sebagai versi 3) diluncurkan oleh Novell untuk prosesor Intel 80386.
1990
Perpisahan : Dua perusahaan raksasa berpisah, IBM berjalan dengan OS/2 dan Microsoft berkonsentrasi pada Windows.
Windows 3.0 : Microsoft meluncurkan Windows versi 3.0 yang mendapat sambutan cukup baik.
MS Office : Microsoft membundel Word, Excel, dan PowerPoint untuk menyingkirkan saingannya seperti Lotus 1 2 3, Wordstar, Word Perfect dan Quattro.
DR DOS : Digital Research memperkenalkan DR DOS 5.0.
1991
Linux 0.01 : Mahasiswa Helsinki bernama Linus Torvalds mengembangkan OS berbasis Unix dari sistem operasi Minix yang diberi nama Linux.
MS DOS 5.0 : Microsoft meluncurkan MS DOS 5.0 dengan penambahan fasilitas full -screen editor,  undelete, unformat dan Qbasic.
1992
Windows 3.1 : Microsoft meluncurkan Windows 3.1 dan kemudian Windows for Workgroups 3.11 di tahun berikutnya.
386 BSD : OS berbasis Open Source turunan dari BSD Unix didistribusikan oleh Bill Jolitz setelah meninggalkan Berkeley Software Design, Inc (BSDI). 386 BSD nantinya menjadi induk dari proyek Open Source BSD lainnya, seperti NetBSD, FreeBSD, dan OpenBSD.
Distro Linux : Linux didistribusikan dalam format distro yang merupakan gabungan dari OS plus program aplikasi. Distro pertama Linux dikenal sebagai SLS (Softlanding Linux System).
1993
Windows NT : Microsoft meluncurkan Windows NT, OS pertama berbasis grafis tanpa DOS  didalamnya yang direncanakan untuk server jaringan.
Web Browser : NCSA memperkenalkan rilis pertama Mosaic, browser web untuk Internet.
MS DOS 6.0 : Microsoft memperkenalkan MS DOS 6.0 Upgrade, yang mencakup program kompresi  harddisk DoubleSpace.
Slackware : Patrick Volkerding mendistribusikan Slackware Linux yang menjadi distro populer pertama di kalangan pengguna Linux.
Debian : Ian Murdock dari Free Software Foundation (FSF) membuat OS berbasis Linux dengan nama Debian.
MS DOS 6.2 : Microsoft meluncurkan MS DOS 6.2.
NetBSD : Proyek baru OS berbasis Open Source yang dikembangkan dari 386BSD dibuat dengan menggunakan nama NetBSD.
FreeBSD : Menyusul NetBSD, satu lagi proyek yang juga dikembangkan dari 386BSD dibuat dengan  nama FreeBSD.
1994
Netscape : Internet meraih popularitas besar saat Netscape memperkenalkan Navigator sebagai browser Internet.
MS DOS 6.22 : Microsoft meluncurkan MS DOS 6.22 dengan program kompresi bernama DriveSpace. Ini merupakan versi terakhir dari MS DOS.
FreeDOS : Jim Hall, mahasiswa dari Universitas Wisconsin River Falls Development mengembangkan FreeDOS. FreeDOS dibuat setelah Microsoft berniat menghentikan dukungannya untuk DOS dan menggantikannya dengan Windows 95.
SuSE : OS Linux versi Jerman dikembangkan oleh Software und System Entwicklung GmbH (SuSE) dan dibuat dari distro Linux pertama, SLS.
Red Hat : Marc Ewing memulai pembuatan distro Red Hat Linux.
1995
Windows 95 : Microsoft meluncurkan Windows 95 dengan lagu Start Me Up dari Rolling Stones dan terjual lebih dari 1 juta salinan dalam waktu 4 hari.
PC DOS 7 : IBM memperkenalkan PC DOS 7 yang terintegrasi dengan program populer pengkompres data Stacker dari Stac Electronics. Ini merupakan versi terakhir dari IBM PC DOS.
Windows CE : Versi pertama Windows CE diperkenalkan ke publik.
PalmOS : Palm menjadi populer dengan PalmOS untuk PDA.
OpenBSD : Theo de Raadt pencetus NetBSD mengembangkan OpenBSD.
1996
Windows NT 4.0 : Microsoft meluncurkan Windows NT versi 4.0
1997
Mac OS : Untuk pertama kalinya Apple memperkenalkan penggunaan nama Mac OS pada Mac OS 7.6.
1998
Windows 98  : Web browser Internet Explorer menjadi bagian penting dari Windows 98 dan berhasil  menumbangkan dominasi Netscape Navigator.
Server Linux : Linux mendapat dukungan dari banyak perusahaan besar, seperti IBM, Sun Microsystem dan Hewlet Packard. Server berbasis Linux mulai banyak dipergunakan menggantikan  server berbasis Windows NT.
Google : Search Engine terbaik hadir di Internet dan diketahui menggunakan Linux sebagai  servernya.
Japan Goes Linux : TurboLinux diluncurkan di Jepang dan segera menjadi OS favorit di Asia, khususnya di Jepang, China dan Korea.
Mandrake : Gael Duval dari Brazil mengembangkan distro Mandrake yang diturunkan dari Red Hat.
1999
Support : Hewlett Packard mengumumkan  layanan 24/7 untuk distro Caldera, Turbo Linux, Red Hat dan SuSE.
Corel Linux : Corel pembuat program Corel Draw, yang sebelumnya telah menyediakan Word Perfect versi Linux, ikut membuat OS berbasis Linux dengan nama Corel Linux dan yang  nantinya beralih nama menjadi Xandros.
2000
Mac OS/X : Mac OS diganti dengan mesin berbasis BSD Unix dengan kernel yang disebut sebagai Mac OS/X.
Windows 2000: Microsoft meluncurkan Windows 2000 sebagai penerus Windows NT.
Windows Me : Microsoft meluncurkan Windows Me, versi terakhir dari Windows 95.
China Goes Linux : Red Flag Linux diluncurkan dari Republik Rakyat China.
Microsoft vs IBM : CEO Microsoft Steve Ballmer menyebut Linux sebagai kanker dalam sebuah  interview dengan Chicago Sun Times. Di lain pihak, CEO IBM Louis Gartsner menyatakan dukungan  pada Linux dengan menginvestasikan $ 1 milyar untuk pengembangan Linux.
2001
Windows XP : Microsoft memperkenalkan Windows XP.
Lindows: Michael Robertson, pendiri MP3.com, memulai pengembangan Lindows yang diturunkan dari Debian. Nantinya Lindows berganti nama menjadi Linspire karena adanya tuntutan  perubahan nama oleh Microsoft.
2002
Open Office : Program perkantoran berbasis Open Source diluncurkan oleh Sun Microsystem.
OS Lokal : OS buatan anak negeri berbasis Linux mulai bermunculan, diantaranya Trustix Merdeka,  WinBI, RimbaLinux, Komura.
2003
Windows 2003 : Microsoft meluncurkan Windows Server 2003.
Fedora : Redhat mengumumkan distro Fedora Core sebagai penggantinya. Nantinya ada beberapa distro lokal yang dibuat berbasiskan Fedora, seperti BlankOn 1.0 dan IGOS Nusantara.
Novell : Ximian, perusahaan pengembang software berbasis Linux dibeli oleh Novell, begitu juga halnya dengan SuSE yang diakuisisi oleh Novell.
LiveCD : Knoppix merupakan distro pertama Linux yang dikembangkan dengan konsep LiveCD  yang bisa dipergunakan tanpa harus diinstal  terlebih dahulu. Distro lokal yang dibuat dari Knoppix  adalah Linux Sehat dan Waroeng IGOS.
2004
Ubuntu : Versi pertama Ubuntu diluncurkan dan didistribusikan ke seluruh dunia. Ada beberapa  versi distro yang dikeluarkan, yaitu Ubuntu (berbasis Gnome), Kubuntu (berbasis KDE), Xubuntu (berbasis XFCE), dan Edubuntu (untuk pendidikan).
2005
Mandriva : Mandrake bergabung dengan Conectiva dan berganti nama menjadi Mandriva.
2006
Unbreakable Linux : Oracle ikut membuat distro berbasis Linux yang diturunkan dari Red Hat Enterprise.
CHIPLux : Distro lokal terus bermunculan di tahun ini, bahkan Majalah CHIP yang lebih banyak memberikan pembahasan tentang Windows juga tidak ketinggalan membuat distro Linux dengan nama CHIPLux, yang diturunkan dari distro lokal PC LINUX dari keluarga PCLinuxOS (varian Mandriva). CHIPLux merupakan distro lokal pertama yang didistribusikan dalam format DVD.
2007
Vista : Setelah tertunda untuk beberapa lama, Microsoft akhirnya meluncurkan Windows Vista. Windows Vista memperkenalkan fitur 3D Desktop dengan Aero Glass, SideBar, dan Flip 3D. Sayangnya semua keindahan ini harus dibayar mahal dengan kebutuhan spesifikasi komputer yang sangat tinggi.
2008
3D OS : Tidak seperti halnya Vista yang membutuhkan spesifikasi tinggi, 3D Desktop di Linux muncul dengan spesifikasi komputer yang sangat ringan. Era hadirnya teknologi 3D Desktop di Indonesia ditandai dengan hadirnya sistem operasi 3D OS yang dikembangkan oleh PC LINUX. Ada beberapa versi yang disediakan, yaitu versi 3D OS untuk pengguna umum serta versi distro warnet Linux dan game center Linux.

Read more: http://www.pclinux3d.com/linux/sejarah-sistem-operasi-dari-dos-windows-sampai-linux.html#ixzz1G6istT4Q