Jumat, 21 Mei 2010

Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau komponen- komponenya mempunyai nilai dengan tipe data tersebut.
Contoh:
Var
Untai : array[1..50] of Integer;
Pada contoh Array dengan nama untai telah dideklarasikan dengan tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut diatas harus bertipe integer.

Contoh Program :
Program Contoh_Array_Input;
Uses Crt;
Var
Bilangan : array[1..50] of Integer;
Begin
ClrScr;
Bilangan[1]:=3;
Bilangan[2]:=29;
Bilangan[3]:=30;
Bilangan[4]:=31;
Bilangan[5]:=23;
Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);
Readln;
End.

Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini :
Program Contoh_Deklarasi_Array_Beragam;
Uses Crt;
Var
NPM : array[1..20] of string[10];
Nama : array[1..20] of string[25];
Nilai : array[1..20] of real;
Umur : array[1..20] of byte;
banyak,i : integer;
Begin
ClrScr;
Write('Isi berapa data array yang diperlukan :');Readln(banyak);
For i := 1 to banyak Do
Begin
Write('NPM =');Readln(NPM[i]);
Write('Nama =');readln(Nama[i]);
Write('Nilai=');readln(Nilai[i]);
Write('Umur =');readln(Umur[i]);
End;
{cetak varibel array}
Writeln('NPM NAMA NILAI UMUR ');
For i:= 1 to banyak Do
Begin
Writeln(Npm[i]:10,Nama[i]:25,Nilai[i]:3:2,' ',Umur[i]:3);
End;
Readln;
End.

Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini :
Type
Angka = String[20];
Var
Nama : Array [1..50] of Angka;
Begin
.
.
End.

Deklarasi tipe indeks subrange integer Indeks pada array dapat tipe skalar atau subrange, tetapi tidak bisa real.
Contoh:
Var
Nilai : Array[1..10] of Integer;
pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10. Array tersebut dapat dideklarasikan dengan type seperti berikut ini :

Type
Skala = 1..10;
Var
Nilai : Array [skala] of Integer;
atau :
Type
Skala = 1..10;
Y = Array[skala] of Integer;
Var
Nilai : Y;
atau :
Type
Y = Array[1..10] of Integer;
Var
Nilai : Y;
atau :
Const
Atas =1;
Bawah = 5;
type
Y = Array[Atas..Bawah] of Integer;
Var
Nilai : Y;

I. Deklarasi Type Indeks Skalar
Indeks dari larik dapat berupa tipe skalar.
Contoh. :
Program Deklarasi_Indeks_Array_Skalar;
Uses Crt;
Var
Jum : Array[(jan,feb,mar,apr,mei)] of Integer;
Begin
Jum[jan]:=25;
Jum[feb]:=45;
Jum[mar]:=21;
Jum[apr]:=23;
Jum[mei]:=50;
Writeln('Jumlah nilai bulan maret =',Jum[mar]);
Readln;
End.
dapat juga ditulis :
type
Bln = (jan,feb,mar,apr,mei);
Var
Jum : Array[bln] of Integer;
atau :
type
Bln =(jan,feb,mar,apr,mei);
Var
Jum : Array[jan..mei] of Integer;

II. Deklarasi Konstanta Array
Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi variabel, tetapi dapat juga berupa konstanta (const).
Contoh Program :
Program Contoh_Deklarasi_Array_Konstan;
Uses Crt;
Const
Tetap : Array[1..4] of Integer=(7,10,21,20);
Var
i : Integer;
Begin
For i:= 1 to 4 Do
Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]);
Readln;
End.
konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut.
Contoh Program :
Program Contoh_Konstan_Array_Char_;
Uses Crt;
Const
Huruf : Array[0..5] of Char=('A','B','C','D','E','F');
Var
i : Integer;
Begin
For i:= 0 to 5 Do
Writeln('Nilai konstan array ke',i:2,' = ',Huruf[i]);
Readln;
End.
Konstanta array dapat juga berupa string seperti berikut ini.
Contoh Program :
Program Constanta_Array_String;
Uses Crt;
Type
A = Array [1..5] of String;
Const
Nama : A = ('basic','pascal','cobol','paradox','dbase');
Var
i : Integer;
Begin
For i:= 1 to 5 Do
Writeln('Nilai Array ke-',i:2,'= ',Nama[i]);
readln;
end.

Dalam pascal string merupakan array dari elemen- elemen karakter seperti berikut :
Contoh Program :
Program String_Adalah_Array_Tipe_Char;
Uses Crt;
Var
Nama : string;
i : Integer;
Begin
Nama:='Turbo Pascal';
For i:= 1 to Length(nama) Do
Writeln('Elemen ',i,' dari ',Nama,'= ',Nama[i]);
Readln;
End.

contoh program bilangan prima dengan menggunakan bantuan array.
Contoh program :
Program Mencari_Bilangan_Prima_Dengan_Array;
Uses Crt;
Var
Prima : Array[1..100] of Integer;
i,j : Integer;
bil : Integer;
Begin
ClrScr;
For i := 2 to 100 Do
Begin
Prima[i]:=i;
For j:= 2 to i-1 Do
Begin
bil := (i mod j); {* i dibagi j dicek apakah 0*}
If bil = 0 then Prima[i]:=0; {*jika habis dibagi,berarti bkn prima*}
End;
If Prima[i]<> 0 Then Write(Prima[i],' '); {*cetak array yg prima*}
End;
Readln;
End.

Contoh pengurutan data dengan metode buble sort, yaitu dengan cara penukaran, dapat dilihat pada contoh dibawah ini :
Contoh Program :
Program Penggunaan_Array_Untuk_Sortir_Buble_Sort;
Uses Crt;
Var
nil1 : Array[1..100] of Integer;
n,i,j,dum : Integer;
Begin
ClrScr;
Write('mau isi berapa data acak (integer) ='); readln(n);
For i := 1 to n Do
Begin
Write('Data Ke ',i,':');Readln(nil1[i]);
End;
{* penyapuan proses}
for i:= 1 to n-1 do
begin
for j:= i to n do
begin
if nil1[j]
begin
dum:=nil1[j];
nil1[j]:=nil1[i];
nil1[i]:=dum;
end;
end;
end;
writeln;
writeln('Hasil Sortir');
for i := 1 to n do
write(nil1[i]:3);
readln;
end.


III. Array Dua Dimensi
Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik.
1 2
1 2 3
Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat pada listing program dibawah ini .

Contoh Program:
Program Deklarasi_Array_Dua_Dimensi;
Uses Crt;
Var Tabel : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
Tabel[1,1]:=1;
Tabel[1,2]:=2;
Tabel[2,1]:=3;
Tabel[2,2]:=4;
Tabel[3,1]:=5;
Tabel[3,2]:=6;
For I := 1 to 3 Do Begin For J:= 1 to 2 Do Begin Writeln('Elemen ',i,',',j,'= ',tabel[i,j]);
End;
End;
Readln;
End.


IV. Alternatif Deklarasi Array Dua Dimensi.
Ada beberapa cara dalam mendeklarasikan array dua dimensi, beberapa cara tersebut dapat dilihat dibawah ini :
Contoh :
Var
Tabel : Array[1..3] of Array[1..2] of Byte;
atau :
Type
Matrik = Array[1..3,1..2] of Byte;
Var
Tabel : Matrik;
atau :
Type
Baris = 1..3;
Kolom = 1..2;
Matrik = Array[Baris,Kolom] of Byte;
Var
Tabel : Matrik;
atau :
Type
Baris = 1..3;
Kolom=1..2;
Matrik= Array[Baris] of Array[Kolom] of Byte;
Var
Tabel : Matrik;
Dibawah ini akan diberikan listing program penggunaan array dua dimensi dalam aplikasi penjumlahan matrik :
Contoh Prorgam:
Program Penjumlahan_Matrik;
Uses Crt;
Var
Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
{ input matrik ke satu }
Writeln(' Elemen matrik satu');
For i := 1 to 3 Do
Begin
For j := 1 to 2 Do
Begin
Write('Elemen baris -',i,' Kolom -',j,'= ');
Readln(matrik1[i,j]);
End;
End;
{input matrik ke dua}
Writeln('input elemen matrik dua');
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write('Elemen baris -',i,' kolom -',j,'= ');
Readln(matrik2[i,j]);
End;
End;
{proses penjumlahan tiap elemen}
For i := 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j];
End;
End;
{proses cetak hasil}
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write(Hasil[i,j]:6);
End;
Writeln;
End;
Readln;
End.


V. Array Sebagai Parameter
Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai (by value) atau secara acuan (by reference) ke procedure atau ke function. Procedure yang menggunakan parameter berupa array harus dideklarasikan di dalam judul procedure yang menyebutkan parameternya bertipe array.

Contoh Program :
Program Contoh_Pengiriman_Parameter_Array_Di_Procedure;
Uses Crt;
Const
Garis ='---------------------------------------------------';
Type
Untai = Array[1..10] of String[15];
Bulat = Array[1..10] of Integer;
Huruf = Array[1..10] of Char;
Var
i,Banyak : Integer;
Procedure Proses(Nama:Untai;Nilai:Bulat);
Var
Ket : String;
Abjad : Char;
Begin
Writeln(Garis);
Writeln('Nama Nilai Abjad Keterangan');
Writeln(Garis);
For i := 1 to Banyak Do
Begin
If Nilai[i] > 90 Then
Begin
Abjad:='A';
Ket :='Istimewa';
End;
If (Nilai[i]<90) And (Nilai[i]>70) Then
Begin
Abjad:='B';
Ket :='Memuaskan';
End;
If (Nilai[i]<70) And (Nilai[i]>60) Then
Begin
Abjad:='C';
Ket :='Cukup';
End;
If (Nilai[i]<60) And (Nilai[i]>45) Then
Begin
Abjad:='D';
Ket :='Kurang';
End;
If Nilai[i]< 45 Then
Begin
Abjad:='E';
Ket :='Sangat kurang';
End;
Writeln(Nama[i]:15,' ',Nilai[i]:4,' ',Abjad,' ',Ket:15);
End;
Writeln(Garis);
End;
Procedure Masuk_Data;
Var
Nama : Untai;
Nilai : Bulat;
Begin
Write('Banyak data =');Readln(Banyak);
For i:= 1 to Banyak Do
Begin
ClrScr;
Writeln('Data ke - ',i);
Write('Nama =');readln(Nama[i]);
Write('Nilai =');readln(Nilai[i]);
End;
Proses(Nama,Nilai);
End;
{modul Utama}
Begin
Masuk_Data;
Readln;
End.
Referensi :
# Lepkom Universitas Gunadarma.
# Dasar-dasar Pemrograman Pascal, Teori dan Program terapan , Ir.P. Insap Santosa, M.Sc.

Sabtu, 08 Mei 2010

Sistem Operasi (SO)
Posted on September 30, 2007 by panjitapen

Apa itu Sistem Operasi ?

Untuk memahami sistem operasi, terdapat dua pendekatan fungsi :

1.
1.
1.

Sistem Operasi sebagai Extended Machine ( Perluasan Mesin )

*

Pendekatan fungsi ditinjau dari arah pengguna atau top down view
*

Dilakukan berdasarkan pada kenyataan bahwa struktur internal sistem komputer pada aras bahasa mesin sangat primitif dan tidak fleksibel untuk pemrograman terutama untuk proses input/output
*

Sistem operasi dibuat untuk menyembunyikan keadaan sesungguhnya dari perangkat keras dengan tampilan yang menyenangkan dan mudah digunakan
*

Disini sistem operasi berperan sebagai penyedia interface yang sesuai berupa perluasan mesin (extended machine) atau mesin semu (virtual machine)

1.1.2. Sistem Operasi sebagai Resources Manager ( Pengelola Sumberdaya )

*

Pendekatan fungsi ditinjau dari arah perangkat keras atau bottom up view
*

Sistem operasi beperan untuk mengatur , mengorganisasikan, mengoperasikan secara keseluruhan bagian sistem yang kompleks
*

Sistem operasi mengontrol alokasi sumberdaya sistem komputer (pemroses, memori, piranti I/O) untuk berbagai program yang akan memakainya

1.
1.

Sejarah Perkembangan Sistem Operasi

1.
1.
1.

Generasi Pertama ( 1945 -1955 ) : Tabung Hampa dan Plugboard

*

belum ada bahasa pemrograman selain bahasa mesin
*

satu pekerjaan menggunakan satu mesin

1.
1.
1.

Generasi Kedua ( 1955 -1956 ) : Transisteor dan Sistem Batch

*

bahasa pemrograman Fortran atau Assembler
*

system batch : mengumpulkan sejumlah job (program) dibaca ke dalam suatu tape melalui computer tertentu ( IBM 1401), kemudian tape tersebut menjadi masukan untuk computer berikutnya (IBM 7094) yang akan menjalankan program dan melakukan komputasi, hasilnya dituliskan kembali kedalam tape dan menjadi masukan computer pertama untuk dicetak
*

system operasi : FMS ( Fortran Monitor System ), IBSYS

1.
1.
1.

Generasi Ketiga ( 1965 -1980 ) : IC dan Multiprograming

*

multiprogramming : dimaksudkan untuk mengoptimasi semua sumberdaya system computer yang tersedia, karena adanya kesenjangan proses terutama antara CPU dengan piranti I/O.

Beberapa proses berada pada saat yang sama, dengan cara mempartisi memori kedalam beberapa bagian dan menempatkan job yang berbeda pada setiap setiap partisi.

*

time sharing : variant dari multiprogramming dimana tiap pengguna mempunyai online terminal, jadi dimungkinkan adanya banyak penggunayang dapat log-in ke dalam suatu system computer.

Pengguna dialokasikan pada selang waktu yang singkat secara bergantian

*

spooling : simultaneous peripheral operation on line dimaksudkan untuk meningkatkan proses I/O yang berkaitan dengan proses baca dan tulis
*

system operasi: UNIX

1.
1.
1.

Generasi Keempat ( 1980 -1990 ) : Personal Komputer

*

system operasi

single user : MS-DOS

multi user : UNIX

*

network operating system
*

distributed operating system



1.
1.

Konsep Sistem Operasi

1.
1.
1.

Proses : program yang sedang berjalan /dieksekusi

Tiap proses terdiri dari bagian program, data dan stack program, program counter, stack pointer dan beberapa register yang lain, serta informasi lain yang dibutuhkan

Sistem timesharing : secara periodik sistem operasi akan memeriksa proses-proses yang sedang berjalan dan mengatur waktu penggunaan prosessor bagi proses-proses tersebut

System call untuk pengelolaan proses, berkaitan erat dengan pembentukan pembentukan proses serta akhir suatu proses

1.
1.
1.

File

System calls juga berhubungan dengan pengelolaan sistem file.

System calls ini harus dapat membuat file, menghapus file, membaca file, dan menulis file.

System calls harus mendukung pembuatan dan penghapusan direktori

Organisai file dibuat dala bentuk pohon (tree)

1.
1.
1.

System Calls

Program pengguna dapat berkomunikasi dengan sistem operasi untuk meminta pelayanannya melalui system calls.

Penghubung ke setiap system calls ini adalah suatu prosedur pustaka yang dapat dipanggil oleh program pengguna.

System calls memberikan layanan untuk :

*
o

Manajemen proses
o

Manajemen file
o

Manajemen directory

1.
1.
1.

Shell

Sistem operasi adalah pengelola system calls dan sebagai antarmuka antara pengguna dengan perangkat keras.

Antarmuka antara pengguna dengan sistem operasi disebut shell (Unix) atau command interpreter (MS-DOS)

Aktifnya shell ditandai dengan munculnya tanda prompt $ (UNIX) atau karakter > (MS-DOS)

1.
1.

Struktur Sistem Operasi
1.

Sistem Monolitik

*

Terdiri atas kumpulan beberapa prosedur
*

Terdapat dua mode operasi yang disediakan :

*
o

Mode kernel : seluruh instruksi boleh dipanggil
o

Mode pengguna : beberapa instruksi I/O dan instruksi tertentu tidak boleh dipanggil

*

Struktur dasar sistem monolitik :

*
o

Program utama yang menghubungi prosedur pelayanan yang diminta
o

Kumpulan prosedur pelayanan yang menyediakan system calls
o

Kumpulan prosedur utilitas yang membantu prosedur pelayanan

1.
1.
1.

Sistem Berlapis (Layered)

*
o
+

Sistem operasi diorganisasikan sebagai hirarki layer
+

Sistem pertama yang dibuat denga struktur ini adalah strukrut THE oleh E.W Dijkstra
+

Direalisasikan dengan 6 layer
o

Layer 0 : berhubungan dengan alokasi prosesor, pemindahan proses ketika terjadi interupsi atau alokasi waktu habis dan multiprogramming
o

Layer 1 : melakukan pengelolaan memori. Proses, baik dimemori utamaatau dalam drum akan segera ditransfer ke memori utama pada saat diperlukan
o

Layer 2 : menangani komunikasi antara proses dengan operator
o

Layer 3 : mengelola piranti I/O, dan menyimpan aliran informasi antar piranti ke dalam buffer
o

Layer 4 : tempat program pengguna berada, tanpa memikirkan pengelolaan proses, memori console dan piranti I/O
o

Layer 5 : tempat proses sistem operator

1.
1.
1.

Virtual Machine

*

Sistem timesharing : Menyediakan kemampuan untuk multiprogramming dan perluasan mesin dengan antarmuka yang lebih mudah
*

Struktur virtual machine ( CP/CMS, VM/370 ) terdiri atas komponen dasar utama :

*
o

Control Program, yaitu virtual machine monitor yang mengatur fungsi ari prosessor, memori dan piranti I/O. Komponen ini berhubungan langsung dengan perangkat keras
o

Conventional Monitor System, yaitu sistem operasi sederhanayang mengatur fungsi dari proses, pengelolaan informasi dan pengelolaan piranti.

1.
1.
1.

Model Client-Server

*

Kecenderungan SO modern adalah menyederhanakan struktur sistem operasi dengan menaikkan sebanyank mungkin fungsi so ke layer yang lebih atas dan meninggalkan mode kernel yang seminimal mungkin
*

Mengimplementasikansebagian besar fungsi SO pada proses pengguna
*

Dengan membagi SO dalam bagian-bagian yang menangani pelayanan file, pelayanan proses, pelayanan terminal, pelayanan memori menjadikan SO mudah dikelola
*

Untuk melayani suatu permintaan, proses pengguna sebagai proses client mengirimkan permintaan ke server proses, yang kemudian akan mengerjakan dan mengirimkan kembali jawaban
*

Pada model ini kernel hanya menangani komunikasi antar client dan server
*

Semua server dijalankan sebagai proses pada mode pengguna, tidak pada mode kernel , maka tidak ada akses langsung terhadap perangkat keras sehingga misalnya jika ada kerusakan pada file server, maka pelayanan file tidak dapat diberikan tetapi tidak menyebabkan seluruh sistem berhenti



KONSEP PROSES

2.1. Model Proses dan Implementasinya

Dalam model ini seluruh software yang berjalan di komputer diorganisasikan dalam sejumlah proses sekuensial (proses).

Secara konseptual, setiap proses mempunyai virtual CPU, namun dalam kenyataan CPU akan berpindah dari satu proses ke proses yang lain (multiprogramming)

1.

Terdapat 4 program di memori yang berjalan secara multiprogramming
2.

Program-program tersebut diabstraksikan menjadi 4 proses, yang masing-masing mempunyai flow kontrol dam berjalan secara independen
3.

Dari grafik waktu terhadap proses terlihat selama interval waktu tertentu, seluruh proses berjalan tapi dalam satu interval waktu hanya ada satu proses yang berjalan

2.1.1. Hirarki Proses

Sistem operasi yang mendukung konsep mengenai proses harus menyediakan suatu cara untuk mengcreate semua proses yang diperlukan

Untuk system yang sederhana sangat mungkin bahwa semua proses yang akan diperlukan harus sudah ada pada saat system dihidupkan.

Pada kebanyakan system , perlu suatu cara tertentu untuk dapat menciptakan dan menghapus proses yang diperlukan selama operasi.

Suatu proses dapat membentuk sub proses dan subproses dapat membentuk subproses yang lain, sehingga secara keseluruhan membentuk struktur pohon.

2.1.2. Status Proses

Pada suatu saat proses akan berada dalam status tertentu yang menggambarkan keadaan proses tersebut .

Status Proses :

1.

Running : proses sedang menggunakan CPU
2.

Blocked : proses tidak dapat berjalan sampai terjadinya event eksternal
3.

Ready : proses siap dijalankan, sementara dihentikan agar proses yang lain berjalan

Transisi yang mungkin terjadi antara status proses :

1.

Running ke blocked : transisi terjadi ketika sebuah proses tidak dapat dilanjutkan, misalnya karena sedang menunggu proses eksternal
2.

Running ke ready : terjadi ketika Scheduler memutuskan bahwa proses yang sedang berjalan telah cukup lama dijalankan, dan sudah waktunya untuk memberi kesempatan proses yang lain berjalan
3.

Ready ke running : terjadi ketika seluruh proses telah mendapat kesempatan menggunakan prosesor dan sudah waktunya proses yang pertama berjalan kembali
4.

Blocked ke ready : terjadi ketika event eksternal yang ditunggu proses terjadi (contoh proses menunggu kedatangan sejumlah input). Jika tidak ada proses yang berjalan, maka transisi 3 akan segera terjadi dan proses akan mulai berjalan

Selain model diatas terdapat pula model model sebagai berikut :

*

Model Dua Status
*

Model Lima Status
*

Penambahan status Suspend pada model Lima Status

2.1.3. Implementasi Proses

1.
1.

Tabel Proses
2.

Penerapan Mekanisme Interupsi pada Sistem Multi Programming

2.2. Penjadwalan Proses

Untuk meminimalkan waktu tanggap pengguna interaktif, penjadwal sama sekali tidak dapat menjalankan proses batch, umumnya algoritma yang mementingkan salah satu kelas proses akan merugikan kelas proses yang lain

Kesulitan yang lain yang ditemui pada penjadwalan proses adalah setiap proses bersifat unik dan tidak dapat diduga sehingga membutuhkan suatu strategi yang tetap untuk mengatasinya

Preemptive Scheduling : strategi penjadwalan yang memungkinkan proses yang sedang berjalan dihentikan

Non Preemptive Scheduling / run to complete : tidak memungkinkan proses yang sedang berjalan dihentikan

2.2.1. Algoritma Penjadwalan

1.

Penjadwalan Round Robin
2.

Penjadwalan dengan Prioritas ( Priority Scheduling )
3.

Penjadwalan Antrian Ganda ( Multiple Queues Scheduling )
4.

Penjadwalan Job Terpendek lebih dahulu ( Shortest Job First Scheduling )
5.

Penjadwalan Policy Driven ( Policy Driven Scheduling )
6.

Penjadwalan Dua Tingkat ( Two Level Scheduling )

2.2.2. Implementasi dan Evaluasi Algoritma Penjadwalan Proses

2.2.3. Mekanisme vs Kebijakan

2.3. Komunikasi Antar Proses

KONGKURENSI

KONGKURENSI

*

Proses-proses disebut kongkuren jika proses-proses berada / berjalan pada saat yang sama.
*

Proses-proses kongkuren dapat sepenuhnya tidak bergantung dengan lainnya, tetapi dapat juga saling berinteraksi
*

Proses-proses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik.

Masalah-masalah yang dapat muncul pada proses-proses kongkuren yang saling berinteraksi :

*

Mutual Exclusion
*

Deadlock
*

Starvation
*

Sinkronisasi

Prinsip-prinsip Kongkurensi

*

Alokasi waktu pemroses untuk proses-proses
*

Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
*

Komunikasi antar proses
*

Sinkronisasi aktivitas banyak proses

Mutual Exclusion

*

Terdapat sumber daya yang tak dapat dipakai bersama pada saat bersamaan

Sumber daya ini disebut critical section/region

*

Hanya satu proses pada suatu saat yang diijinkan untuk masuk critical section
*

Terdapat beberapa mekanisme yang menjamin Mutual Exclusion
*

Pemaksaan adanya mutual exclusion menimbulkan deadlock dan starvation

Deadlock

*

Ilustrasi Deadlock

Misalnya :

*

dua proses P1 dan P2
*

dua sumber daya kritis R1 dan R2
*

Proses P1 dan P2 harus mengakses kedua sumber daya

Kondisi berikut dapat terjadi : R1 diberikan ke P1, sedang R2 diberikan ke P2.

Karena untuk melanjutkan eksekusi memerlukan kedua sumber daya sekaligus maka kedua proses akan saling menunggu sumber daya lain selamanya.

Tidak ada proses yang dapat melepaskan sumber daya yang telah dipegangnya karena menunggu sumber daya lain yang tak pernah diperolehnya. Kedua proses dalam kondisi deadlock, tidak dapat membuat kemajuan apapun

Kondisi deadlock adalah kondisi terparah Karen banyak proses dapat terlibat dan semuanya tidak dapat mengakhiri prosesnya secara benar

Starvation

*

Ilustrasi Starvation

Misalnya

*

Terdapat tiga proses P1, P2 dan P3
*

P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik

Skenario berikut dapat terjadi :

*

P1 sedang diberi sumber dayaR, P2 dan P3 blocked menunggu sumber daya R
*

Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengakses R
*

Asumsi P3 diberi hak akses, kemudian setelah selesai, hak akses kembali diserahkan ke P1 yang saat 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 deadlock.

Pada situsasi ini P2 mengalami starvation

Mutual Exclusion

*

Mutual exclusion adalah jaminan bahwa hanya ada satu proses yang mengakses sumber daya pada suatu interval waktu tertentu.

*

Ilustrasi eksekusi daemon printer

*

Ilustrasi aplikasi tabungan

*

Kriteria Penyelesaian Mutual Exclusion

*
o

Mutual Exclusion harus dijamin : hanya satu proses yang diijinkan masuk critical section
o

Proses yang berada di non critical section dilarang memblocke proses proses lain yang ingin masuk critical section
o

Harus dijamin proses yang ingin masuk critical section tidak menunggu selama waktu yang tak terhingga, atau tidak boleh terdapat deadlock atau starvation
o

Ketika tidak ada proses pada critical section maka proses yang ingin masuk critical section harus diijinkan masuk tanpa waktu tunda
o

Tidak ada asumsi mengenai kecepata relatif proses atau jumlah proses yang ada

*
o
+

Metode-metode Penjaminan Mutual Exclusion

*

Metode naïf
o

metode variable lock sederhana

*

Metode untuk situasi tertentu
o

metode bergantian secara ketat

*

Metode menggunakan busy waiting
o

metode penyelesaian Dekker
o

metode penyelesaian Peterson
o

metode berbantuan perangkat keras menggunakan instruksi pematian interupsi
o

metode berbantuan perangkat keras menggunakan instruksi khusus
*

Metode penyelesaian level tinggi
o

metode semaphore

Metode-metode Penjaminan Mutual Exclusion

*

Metode naïf
o

metode variable lock sederhana : meniru mekanisme penguncian pintu dengan kunci pintu diganti variabel lock

variabel lock bernilai 0 : pintu tidak terkunci

variabel lock bernilai 1 : pintu terkuncigint

*

Metode untuk situasi tertentu
o

metode bergantian secara ketat

*

Metode menggunakan busy waiting
o

metode penyelesaian Dekker
o

metode penyelesaian Peterson
o

metode berbantuan perangkat keras menggunakan instruksi pematian interupsi
o

metode berbantuan perangkat keras menggunakan instruksi khusus

*

Metode penyelesaian level tinggi
o

metode semaphore

Program Mutual Exclusion dengan Lock

Program Mutex_with_lock;

Var

lock : Integer;

Procedure enter_critical_section;

{ mengerjakan kode-kode kritis }

Procedure ProsesA;

Begin

While lock <> 0 Do Begin End;

lock := 1;

enter_critical_section;

lock :=0;

End;

Procedure ProsesB;

Begin

While lock <> 0 Do Begin End;

lock := 1;

enter_critical_section;

lock :=0;

End;

Begin

lock := 0;

Repeat

Parbegin

ProsesA;

ProsesB;

Parend

Forever

End;



Mekanisme program :

Ketika proses hendak masuk critical section, proses lebih dulu memeriksa variabel lock dengan ketentuan sbb:

*
o

Jika variabel lock bernilai 0, proses men-set variabel lock menjadi 1 dan kemudian masuk critical section
o

Jika variabel lock bernilai 1, proses menunggu sampai nilai variabel lock menjadi nol (situasi ini berarti terdapat proses lain pada critical section)

Skenario yang membuat situasi kacau :

Proses A Proses B

{ lock = 0 }

membaca lock

{lock = 0 }

{ keluar dari While lock <> 0 Do ..} { lock = 0 }

{ penjadwal menjadwalkan proses B berjalan } membaca lock lock <- 1

enter critical section

{ lock = 1 } {penjadwal menjadwalkan

proses A berjalan}

lock <- 1

enter critical section



{ Dua proses secara bersamaan berada pada critical section }

Metoda melanggar kriteria mutual exclusion : hanya ada satu proses yang berada pada critical section

Pada saat proses A telah membaca variabel lock dan sebelum menset variabel lock menjadi 1, penjadwal dapat menjadwalkan proses B.

Proses B pun membaca variabel yang bernilai nol dan masuk pada critical section.

Penjadwal menggilir proses A, karena telah membaca variabel lock bernilai 0 maka proses A pun segera masuk critical section yang sedang dimasuk B.

Proses A dan Proses B berada pada critical section pada saat yang sama

*

Metode bergantian Secara Ketat

Metode ini mengasumsikan dapat menggilir masuk critical section secara bergantian.



Variable Turn : digunakan untuk mencatat nomor proses yang sedang masuk critical section



Skenario yang terjadi :

*
o

Proses 0, memeriksa variabel turn bernilai 0 dan segera memasuki critical section

*
o

Proses 1, menemukan variabel turn bernilai 0 melakukan loop memeriksa variabel turn terus menerus apakah turn telah bernilai 1



Busy Waiting

Kondisi memeriksa variabel terus-menerus, menunggu sampai suatu nilai muncul.

Jika busy waiting terjadi lama maka akan akan menyia-nyiakan waktu proses.

Metode ini bisa digunakan jika lama menunggu singkat

Program Mutex_with_strict_alternation;

Var

turn : Integer;

Procedure enter_critical_section;

{ mengerjakan kode-kode kritis }

Procedure enter_noncritical_section;

{ mengerjakan kode-kode tidak kritis }

Procedure Proses0;

Begin

Repeat

While turn <> 0 Do Begin End;

enter_critical_section;

turn := 1;

enter_noncritical_section;

Forever

End;

Procedure Proses1;

Begin

Repeat

While turn <> 1 Do Begin End;

enter_critical_section;

turn := 0;

enter_noncritical_section;

Forever

End;

Begin

turn := 0;

Parbegin

Proses0;

Proses1;

Parend

End

Skenario yang Membuat Situasi Kacau



Misal proses0 adalah prose cepat, proses1 adalah proses lambat :

Proses 0 Proses 1

{ turn = 0 }

While turn<> 0 Do ..}

enter_critical_section

turn <- 1

{ turn = 1} { turn = 1}

{ penjadwal menjadwalkan proses 1 } While turn<> 0 Do ..} enter_critical_section

turn <- 0

{ turn = 0 }

enter_non_critical_section

{penjadwal menjadwalkan

proses 0}

lock <- 1

enter critical section



{ Dua proses secara bersamaan berada pada critical section }

Metode Dengan Semaphore

Semaphore dikemukakan oleh Dijkstra

Prinsip semaphore :

*
o

Dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana
o

Proses dipaksa berhenti sampai proses memperoleh penanda tertentu
o

Variabel khusus untuk penandaan ini disebut semaphore

Semaphore mempunyai 2 properti, yaitu :

*
o

semaphore dapat diinisialisasi dengan nilai non negatif
o

terdapat dua operasi terhadap semaphore yaitu Down dan Up. Nama aslinya : P dan V

Operasi Down (P)

*
o

operasi ini menurunkan nilai semaphore
o

jika nilai semaphore menjadi non positif maka proses yang mengeksekusinya diblocked
o

operasi down adalah atomik artinya tidak dapat diinterupsi sebelum selesai

Type

Semaphore = Integer;

Procedure Down ( Var s : semaphore);

Begin

s := s – 1;

If s <= 0 then

Begin

Tempatkan proses pada antrian semaphore s

Proses di blocked

End;

End;

Operasi Up (V)

*
o

operasi ini menaikkan nilai semaphore
o

jika satu proses atau lebih telah di blocked pada suatu semaphore tak dapat menyelesaikan operasi Down, maka salah satu dipilih oleh sistem dan dibolehkan menyelesaikan operasi Down-nya
o

urutan proses yang dipilih tidak ditentukan oleh Dijkstra dapat dipilih secara acak, FIFO dll sesuai kepentingan
o

operasi UP menaikkan nilai semaphore, memindahkan dari antrian dan menempatkan proses ke antrian.

Type

Semaphore = Integer;

Procedure Up ( Var s : semaphore);

Begin

s := s + 1;

If s <= 0 then

Begin

Pindahkan satu proses P dari antrian untuk semaphore s

Tempatkan proses P di antrian ready

End;

End;

Mutual Exclusion dengan semaphore

*
o

Sebelum masuk critical section, proses melakukan Down
o

Bila berhasil maka prose masuk critical section
o

Bila tidak berhasil maka proses diblocked pada semaphore itu
o

Proses yang diblocked akan dapat melanjutkan kembali proses bila proses di critical section keluar dan melakukan operasi UP sehingga menjadikan proses yang diblocked menjadi ready dan berlanjut sehingga operasi Down-nya berhasil

Program Mutual_exclusion_with_semaphore

Const

N = 2;

Var

s : semaphore;

Procedure enter_critical_section;

{ mengerjakan kode-kode kritis}

Procedure enter_noncritical_section;

{ mengerjakan kode-kode non kritis}

Procedure Proses (i : integer);

Begin

Repeat

Down(s);

enter_critical_section;

Up(s);

Enter_non_critical_section;

Forever

End

Begin

s:=1;

Parbegin

Proses(0);

Proses(1);

Parend

End.

DIarsipkan di bawah: IT

Kamis, 08 April 2010

C++ untuk menentukan bil. prima...

#include 

#include
main()
{
clrscr();
int n;
cout<<"Program menentukan bilangan prima"< cout<<"Masukkan bilangan : ";
cin>>n;
int prima = 1;
for(int i=2; i {
if(n%i == 0)
prima = 0;
}
if(prima)
cout< else
cout< getch();
}

SQL Select Command

Used to retrieve selected data. Syntax:

SELECT [ALL | DISTINCT] columnname1 [,columnname2]
FROM tablename1 [,tablename2]
[WHERE condition] [ and|or condition...]
[GROUP BY column-list]
[HAVING "conditions]
[ORDER BY "column-list" [ASC | DESC] ]

The sections between the brackets [] are optional. A simpler syntax statement is:

select columnname1 [,columnname2] from tablename [where condition];

A "*" may be used to select all columns. The where clause is optional and only one column name must be specified.

The Where Clause

This clause is used to specify which columns and values are returned. Where conditions specify an OPERATOR to use for comparison. OPERATORs include:

  • = - Equal
  • < - Less than
  • > - Greater than
  • <= - Less than or equal
  • >= - Greater than or equal
  • <> - Not equal
  • LIKE - Allows the wildcard operator, %, to be used to select items that are a partial match. An example is:

    select city, state from towntable where state LIKE 'north%';

    This allows selection of all towns in states that begin with the word "north" allowing states like North Dakota and North Carolina to be selected.

The GROUP BY Clause

This "GROUP BY" clause allows multiple columns to be grouped so aggregate functions (listed below) may be performed on multiple columns with one command.

Aggregate function keywords:

  • AVG - Get the average of a specified column.
  • COUNT - Get the quantity of values in the column.
  • MAX - Return the maximum value in a specified column.
  • MIN - Return the minimum value in a specified column.
  • SUM - Return the sum of all numeric values in the specified column.

Example:

SELECT MAX(population)
FROM citylist;
WHERE state = 'Indiana';

Example using the GROUP BY clause which gets the smallest population of each city in every state:

SELECT MIN(population)
FROM citylist;
GROUP BY state;

The HAVING Clause

Allows selection of set test criteria on rows. You can display average size of towns whose population is less than 100.

The ORDER BY Clause

This clause lets results be displayed in ascending or descending order. Keywords:

  • ASC - Ascending order.
  • DESC - Descending order.

Other Keywords

  • ALL - Used to select all records.
  • DISTINCT - Used to select unique records. Only unique values are returned.

Example

SELECT city, state FROM towntable WHERE population > '100000';

Minggu, 28 Maret 2010

awal komputer

The first computers were made with intricate gear systems by the Greeks. Komputer pertama dibuat dengan sistem peralatan yang rumit oleh orang Yunani. These computers turned out to be too delicate for the technological capabilities of the time and were abandoned as impractical. Komputer ini ternyata terlalu halus untuk kemampuan teknologi waktu dan ditinggalkan sebagai tidak praktis. The Antikythera mechanism, discovered in a shipwreck in 1900, is an early mechanical analog computer from between 150 BCE and 100 BCE. Para mekanisme Antikythera, ditemukan di sebuah kapal karam pada 1900, adalah awal dari komputer analog mekanik antara 150 SM dan 100 SM. The Antikythera mechanism used a system of 37 gears to compute the positions of the sun and the moon through the zodiac on the Egyptian calendar, and possibly also the fixed stars and five planets known in antiquity (Mercury, Venus, Mars, Jupiter, and Saturn) for any time in the future or past. Mekanisme Antikythera digunakan pada sistem roda gigi 37 untuk menghitung posisi matahari dan bulan melalui zodiak pada kalender Mesir, dan mungkin juga bintang-bintang tetap dan lima planet dikenal di zaman kuno (Merkurius, Venus, Mars, Jupiter, dan Saturnus ) untuk setiap waktu di masa depan atau masa lalu. The system of gears added and subtracted angular velocities to compute differentials. Sistem roda gigi sudut ditambahkan dan dikurangi kecepatan untuk menghitung diferensial. The Antikythera mechanism could accurately predict eclipses and could draw up accurate astrological charts for important leaders. Antikythera mekanisme yang dapat secara akurat memprediksi gerhana dan dapat membuat diagram astrologi yang akurat pemimpin penting. It is likely that the Antikythera mechanism was based on an astrological computer created by Archimedes of Syracuse in the 3rd century BCE. Kemungkinan bahwa mekanisme Antikythera didasarkan pada sebuah komputer astrologi diciptakan oleh Archimedes dari Syracuse pada abad ke-3 SM.

The first modern computers were made by the Inca using ropes and pulleys. Komputer modern pertama dibuat oleh Inca menggunakan tali dan katrol. Knots in the ropes served the purpose of binary digits. Simpul di tali melayani tujuan digit biner. The Inca had several of these computers and used them for tax and government records. Inca punya beberapa komputer ini dan menggunakan mereka untuk pajak dan catatan pemerintah. In addition to keeping track of taxes, the Inca computers held data bases on all of the resources of the Inca empire, allowing for efficient allocation of resources in response to local disasters (storms, drought, earthquakes, etc.). Selain melacak pajak, Inca data base komputer yang diselenggarakan di semua sumber daya Inca Empire, memungkinkan untuk efisiensi alokasi sumber daya dalam menanggapi bencana lokal (badai, kekeringan, gempa bumi, dll). Spanish soldiers acting on orders of Roman Catholic priests destroyed all but one of the Inca computers in the mistaken belief that any device that could give accurate information about distant conditions must be a divination device powered by the Christian “Devil” (and many modern Luddites continue to view computers as Satanically possessed devices). Spanyol prajurit bertindak atas perintah para imam Katolik Roma hancur semua kecuali satu dari Inca komputer dalam keyakinan keliru bahwa salah satu komponen yang dapat memberikan informasi yang akurat tentang kondisi jauh harus merupakan perangkat ramalan powered by Kristen "Devil" (dan banyak Luddites modern terus untuk melihat komputer sebagai perangkat yang dimiliki Satanically).

In the 1800s, the first computers were programmable devices for controlling the weaving machines in the factories of the Industrial Revolution. Tahun 1800-an, pertama perangkat komputer yang dapat diprogram untuk mengendalikan mesin-mesin tenun pabrik-pabrik dalam Revolusi Industri. Created by Charles Babbage, these early computers used Punch cards as data storage (the cards contained the control codes for the various patterns). Dibuat oleh Charles Babbage, komputer awal ini digunakan Punch card sebagai media penyimpan data (kartu-kartu berisi kode kontrol untuk berbagai macam pola). These cards were very similiar to the famous Hollerinth cards developed later. Kartu ini sangat mirip dengan kartu Hollerinth terkenal dikembangkan kemudian. The first computer programmer was Lady Ada, for whom the Ada programming language is named. Pemrogram komputer pertama Lady Ada, untuk siapa Ada bahasa pemrograman yang bernama.

In 1833 Charles babbage proposed a mechanical computer with all of the elements of a modern computer, including control, arithmetic, and memory, but the technology of the day couldn't produce gears with enough precision or reliability to make his computer possible. Pada tahun 1833 Charles Babbage mengusulkan suatu mesin komputer dengan semua elemen dari sebuah komputer modern, termasuk kontrol, aritmetika, dan memori, tetapi teknologi hari tidak bisa menghasilkan gigi dengan ketepatan atau keandalan yang cukup untuk membuat komputer mungkin.

In the 1900s, researchers started experimenting with both analog and digital computers using vacuum tubes. Pada tahun 1900-an, para peneliti mulai bereksperimen dengan baik analog dan digital komputer yang menggunakan tabung vakum. Some of the most successful early computers were analog computers, capable of performing advanced calculus problems rather quickly. Beberapa yang paling sukses komputer awal analog komputer, mampu melakukan masalah kalkulus maju agak cepat. But the real future of computing was digital rather than analog. Tetapi masa depan yang sebenarnya adalah komputer digital daripada analog. Building on the technology and math used for telephone and telegraph switching networks, researchers started building the first electronic digital computers. Bangunan pada teknologi dan matematika yang digunakan untuk telepon dan telegraf switching, para peneliti mulai membangun komputer digital elektronik pertama.

The first modern computer was the German Zuse computer (Z3) in 1941. Komputer modern pertama adalah komputer Zuse Jerman (Z3) pada tahun 1941. In 1944 Howard Aiken of Harvard University created the Harvard Mark I and Mark II. Pada tahun 1944 Howard Aiken dari Harvard University menciptakan Harvard Mark I dan Mark II. The Mark I was primarily mechanical, while the Mark II was primarily based on reed relays. Mark I itu terutama mekanis, sedangkan Mark II itu terutama didasarkan pada relay buluh. Telephone and telegraph companies had been using reed relays for the logic circuits needed for large scale switching networks. Telepon dan telegraf perusahaan telah menggunakan relay buluh untuk sirkuit logika yang dibutuhkan untuk switching dalam skala besar.

The first modern electronic computer was the ENIAC in 1946, using 18,000 vacuum tubes. Pertama komputer elektronik modern adalah ENIAC pada tahun 1946, menggunakan 18.000 tabung vakum. See below for information on Von Neumann's important contributions. Lihat di bawah untuk informasi tentang Von Neumann kontribusi penting.

The first solid-state (or transistor) computer was the TRADIC, built at Bell Laboratories in 1954. Pertama solid-state (atau transistor) komputer adalah TRADIC, dibangun di Bell Laboratories pada tahun 1954. The transistor had previously been invented at Bell Labs in 1948. Transistor sebelumnya telah ditemukan di Bell Labs pada tahun 1948.

von Neumann architecture Arsitektur von Neumann

John Louis von Neumann, mathematician (born János von Neumann 28 December 1903 in Budapest, Hungary, died 8 February 1957 in Washington, DC), proposed the stored program concept while professor of mathemtics (one of the orginal six) at Princeton University's Institute for Advanced Services, in which programs (code) are stored in the same memory as data. John Louis von Neumann, ahli matematika (von Neumann János lahir 28 Desember 1903 di Budapest, Hungaria, meninggal 8 Februari 1957 di Washington, DC), mengusulkan konsep program disimpan sementara profesor mathemtics (salah satu dari enam asli) di Princeton University's Institute for Advanced Services, di mana program (kode) disimpan dalam memori yang sama sebagai data. The computer knows the difference between code and data by which it is attempting to access at any given moment. Komputer tahu perbedaan antara kode dan data dengan yang berupaya untuk mengakses pada saat tertentu. When evaluating code, the binary numbers are decoded by some kind of physical logic circuits (later other methods, such as microprogramming, were introduced), and then the instructions are run in hardware. Ketika mengevaluasi kode, nomor biner diterjemahkan oleh beberapa macam sirkuit logika fisik (kemudian metode lain, seperti microprogramming, diperkenalkan), dan kemudian petunjuk dijalankan di hardware. This design is called von Neumann architecture and has been used in almost every digital computer ever made. Desain ini disebut arsitektur von Neumann dan telah digunakan di hampir semua komputer digital yang pernah dibuat.

Von Neumann architecture introduced flexibility to computers. Memperkenalkan arsitektur von Neumann fleksibilitas kepada komputer. Previous computers had their programming hard wired into the computer. Sebelumnya komputer memiliki program mereka keras terhubung ke komputer. A particular computer could only do one task (at the time, mostly building artillery tables) and had to be physically rewired to do any new task. Sebuah komputer tertentu hanya dapat melakukan satu tugas (pada waktu itu, sebagian besar bangunan artileri meja) dan harus secara fisik rewired untuk melakukan tugas baru.

By using numeric codes, von Neumann computers could be reprogrammed for a wide variety of problems, with the decode logic remaining the same. Dengan menggunakan kode numerik, von Neumann dapat memprogram komputer untuk berbagai masalah, dengan logika decode tetap sama.

As processors (especially super computers) get ever faster, the von Neumann bottleneck is starting to become an issue. Sebagai prosesor (terutama super komputer) mendapatkan pernah lebih cepat, von Neumann bottleneck mulai menjadi isu. With data and code both being accessed over the same circuit lines, the processor has to wait for one while the other is being fetched (or written). Dengan data dan kode kedua sedang diakses melalui baris rangkaian yang sama, prosesor harus menunggu selama satu sementara yang lain sedang diambil (atau ditulis). Well designed data and code caches help, but only when the requested access is already loaded into cache. Dirancang dengan baik kode cache data dan membantu, tapi hanya jika meminta akses sudah dimuat ke cache. Some researchers are now experimenting with Harvard architecture to solve the von Neumann bottleneck. Beberapa peneliti sekarang bereksperimen dengan arsitektur Harvard untuk memecahkan von Neumann bottleneck. In Harvard arrchitecture, named for Howard Aiken's experimental Harvard Mark I (ASCC) calculator [computer] at Harvard University, a second set of data and address lines along with a second set of memory are set aside for executable code, removing part of the conflict with memory accesses for data. Di Harvard arrchitecture, bernama bagi Howard Aiken's eksperimental Harvard Mark I (ASCC) kalkulator [komputer] di Harvard University, kedua set data dan jalur alamat bersama-sama dengan kedua set memori dikhususkan untuk kode dieksekusi, menghilangkan bagian dari konflik dengan mengakses memori untuk data.

Von Neumann became an American citizen in 1933 to be eligible to help on top secret work during World War II. Von Neumann menjadi warga negara Amerika pada tahun 1933 untuk memenuhi syarat untuk membantu di atas kerja rahasia selama Perang Dunia II. There is a story that Oskar Morganstern coached von Neumann and Kurt Gödel on the US Constitution and American history while driving them to their immigration interview. Ada sebuah kisah yang melatih Morganstern Oskar von Neumann dan Kurt Gödel pada Konstitusi AS dan sejarah Amerika saat mengemudi imigrasi mereka ke wawancara. Morganstern asked if they had any questions, and Gödel replied that he had no questions, but had found some logical inconsistencies in the Constitution that he wanted to ask the Immigration officers about. Morganstern bertanya apakah mereka punya pertanyaan, dan Gödel menjawab bahwa ia tidak punya pertanyaan, tetapi telah menemukan beberapa inkonsistensi logis dalam Konstitusi bahwa ia ingin bertanya kepada petugas Imigrasi tentang. Morganstern recommended that he not ask questions, but just answer them. Morganstern merekomendasikan bahwa ia tidak mengajukan pertanyaan, tapi hanya menjawab mereka.

Von Neumann occassionally worked with Alan Turing in 1936 through 1938 when Turing was a graduate student at Princeton. Von Neumann kadang-kadang bekerja dengan Alan Turing pada tahun 1936 melalui 1938 saat Turing mahasiswa pascasarjana di Princeton. Von Neumann was exposed to the concepts of logical design and universal machine proposed in Turing's 1934 paper “On Computable Numbers with an Application to the Entschiedungs-problem”. Von Neumann terkena logis konsep desain dan mesin universal diusulkan dalam 1934 Turing makalah "On Computable Numbers dengan Permohonan ke Entschiedungs-masalah".

Von Neumann worked with such early computers as the Harvard Mark I, ENIAC, EDVAC, and his own IAS computer. Von Neumann bekerja dengan komputer sebagai awal seperti Harvard Mark I, ENIAC, EDVAC, dan komputer IAS sendiri.

Early research into computers involved doing the computations to create tables, especially artillery firing tables. Penelitian awal komputer yang terlibat melakukan perhitungan untuk membuat tabel, terutama artileri menembak tabel. Von Neumann was convinced that the future of computers involved applied mathematics to solve specific problems rather than mere table generation. Von Neumann yakin bahwa masa depan komputer yang terlibat matematika terapan untuk memecahkan masalah-masalah tertentu daripada meja hanya generasi. Von Neumann was the first person to use computers for mathematical physics and economics, proving the utility of a general purpose computer. Von Neumann adalah orang pertama yang menggunakan komputer untuk matematika fisika dan ekonomi, membuktikan kegunaan komputer tujuan umum.

Von Neumann proposed the concept of stored programs in the 1945 paper “First Draft of a Report on the EDVAC”. Von Neumann mengusulkan konsep program yang tersimpan dalam kertas 1945 "Draft Pertama Laporan di EDVAC". Influenced by the idea, Maurice Wilkes of the Cambridge University Mathematical Laboratory designed and built the EDSAC, the world's first operational, production, stored-program computer. Dipengaruhi oleh ide, Maurice Wilkes dari Universitas Cambridge Mathematical Laboratorium dirancang dan dibangun EDSAC, pertama di dunia operasional, produksi, disimpan-program komputer.

The first stored computer program ran on the Manchester Mark I [computer] on June 21, 1948. Disimpan pertama program komputer berlari di Manchester Mark I [komputer] pada tanggal 21 Juni 1948.

Von Neumann foresaw the advantages of parallelism in computers, but because of construction limitations of the time, he worked on sequential systems. Von Neumann meramalkan keuntungan paralelisme di komputer, tapi karena konstruksi keterbatasan waktu, dia bekerja pada sistem berurutan.

Von Neumann advocated the adoption of the bit as the measurement of computer memory and solved many of the problems regarding obtaining reliable answers from unreliable computer components. Von Neumann menganjurkan adopsi bit sebagai ukuran memori komputer dan memecahkan banyak masalah yang dapat diandalkan mengenai mendapatkan jawaban dari komponen komputer dapat diandalkan.

Interestingly, von Neumann was opposed to the idea of compilers. Menariknya, von Neumann menentang gagasan kompiler. When shown the idea for FORTRAN in 1954, von Neumann asked “Why would you want more than machine language?”. Ketika ditunjukkan gagasan untuk FORTRAN pada tahun 1954, von Neumann bertanya "Mengapa Anda menginginkan lebih dari bahasa mesin?". Von Neumann had graduate students hand assemble programs into binary code for the IAS machine. Von Neumann telah berkumpul tangan mahasiswa pascasarjana program ke kode biner untuk mesin IAS. Donald Gillies, a student at Princeton, created an assembler to do the work. Donald Gillies, seorang mahasiswa di Princeton, menciptakan assembler untuk melakukan pekerjaan. Von Neumann was angry, claiming “It is a waste of a valuable scientific computing instrument to use it to do clerical work”. Von Neumann marah, mengklaim "Ini adalah pemborosan komputasi ilmiah yang berharga instrumen untuk menggunakannya untuk melakukan pekerjaan juru tulis".

Von Neumann also did important work in set theory (including measure theory), the mathematical foundation for quantum theory (including statistical mechanics), self-adjoint algebras of bounded linear operators on a Hilbert space closed in weak operator topology, non-linear partial differential equations, and automata theory (later applied to cmputers). Von Neumann juga mengerjakan karya penting dalam teori himpunan (termasuk teori ukuran), matematika dasar untuk teori kuantum (termasuk mekanika statistik), adjoint algebras diri dari operator linier dibatasi pada ruang Hilbert ditutup pada operator lemah topologi, non-linier diferensial parsial persamaan, dan teori automata (kemudian diterapkan pada cmputers). His work in economics included his 1937 paper “A Model of General Economic Equilibrium” on a multi-sectoral growth model and his 1944 book “Theory of Games and Economic Behavior” (co-authored with Morgenstern) on game theory and uncertainty. Karyanya di bidang ekonomi termasuk kertas 1937-nya "Sebuah Model Ekonomi Umum Equilibrium" pada multi-sektoral model pertumbuhan dan 1944 buku "Theory of Games and Economic Behavior" (ditulis bersama dengan Morgenstern) di teori permainan dan ketidakpastian.

I leave the discussion of von Neumann with a couple of quotations: Aku meninggalkan diskusi von Neumann dengan beberapa kutipan:

“If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is.” "Jika orang tidak percaya bahwa matematika sederhana, hanya karena mereka tidak menyadari betapa rumit hidup ini."

“Anyone who considers arithmetical methods of producing random numbers is, of course, in a state of sin.” "Siapa pun yang menganggap metode aritmatika menghasilkan bilangan acak, tentu saja, dalam keadaan dosa."

bare hardware telanjang hardware

In the earliest days of electronic digital computing, everything was done on the bare hardware. Pada masa awal sistem komputer digital elektronik, semuanya dilakukan pada hardware telanjang. Very few computers existed and those that did exist were experimental in nature. Sangat sedikit komputer yang ada dan memang ada yang eksperimental di alam. The researchers who were making the first computers were also the programmers and the users. Para peneliti yang membuat komputer pertama juga para programer dan para pengguna. They worked directly on the “bare hardware”. Mereka bekerja secara langsung pada "telanjang hardware". There was no operating system. Tidak ada sistem operasi. The experimenters wrote their programs in machine or assembly language and a running program had complete control of the entire computer. Para peneliti menulis program mereka di mesin atau bahasa assembly dan program itu menjalankan kendali penuh dari seluruh komputer. Often programs and data were entered by hand through the use of toggle switches. Seringkali program dan data yang masuk dengan tangan melalui penggunaan toggle switch. Memory locations (both data and programs) could be read by viewing a series of lights (one for each binary digit). Lokasi memori (baik data dan program) dapat dibaca dengan melihat serangkaian lampu (satu untuk masing-masing digit biner). Debugging consisted of a combination of fixing both the software and hardware, rewriting the object code and changing the actual computer itself. Debugging terdiri dari kombinasi dari memperbaiki baik software dan hardware, menulis ulang kode objek dan mengubah komputer itu sendiri yang sebenarnya.

The lack of any operating system meant that only one person could use a computer at a time. Tidak adanya sistem operasi apapun berarti bahwa hanya satu orang dapat menggunakan komputer pada satu waktu. Even in the research lab, there were many researchers competing for limited computing time. Bahkan dalam penelitian laboratorium, ada banyak peneliti yang bersaing untuk waktu komputasi terbatas. The first solution was a reservation system, with researchers signing up for specific time slots. Solusi pertama adalah sistem reservasi, dengan mendaftar peneliti slot waktu tertentu. The earliest billing systems charged for the entire computer and all of its resources (regardless of whether used or not) and was based on outside clock time, being billed from the scheduled start to scheduled end times. Sistem penagihan awal dikenakan biaya untuk seluruh komputer dan semua sumber daya (apakah digunakan atau tidak) dan didasarkan pada jam di luar waktu, tidak ditagih dari yang dijadwalkan dijadwalkan mulai akhir zaman.

The high cost of early computers meant that it was essential that the rare computers be used as efficiently as possible. Biaya tinggi komputer awal berarti bahwa penting bahwa komputer yang jarang digunakan seefisien mungkin. The reservation system was not particularly efficient. Sistem reservasi itu tidak terlalu efisien. If a researcher finished work early, the computer sat idle until the next time slot. Jika seorang peneliti selesai kerja lebih awal, komputer duduk diam sampai waktu berikutnya slot. If the researcher's time ran out, the researcher might have to pack up his or her work in an incomplete state at an awkward moment to make room for the next researcher. Jika peneliti waktunya habis, mungkin peneliti untuk berkemas nya bekerja di negara yang tidak lengkap pada saat yang canggung untuk memberikan ruang bagi peneliti berikutnya. Even when things were going well, a lot of the time the computer actually sat idle while the researcher studied the results (or studied memory of a crashed program to figure out what went wrong). Bahkan ketika segalanya berjalan baik, banyak waktu yang sebenarnya komputer duduk diam sementara peneliti mempelajari hasil (atau mempelajari memori dari program jatuh untuk mengetahui apa yang salah). Simply loading the programs and data took up some of the scheduled time. Cukup memuat program dan data mengambil beberapa waktu yang dijadwalkan.

computer operators operator komputer

One solution to this problem was to have programmers prepare their work off-line on some input medium (often on punched cards, paper tape, or magnetic tape) and then hand the work to a computer operator. Satu solusi untuk masalah ini adalah memiliki programer mempersiapkan karya mereka secara off-line pada beberapa masukan media (sering pada kartu meninju, kertas kaset, atau pita magnetik) dan kemudian menyerahkan pekerjaan ke komputer operator. The computer operator would load up jobs in the order received (with priority overrides based on politics and other factors). Operator komputer akan memuat pekerjaan dalam urutan yang diterima (dengan mengabaikan prioritas yang didasarkan pada politik dan faktor lainnya). Each job still ran one at a time with complete control of the computer, but as soon as a job finished, the operator would transfer the results to some output medium (punched tape, paper tape, magnetic tape, or printed paper) and deliver the results to the appropriate programmer. Setiap pekerjaan masih berlari satu per satu waktu dengan kontrol penuh dari komputer, tapi begitu pekerjaan selesai, operator akan mengalihkan hasil keluaran beberapa media (meninju tape, pita kertas, pita magnetik, atau dicetak kertas) dan menyampaikan hasil programmer yang sesuai. If the program ran to completion, the result would be some end data. Jika program berlari sampai selesai, hasilnya akan beberapa data akhir. If the program crashed, memory would be transferred to some output medium for the programmer to study (because some of the early business computing systems used magnetic core memory, these became known as “core dumps”). Jika program jatuh, memori itu akan dialihkan ke beberapa media keluaran bagi programmer untuk belajar (karena beberapa sistem komputasi bisnis awal digunakan memori inti magnetik, ini dikenal sebagai "core dump").

The concept of computer operators dominated the mainframe era and continues today in large scale operations with large numbers of servers. Konsep operator komputer mainframe mendominasi era dan berlanjut hari ini di operasi skala besar dengan sejumlah besar server.

device drivers and library functions device driver dan fungsi-fungsi perpustakaan

Soon after the first successes with digital computer experiments, computers moved out of the lab and into practical use. Segera setelah keberhasilan pertama percobaan dengan komputer digital, komputer pindah keluar dari lab dan ke penggunaan praktis. The first practical application of these experimental digital computers was the generation of artillery tables for the British and American armies. Pertama aplikasi praktis dari percobaan ini adalah komputer digital generasi tabel artileri bagi pasukan Inggris dan Amerika. Much of the early research in computers was paid for by the British and American militaries. Sebagian besar penelitian awal dalam komputer ini dibayar oleh militer Inggris dan Amerika. Business and scientific applications followed. Bisnis dan aplikasi ilmiah diikuti.

As computer use increased, programmers noticed that they were duplicating the same efforts. Seperti penggunaan komputer meningkat, programmer menyadari bahwa mereka duplikasi usaha yang sama.

Every programmer was writing his or her own routines for I/O, such as reading input from a magnetic tape or writing output to a line printer. Setiap programer menulis sendiri rutin untuk I / O, seperti membaca input dari sebuah pita magnetik atau menulis output ke printer baris. It made sense to write a common device driver for each input or putput device and then have every programmer share the same device drivers rather than each programmer writing his or her own. Masuk akal untuk menulis driver perangkat yang umum untuk setiap masukan atau perangkat putput dan kemudian memiliki setiap pemrogram perangkat berbagi driver yang sama daripada setiap pemrogram menulis sendiri. Some programmers resisted the use of common device drivers in the belief that they could write “more efficient” or faster or "“better” device drivers of their own. Beberapa programmer menolak penggunaan driver perangkat umum dalam keyakinan bahwa mereka bisa menulis "lebih efisien" atau lebih cepat atau "" lebih baik "driver perangkat mereka sendiri.

Additionally each programmer was writing his or her own routines for fairly common and repeated functionality, such as mathematics or string functions. Selain itu masing-masing programmer menulis sendiri cukup rutin untuk umum dan berulang-ulang fungsi, seperti matematika atau fungsi string. Again, it made sense to share the work instead of everyone repeatedly “reinventing the wheel”. Sekali lagi, masuk akal untuk berbagi pekerjaan bukan semua orang berulang-ulang "reinventing the wheel". These shared functions would be organized into libraries and could be inserted into programs as needed. Fungsi bersama ini akan diatur dalam perpustakaan dan dapat dimasukkan ke dalam program-program yang diperlukan. In the spirit of cooperation among early researchers, these library functions were published and distributed for free, an early example of the power of the open source approach to software development. Dalam semangat kerjasama antar peneliti awal, fungsi-fungsi perpustakaan ini diterbitkan dan didistribusikan secara gratis, sebuah contoh awal dari kekuatan pendekatan open source untuk pengembangan perangkat lunak.

Computer manufacturers started to ship a standard library of device drivers and utility routines with their computers. Produsen komputer mulai kapal perpustakaan standar device driver dan utilitas rutinitas dengan komputer mereka. These libraries were often called a runtime library because programs connected up to the routines in the library at run time (while the program was running) rather than being compiled as part of the program. Perpustakaan ini sering disebut runtime program perpustakaan karena terhubung ke rutinitas di perpustakaan pada saat run time (sementara program ini berjalan) daripada yang dikompilasi sebagai bagian dari program. The commercialization of code libraries ended the widespread free sharing of software. Komersialisasi kode perpustakaan mengakhiri luas berbagi perangkat lunak bebas.

Manufacturers were pressured to add security to their I/O libraries in order to prevent tampering or loss of data. Produsen dipaksa untuk menambah keamanan untuk mereka I / O perpustakaan dalam rangka untuk mencegah gangguan atau hilangnya data.

input output control systems input output sistem kontrol

The first programs directly controlled all of the computer's resources, including input and output devices. Program pertama langsung dikontrol semua sumber daya komputer, termasuk perangkat input dan output. Each individual program had to include code to control and operate each and every input and/or output device used. Setiap program individu harus mencakup kode untuk mengontrol dan mengoperasikan masing-masing dan setiap input dan / atau perangkat output yang digunakan.

One of the first consolidations was placing common input/output (I/O) routines into a common library that could be shared by all programmers. Salah satu yang pertama adalah menempatkan Common konsolidasi input / output (I / O) rutinitas menjadi sebuah perpustakaan umum yang dapat dimiliki oleh semua programmer. I/O was separated from processing. I / O terpisah dari pemrosesan.

These first rudimentary operating systems were called an Input Output Control System or IOCS. Dasar pertama ini sistem operasi disebut Kontrol Input Output System atau IOCS.

Computers remained single user devices, with main memory divided into an IOCS and a user section. Komputer tetap melajang perangkat pengguna, dengan memori utama dibagi menjadi IOCS dan bagian pengguna. The user section consisted of program, data, and unused memory. Bagian pengguna terdiri dari program, data, dan memori yang tidak terpakai.

The user remained responsible for both set up and tear down. Pengguna tetap bertanggung jawab untuk kedua mengatur dan air mata turun.

Set up included loading data and program, by front panel switches, punched card, magnetic tapes, paper tapes, disk packs, drum drives, and other early I/O and storage devices. Set up termasuk loading data dan program, dengan panel depan switch, kartu menekan, magnetik tape, kertas kaset, disk pack, drum drive, dan lain awal I / O dan perangkat penyimpanan. Paper might be loaded into printers, blank cards into card punch mahcines, and blank or formatted tape into tape drives, or other output devices readied. Kertas mungkin akan dimuat ke printer, kartu kosong ke kartu punch mahcines, dan kosong atau diformat tape ke tape drive, atau perangkat keluaran lain disiapkan.

Tear down would include unmounting tapes, drives, and other media. Meruntuhkan akan mencakup unmounting kaset, drive, dan media lainnya.

The very expensive early computers sat idle during both set up and tear down. Awal yang sangat mahal komputer duduk menganggur selama kedua mengatur dan air mata turun.

This waste led to the introduction of less expensive I/O computers. Limbah ini mengarah pada pengenalan lebih murah I / O komputer. While one I/O computer was being set up or torn down, another I/O computer could be communicating a readied job with the main computer. Sementara salah satu I / O komputer telah dijebak atau sobek ke bawah, yang lain I / O komputer dapat berkomunikasi satu pekerjaan dipersiapkan dengan komputer utama.

Some installations might have several different I/O computers connected to a single main computer to keep the expensive main computer in use. Beberapa instalasi mungkin memiliki beberapa berbeda I / O komputer yang terhubung ke sebuah komputer utama yang mahal untuk menjaga komputer utama yang digunakan. This led to the concept of multiple I/O channels. Hal ini menyebabkan konsep multiple I / O channel.

monitors monitor

As computers spread from the research labs and military uses into the business world, the accountants wanted to keep more accurate counts of time than mere wall clock time. Seperti komputer menyebar dari penelitian laboratorium dan menggunakan militer ke dunia bisnis, para akuntan ingin tetap lebih akurat menghitung waktu dari sekadar jam dinding waktu.

This led to the concept of the monitor . Hal ini menyebabkan konsep monitor. Routines were added to record the start and end times of work using computer clock time. Rutinitas ditambahkan untuk mencatat waktu mulai dan akhir kerja menggunakan komputer waktu jam. Routines were added to I/O library to keep track of which devices were used and for how long. Rutinitas ditambahkan ke I / O perpustakaan untuk melacak perangkat yang digunakan dan untuk berapa lama.

With the development of the Input Output Control System, these time keeping routines were centralized. Dengan perkembangan Input Output Control System, waktu ini adalah rutinitas menjaga terpusat.

You will notice that the word monitor appears in the name of some operating systems, such as FORTRAN Monitor System. Anda akan melihat bahwa kata monitor muncul dalam nama beberapa sistem operasi, seperti FORTRAN Monitor System. Even decades later many programmers still refer to the operating system as the monitor. Bahkan dekade kemudian banyak programmer masih mengacu pada sistem operasi sebagai monitor.

An important motivation for the creation of a monitor was more accurate billing. Motivasi penting bagi penciptaan monitor penagihan lebih akurat. The monitor could keep track of actual use of I/O devices and record runtime rather than clock time. Monitor bisa melacak penggunaan aktual I / O device dan catatan runtime daripada waktu jam.

For accurate time keeping the monitor had to keep track of when a program stopped running, regardless of whether it was a normal end of the program or some kind of abnormal termination (such as aa crash). Untuk waktu tetap akurat monitor harus melacak ketika sebuah program berhenti berjalan, terlepas dari apakah itu normal akhir program atau semacam terminasi abnormal (seperti aa crash).

The monitor reported the end of a program run or error conditions to a computer operator, who could load the next job waiting, rerun a job, or take other actions. Monitor melaporkan akhir sebuah program dijalankan atau kondisi kesalahan operator komputer, yang bisa memuat pekerjaan berikutnya menunggu, jalankan kembali pekerjaan, atau mengambil tindakan lain. The monitor also notified the computer operator of the need to load or unload various I/O devices (such as changing tapes, loading paper into the printer, etc.). Monitor komputer juga memberitahu operator perlu memuat atau membongkar berbagai I / O devices (seperti mengganti kaset, pemuatan kertas ke printer, dll).

1950s 1950

Some operating systems from the 1950s include: FORTRAN Monitor System , General Motors Operating System , Input Output System , SAGE , and SOS . Beberapa sistem operasi dari tahun 1950-an mencakup: FORTRAN Monitor System, General Motors Operating System, Input Output System, SAGE, dan SOS.

SAGE (Semi-Automatic Ground Environment), designed to monitor weapons systems, was the first real time control system. SAGE (Semi-Automatic Ground Environment), yang dirancang untuk memonitor sistem senjata, adalah pertama sistem kontrol waktu nyata.

batch systems sistem batch

Batch systems automated the early approach of having human operators load one program at a time. Sistem batch otomatis pendekatan awal memiliki beban operator manusia satu program pada satu waktu. Instead of having a human operator load each program, software handled the scheduling of jobs. Alih-alih memiliki beban operator manusia masing-masing program, perangkat lunak menangani penjadwalan pekerjaan. In addition to programmers submitting their jobs,, end users could submit requests to run specific programs with specific data sets (usually stored in files or on cards). Selain programmer mengirimkan pekerjaan mereka,, pengguna akhir dapat mengajukan permintaan untuk menjalankan program tertentu dengan set data tertentu (biasanya disimpan dalam file atau pada kartu). The operating system would schedule “batches” of related jobs. Sistem operasi akan jadwal "batch" yang terkait pekerjaan. Output (punched cards, magnetic tapes, printed material, etc.) would be returned to each user. Output (meninju kartu, magnetic tape, cetakan, dll) akan dikembalikan untuk tiap user.

General Motors Operating System, created by General Motors Research Laboratories in early 1956 (or late 1955) for thieir IBM 701 mainframe is generally considered to be the first batch operating system and possibly the first “real” operating system. General Motors Operating System, dibuat oleh General Motors Research Laboratories pada awal tahun 1956 (atau akhir 1955) untuk IBM 701 mainframe thieir umumnya dianggap sebagai sistem operasi batch pertama dan mungkin yang pertama "nyata" sistem operasi.

The operating system would read in a program and its data, run that program to completion (including outputing data), and then load the next program in series as long as there were additional jobs available. Sistem operasi akan membaca dalam sebuah program dan data, jalankan program tersebut sampai selesai (termasuk outputing data), dan kemudian load program berikutnya dalam seri asalkan ada pekerjaan tambahan yang tersedia.

Batch operating systems used a Job Control Language (JCL) to give the operating system instructions. Batch sistem operasi menggunakan Job Control Language (JCL) untuk memberikan instruksi sistem operasi. These instructions included designation of which punched cards were data and which were programs, indications of which compiler to use, which centralized utilities were to be run, which I/O devices might be used, estimates of expected run time, and other details. Petunjuk ini termasuk penunjukan yang menekan data dan kartu yang program, indikasi yang kompiler untuk menggunakan, yang terpusat utilitas itu harus dijalankan, yang I / O device dapat digunakan, perkiraan yang diharapkan berjalan waktu, dan rincian lainnya.

This type of batch operating system was known as a single stream batch processing system. Jenis sistem operasi batch dikenal sebagai aliran satu sistem pengolahan bets.

Examples of operating systems that were primarily batch-oriented include: BKY , BOS/360 , BPS/360 , CAL , and Chios . Contoh sistem operasi yang berorientasi batch terutama meliputi: BKY, BOS/360, BPS/360, CAL, dan Chios.

early 1960s awal 1960-an

The early 1960s saw the introduction of time sharing and multi-processing. Awal 1960-an melihat waktu pengenalan berbagi dan multi-processing.

Some operating systems from the early 1960s include: Admiral , B1 , B2 , B3 , B4 , Basic Executive System , BOS/360 , EXEC I , EXEC II , Honeywell Executive System , IBM 1410/1710 OS , IBSYS , Input Output Control System , Master Control Program , and SABRE . Beberapa sistem operasi dari awal 1960-an mencakup: Laksamana, B1, B2, B3, B4, Dasar Sistem Eksekutif, BOS/360, EXEC aku, EXEC II, Honeywell Sistem Executive, IBM 1410/1710 OS, IBSYS, Input Output Control System, Master Control Program, dan SABRE.

The first major transaction processing system was SABRE (Semi-Automatic Business Related Environment), developed by IBM and American Airlines. w78 Utama pertama sistem pengolahan transaksi SABRE (semi-otomatis Bisnis Terkait Lingkungan), yang dikembangkan oleh IBM dan American Airlines. W78

multiprogramming multiprogramming

There is a huge difference in speed between I/O and running programs. Ada perbedaan besar dalam kecepatan antara I / O dan program yang sedang dijalankan. In a single stream system, the processor remains idle for much of the time as it waits for the I/O device to be ready to send or receive the next piece of data. Dalam satu sistem aliran, prosesor tetap siaga selama banyak waktu karena menunggu I / O device harus siap untuk mengirim atau menerima data sepotong berikutnya.

The obvious solution was to load up multiple programs and their data and switch back and forth between programs or jobs. Solusi yang jelas adalah untuk memuat beberapa program dan data mereka dan beralih bolak-balik antara program atau pekerjaan.

When one job idled to wait for input or output, the operating system could automatically switch to another job that was ready. Ketika satu pekerjaan bermalas-malasan menunggu input atau output, sistem operasi dapat secara otomatis beralih ke pekerjaan lain yang sudah siap.

system calls system calls

The first operating system to introduce system calls was University of Machester's Atlas I Supervisor . w78 Sistem operasi pertama yang memperkenalkan sistem panggilan Universitas adalah Machester's Atlas aku Supervisor. W78

time sharing pembagian waktu

mid 1960s pertengahan 1960-an

Some operating systems from the mid-1960s include: Atlas I Supervisor , DOS/360 , Input Output Selector , and Master Control Program . Beberapa sistem operasi dari pertengahan 1960-an mencakup: Atlas Aku Supervisor, DOS/360, Input Output Selector, dan Master Control Program.

late 1960s akhir 1960-an

Some operating systems from the late-1960s include: BPS/360 , CAL , CHIPPEWA , EXEC 3 , and EXEC 4 , EXEC 8 , GECOS III , George 1 , George 2 , George 3 , George 4 , IDASYS , MASTER , Master Control Program , OS/MFT , OS/MFT-II , OS/MVT , OS/PCP , and RCA DOS . Beberapa sistem operasi dari akhir 1960-an mencakup: BPS/360, CAL, Chippewa, EXEC 3, dan 4 EXEC, EXEC 8, GECOS III, George 1, George 2, George 3, George 4, IDASYS, MASTER, Master Control Program , OS / mQ, OS / MQ-II, OS / mvx, OS / PCP, dan RCA DOS.

microprocessors mikroprosesor

In 1968 a group of scientists and engineers from Mitre Corporation (Bedford, Massachusetts) created Viatron Computer company and an intelligent data terminal using an 8-bit LSI microprocessor from PMOS technology. Pada tahun 1968 sekelompok ilmuwan dan insinyur dari Mitre Corporation (Bedford, Massachusetts) diciptakan Komputer Viatron perusahaan dan terminal data yang cerdas menggunakan 8-bit PMOS LSI mikroprosesor dari teknologi. A year later in 1969 Viatron created the 2140, the first 4-bit LSI microprocessor. Setahun kemudian pada tahun 1969 Viatron menciptakan 2140, yang pertama LSI 4-bit mikroprosesor. At the time MOS was used only for a small number of calculators and there simply wasn't enough worldwide manufacturing capacity to build these computers in quantity. Pada waktu MOS hanya digunakan untuk sejumlah kecil kalkulator dan hanya ada tidak cukup kapasitas produksi di seluruh dunia untuk membangun komputer ini dalam kuantitas.

Other companies saw the benefit of MOS, starting with Intel's 1971 release of the 4-bit 4004 as the first commercially available microprocessor. Perusahaan lain melihat manfaat dari MOS, dimulai dengan 1971 Intel merilis 4-bit 4.004 sebagai mikroprosesor pertama tersedia secara komersial. In 1972 Rockwell released the PPS-4 microprocessor, Fairchild released the PPS-25 microprocessor, and Intel released the 8-bit 8008 microprocessor. Pada tahun 1972 merilis Rockwell PPS-4 microprocessor, Fairchild merilis PPS-25 microprocessor, dan Intel merilis 8-bit mikroprosesor 8.008. In 1973 National released the IMP microprocessor. Pada tahun 1973 dirilis Nasional IMP mikroprosesor.

In 1973 Intel released the faster NMOS 8080 8-bit microprocessor, the first in a long series of microprocessors that led to the current Pentium. Pada tahun 1973 Intel merilis lebih cepat NMOS 8080 8-bit mikroprosesor, yang pertama dalam serangkaian panjang mikroprosesor yang menuju Pentium saat ini.

In 1974 Motorola released the 6800, which included two accumulators, index registers, and memory-mapped I/O. Pada tahun 1974 Nokia merilis 6800, yang termasuk dua akumulator, register indeks, dan memori-dipetakan I / O. Monolithic Memories introduced bit-slice microprocessing. Kenangan monolitik memperkenalkan microprocessing bit-slice. In 1975 Texas Instruments introduced a 4-bit slice microprocessor and Fairchild introduced the F-8 microprocessor. Texas Instruments pada tahun 1975 memperkenalkan 4-bit slice memperkenalkan mikroprosesor dan Fairchild F-8 mikroprosesor.

early 1970s awal 1970-an

Some operating systems from the early-1970s include: BKY , Chios , DOS/VS , Master Control Program , OS/VS1 , and UNIX . Beberapa sistem operasi dari awal 1970-an mencakup: BKY, Chios, DOS / VS, Master Control Program, OS/VS1, dan UNIX.

In 1970 Ken Thompson of AT&T Bell Labs suggested the name “ Unix ” for the operating system that had been under development since 1969. Pada tahun 1970 Ken Thompson dari AT & T Bell Labs mengusulkan nama "Unix" untuk sistem operasi yang telah di bawah pembangunan sejak tahun 1969. The name was an intentional pun on AT&T's earlier Multics project ( uni- means “one”, multi- means “many”). Nama itu pun yang disengaja pada AT & T sebelumnya proyek Multics (uni-berarti "satu", multi-berarti "banyak").

mid 1970s pertengahan 1970-an

Some operating systems from the mid-1970s include: Master Control Program . Beberapa sistem operasi dari pertengahan 1970-an mencakup: Master Control Program.

In 1973 the kernel of Unix was rewritten in the C programming language. Pada tahun 1973 inti Unix itu ditulis ulang dalam C programming language. This made Unix the world's first portable operating system, capable of being easily ported (moved) to any hardware. Ini membuat Unix pertama di dunia sistem operasi portabel, mampu menjadi mudah porting (pindah) untuk piranti keras. This was a major advantage for Unix and led to its widespread use in the multi-platform environments of colleges and universities. Ini adalah keuntungan besar untuk Unix dan mendorong penggunaan yang luas dalam multi-platform lingkungan perguruan tinggi dan universitas.

late 1970s akhir tahun 1970-an

Some operating systems from the late-1970s include: EMAS 2900 , General Comprehensive OS , OpenVMS , OS/MVS . Beberapa sistem operasi dari akhir 1970-an mencakup: EMAS 2900, Komprehensif Umum OS, OpenVMS, OS / MVS.

1980s 1980

Some operating systems from the 1980s include: AmigaOS , DOS/VSE , HP-UX , Macintosh , MS-DOS , and ULTRIX . Beberapa sistem operasi dari tahun 1980-an mencakup: AmigaOS, DOS / VSE, HP-UX, Macintosh, MS-DOS, dan Ultrix.

1990s 1990

Some operating systems from the 1990s include: B e OS , BSDi , FreeBSD , NeXT , OS/2 , Windows 95 , Windows 98 , and Windows NT . Beberapa sistem operasi dari tahun 1990-an mencakup: B e OS, BSDI, FreeBSD, NeXT, OS / 2, Windows 95, Windows 98, dan Windows NT.

2000s 2000

Some operating systems from the 2000s include: Mac OS X , Syllable , Windows 2000 , Windows Server 2003 , Windows ME , and Windows XP . Beberapa sistem operasi dari tahun 2000-an termasuk: Mac OS X, suku kata, Windows 2000, Windows Server 2003, Windows ME, dan Windows XP.

UNIX takes over mainframes UNIX mengambil alih mainframe

I am skipping ahead to the development and spread of UNIX , not because the early history isn't interesting, but because I notice that a lot of people are searching for information on UNIX history. Aku melompat-lompat di depan untuk pengembangan dan penyebaran UNIX †, bukan karena sejarah awal tidak menarik, tapi karena aku melihat bahwa banyak orang mencari informasi mengenai sejarah UNIX.

UNIX was orginally developed in a laboratory at AT&T's Bell Labs (now an independent corporation known as Lucent Technologies). UNIX adalah orginally dikembangkan di sebuah laboratorium di AT & T's Bell Labs (sekarang sebuah perusahaan independen yang dikenal sebagai Lucent Technologies). At the time, AT&T was prohibited from selling computers or software, but was allowed to develop its own software and computers for internal use. Pada waktu itu, AT & T dilarang menjual komputer atau perangkat lunak, namun diizinkan untuk mengembangkan perangkat lunak dan komputer sendiri untuk penggunaan internal. A few newly hired engineers were unable to get valuable mainframe computer time because of lack of seniority and resorted to writing their own operating system (UNIX) and programming language (C) to run on an unused mainframe computer still in the original box (the manufacturer had gone out of business before shipping an operating system). Beberapa insinyur yang baru direkrut tidak dapat mendapatkan waktu komputer mainframe berharga karena kurangnya senioritas dan terpaksa untuk menulis sistem operasi mereka sendiri (UNIX) dan bahasa pemrograman (C) untuk dijalankan pada komputer mainframe yang tidak dipakai masih dalam kotak asli (produsen telah keluar dari bisnis sebelum pengiriman sebuah sistem operasi).

AT&T's consent decree with the US Justice Department on monopoly charges was interpretted as allowing AT&T to release UNIX as an open source operating system for academic use. AT & T ketetapan persetujuan dengan Departemen Kehakiman AS pada tuduhan monopoli interpretted sebagai mengizinkan AT & T untuk melepaskan UNIX sebagai sistem operasi open source untuk penggunaan akademis. Ken Thompson, one of the originators of UNIX, took UNIX to the University of California, Berkeley, where students quickly started making improvements and modifications, leading to the world famous Berkeley Standard Distribution (BSD) form of UNIX. Ken Thompson, salah satu originators UNIX, mengambil UNIX ke University of California, Berkeley, di mana para siswa dengan cepat mulai membuat perbaikan dan modifikasi, yang mengarah ke terkenal di dunia Berkeley Standard Distribution (BSD) UNIX bentuk.

UNIX quickly spread throughout the academic world, as it solved the problem of keeping track of many (sometimes dozens) of proprietary operating systems on university computers. UNIX dengan cepat menyebar ke seluruh dunia akademis, seperti memecahkan masalah melacak banyak (kadang-kadang puluhan) dari sistem operasi berpemilik di komputer universitas. With UNIX all of the computers from many different manufacturers could run the same operating system and share the same programs (recompiled on each processor). Dengan UNIX seluruh komputer dari berbagai produsen dapat menjalankan sistem operasi yang sama dan program yang sama (direkompilasi pada setiap prosesor).

When AT&T settled yet another monopoly case, the company was broken up into “Baby Bells” (the regional companies operating local phone service) and the central company (which had the long distance business and Bell Labs). Ketika AT & T diselesaikan kasus monopoli lagi, perusahaan ini dipecah menjadi "Baby Bells" (daerah operasi perusahaan layanan telepon lokal) dan perusahaan pusat (yang memiliki bisnis jarak jauh dan Bell Labs). AT&T (as well as the Baby Bells) was allowed to enter the computer business. AT & T (dan juga Baby Bells) diizinkan untuk memasuki bisnis komputer. AT&T gave academia a specific deadline to stop using “encumbered code” (that is, any of AT&T's source code anywhere in their versions of UNIX). AT & T memberikan batas waktu tertentu akademisi untuk berhenti menggunakan "kode dibebani" (yaitu, setiap dari AT & T kode sumber di mana saja di versi UNIX).

This led to the development of free open source projects such as FreeBSD , NetBSD , and OpenBSD , as well as commercial operating systems based on the BSD code. Hal ini menyebabkan pengembangan proyek-proyek sumber terbuka bebas seperti FreeBSD, NetBSD, dan OpenBSD, serta sistem operasi komersial berdasarkan kode BSD.

Meanwhile, AT&T developed its own version of UNIX, called System V. Although AT&T eventually sold off UNIX, this also spawned a group of commercial operating systems known as Sys V UNIXes. Sementara itu, AT & T mengembangkan versi UNIX sendiri, yang disebut Sistem V. Meskipun pada akhirnya AT & T UNIX dijual, ini juga melahirkan kelompok sistem operasi komersial yang dikenal sebagai Sys V Unix.

UNIX quickly swept through the commercial world, pushing aside almost all proprietary mainframe operating systems. UNIX dengan cepat menyapu seluruh dunia komersial, menyingkirkan hampir semua sistem operasi mainframe eksklusif. Only IBM's MVS and DEC's OpenVMS survived the UNIX onslaught. Hanya IBM's MVS dan DEC OpenVMS selamat dari serangan UNIX.

“Vendors such as Sun , IBM , DEC , SCO , and HP modified Unix to differentiate their products. "Vendor seperti Sun, IBM, Desember, SCO, dan HP diubah Unix untuk membedakan produk mereka. This splintered Unix to a degree, though not quite as much as is usually perceived. Pecah ini Unix untuk gelar, meskipun tidak cukup sebanyak biasanya dirasakan. Necessity being the mother of invention, programmers have created development tools that help them work around the differences between Unix flavors. Kebutuhan menjadi ibu dari penemuan, programer telah menciptakan alat-alat pengembangan yang membantu mereka bekerja di sekitar perbedaan antara rasa Unix. As a result, there is a large body of software based on source code that will automatically configure itself to compile on most Unix platforms, including Intel-based Unix. Akibatnya, ada tubuh besar perangkat lunak berdasarkan kode sumber yang akan secara otomatis mengkonfigurasi dirinya sendiri untuk mengkompilasi pada kebanyakan platform Unix, termasuk Intel berbasis Unix.

Regardless, Microsoft would leverage the perception that Unix is splintered beyond hope, and present Windows NT as a more consistent multi-platform alternative.” —Nicholas Petreley, “The new Unix alters NT's orbit”, NC World w74 Bagaimanapun, Microsoft akan memanfaatkan persepsi yang ada di Unix yang pecah di luar harapan, dan sekarang Windows NT sebagai yang lebih konsisten alternatif multi-platform. "-Nicholas Petreley," mengubah UNIX baru NT's orbit ", NC Dunia w74

UNIX to the desktop UNIX ke desktop

Among the early commercial attempts to deploy UNIX on desktop computers was AT&T selling UNIX in an Olivetti box running a w74 680x0 assembly language is discussed in the assembly language section . Microsoft partnered with Xenix to sell their own version of UNIX. w74 Apple computers offered their A/UX version of UNIX running on Macintoshes . Di antara usaha-usaha komersial awal untuk menggunakan UNIX komputer desktop adalah AT & T menjual UNIX dalam sebuah kotak Olivetti menjalankan w74 bahasa assembly 680x0 didiskusikan dalam bagian bahasa assembly. Microsoft bermitra dengan menjual Xenix versi mereka sendiri UNIX. W74 komputer Apple ditawarkan mereka A / UX versi UNIX yang berjalan pada Macintoshes. None of these early commercial UNIXs was successful. Tak satu pun dari awal ini berhasil UNIXs komersial. “Unix started out too big and unfriendly for the PC. "Unix mulai keluar terlalu besar dan tidak ramah untuk PC. … It sold like ice cubes in the Arctic. ... Itu dijual seperti es batu di Arktik. … Wintel emerged as the only 'safe' business choice”, Nicholas Petreley. w74 . ... Wintel muncul sebagai satu-satunya 'aman' pilihan bisnis ", Nicholas Petreley. W74.

“Unix had a limited PC market, almost entirely server-centric. SCO made money on Unix, some of it even from Microsoft. "Unix memiliki pasar PC yang terbatas, hampir seluruhnya server-centric. SCO menghasilkan uang di Unix, beberapa bahkan dari Microsoft. (Microsoft owns 11 percent of SCO, but Microsoft got the better deal in the long run, as it collected money on each unit of SCO Unix sold, due to a bit of code in SCO Unix that made SCO somewhat compatible with Xenix. The arrangement ended in 1997.)” —Nicholas Petreley, “The new Unix alters NT's orbit”, NC World w74 (Microsoft memiliki 11 persen dari SCO, tapi Microsoft mendapat kesepakatan yang lebih baik dalam jangka panjang, seperti mengumpulkan uang pada setiap unit SCO Unix dijual, karena sedikit kode di SCO Unix yang membuat agak kompatibel dengan SCO Xenix. Susunan berakhir pada tahun 1997.) "-Nicholas Petreley," mengubah UNIX baru NT's orbit ", NC Dunia w74