Kamis, 07 Juni 2012

Alamat Perangkat Keras Port I/O

 1. Fungsi dan Jenis-Jenis Port Pada Komputer
Port merupakan colokan yang terpasang di bagian belakang case yang berfungsi sebagai penghubung antara komponen di dalam unit system dengan piranti diluar, sebagai contoh, port untuk menghubungkan camera digital, monitor, mouse dsb.
Port dikelompokkan menjadi beberapa bagian yaitu ; Port Serial, Port Parallel, Port USB, port SCSI, Port
Infra merah serta port-port yang lain.
a. Port Serial
Biasa digunakan untuk melakukan tranmisi data yang beroreintasi pada pengiriman sebuah bit per waktu, kareana sifatnya demikian pegiriman data berjalan agak lambat, biasanya digunakan untuk mengoneksi piranti seperti : printer, mouse, modem, PLC (programmable Logic controller), pembaca kartu maknetik dan pembaca barcode. Port ini sering dinyatakan dengan nama COM. Konektor yang digunakan adalah RS-232C dengan 9 pin atau 25 pin
b. Port Parallel
Port Parallel atau sering disebut port LPT bekerja atas dasar 8 bit perwaktu, cocok untuk pengiriman data dengan cepat, tetapi dengan kabel yang pendek (tidak lebih dari 15 kaki). Umumnya digunakan untuk printer parallel, hard disk eksternal dan zip drive. Konektor yang digunakan adalah DB-25 yang terdiri dari 25 pin
c. Port USB
Port USB merupakan port yang akhir-akhir ini sangat populer digunakan, yang dapat digunakan untuk menghubungkan berbagai piranti seperti camera digital, printer, scanner, zip drive dan sebagainya, port ini mempunyai kecepatan tinggi bila dibandingkan dengan port serial maupun port paralel
d. Port SCSI
Port SCSI adalah Small Compter System Interface yang merupakan jenis port yang memungkinkan koneksi antar piranti dalam bentuk sambung menyambung. Port mempunyai kecepatan tinggi, dengan kecepatan tranfernya 32 bit per waktu, biasa digunakan untuk menghubunkan hard drive, scanner, printer dan tape drive, konektor yang digunakan adalah DB-25 dan 50 pin Centronics SCSI.
e. Port Infra Merah
Port ini digunakan untuk mendukung hubungan tanpa kabel, misalnya untuk menghubungkan mouse yang menggunakan infra merah sebagai media tranmisi, mengirim data dari ponsel, dan sebagainya
f. Port-Port Lain
Banyak port lain yang tidak tergolong pada port-port diatas, misalnya port untuk monitor, port keyboard, port mouse, port speaker, port jaringan, port dll
 PORT USB

Universal Serial Bus (USB) : Sebuah bus I/O (input/output) yang dapat mentransfer data hingga 12 megabit per detik.
Selamat tinggal port paralel dan serial yang lamban, kini jamannya Universal Serial Bus (USB). Lebih cepat, lebih kuat dan lebih fleksibel serta benar-benar berazaskan Plug and Play (bukan lagi Plug and Pray). Bahkan USB versi 2.0 yang baru saja dikeluarkan mampu memberikan tingkat kinerja dan kecepatan yang sebanding dengan bus berkecepatan tinggi semacam IEEE 1394. Beberapa hal yang perlu Anda ketahui tentang USB:
Lebih cepat dibanding port paralel atau serial dengan kecepatan transfer hingga 12 mbps (bahkan untuk versi terbaru, bisa mencapai kecepatan 480 mbps!)
Dapat mengkoneksikan hingga 127 periferal
Diterima secara luas, baik dari sisi hardware, software (baca: sistem operasi), ataupun pengguna
Membutuhkan Windows 98 ke atas untuk kompatibilitas secara penuh
PORT PARALEL

Port paralel (DB-25) adalah salah satu jenis soket pada personal komputer untuk berkomunikasi dengan peralatan luar seperti printer model lama. Karena itu parallel port sering juga disebut printer port. Perusahaan yang memperkenalkan port ini adalah Centronic, maka port ini juga disebut dengan Centronics port. Kesederhanaan port ini dari sisi pemrograman dan antarmuka dengan hardware membuat port ini sering digunakan untuk percobaan-percobaan sederhana dalam perancangan peralatan elektronika.
PORT SERIAL

dalam komputasi,sebuah serial port adalah serial komunikasi melalui antart muka atau fisik yang transfer informasi atau memperkecil pada satu bit pada satu waktu atau kontras paralel port.
PORT PS/2
Ps 2 konektor di gunakan untuk menghubungkan beberapa keyboard dan mouse ke PC kompatibel dengan sistem komputer. Namanya berasal dari IBM Personal System / 2 rangkaian komputer pribadi, yang telah diperkenalkan pada tahun 1987. Yang PS / 2 mouse Konektor umumnya menggantikan tua DE-9 RS-232 “serial mouse” konektor, sementara keyboard konektor diganti dengan yang lebih besar 5-pin DIN yang digunakan dalam IBM PC / AT desain. Yang PS / 2 mouse dan keyboard antarmuka yang mirip elektrik dan mempekerjakan protokol komunikasi yang sama. Namun, suatu sistem keyboard dan mouse port mungkin tidak yg dpt sejak dua perangkat yang berbeda menggunakan sekumpulan perintah. Mengikuti rilis USB keyboard, PS / 2 keyboard dan mouse menjadi kurang populer.
PORT VGA

Kartu VGA adalah komponen yang tugasnya menghasilkan tampilan secara visual dari komputer. Hampir semua program menghasilkan keluaran visual, kartu VGA adalah hardware yang memberikan perintah kepada monitor untuk menampilkan keluaran visual yang dapat kita lihat.

referensi port I/O perangkat keras


Keyboard atau Mouse, adalah perangkat yang sudah umum dipakai didalam menggunakan komputer. Perangkat tersebut tersambung ke dalam komputer melalui sambungan (port) yang biasa disebut I/O Port hardware. Penjelasan ini akan menjadi penjelasan yang bersifat teknis dan praktis untuk panduan bagi anda untuk menggunakan interface dari keyboard dan mouse.

Keyboard.
Secara singkat, untuk memudahkan anda mendeteksi perubahan yang terjadi pada keyboard, anda bisa memeriksa port, memeriksa hapalan(memory) komputer atau dengan menggunakan interupt. Jika menggunakan port atau dengan menggunakan unit hapalan, maka sistem yang harus digunakan adalah dengan sistem polling. Dimana program secara berulang ulang memeriksa port yang dimaksud apakah sudah terisi data atau belum. Adapula interupt, adalah sistem komputer yang akan membuat komputer terhenti supaya menangani suatu keadaan tertentu, itu sebabnya teknik ini disebut sebagai interupt(selaan). Untuk menggunakan interupt pada mode 16-bit biasanya cukup mudah, anda cukup mengganti, misalkan, untuk mouse, alamat IRQ(Interupt Request) 12 dengan alamat program anda. Sehingga setiap mouse bergerak, maka program anda akan dipanggil dan dikirimi data. Akan tetap di mode 32-bit, IRQ ini tidak berfungsi, karena perbedaan pengalamatan data, dan perbedaan jumlah rentang instruksi, dimana seperti dari namanya, mode 16-bit hanya mempunyai panjang 16-bit, dan mode 32-bit mempunyai panjang 32-bit. Mengubah alamat IRQ pada mode 32-bit biasanya sangat sukar, sehingga penggunaan polling port lebih disukai.

Port Keyboard dan Mouse mempunyai saluran data yang sama yaitu di alamat 60h, angka 60 ini dalam hexa yang kalau didesimalkan berarti alamat port 96(d). Port keyboard dan mouse ini ditangani oleh mikrontroler khusus yang bernama 2352(BSJS/CMIIW). Setiap port, mempunyai panjang 8-bit, dimana terkadang tiap tiap bit mempunyai makna tertentu, misalkan bit 0, bit pertama paling kiri, jika bernilai satu, maka keyboard aktif, dan jika bernilai nol maka keyboard tidak aktif. Keyboard dan Mouse, dikontrol melalui port 64h, atau port, 100 desimal. Port tersebut adalah port 2 arah, selain bisa menjadi input, bisa juga dijadikan sebagai output. Sebagai input, tiap tiap bit di port 64h mempunyai definisi sebagai berikut

;   Bit     Function
;    7      1 = Parity error
;    6      1 = General Time Out
;    5      1 = Auxiliary output buffer full
;    4      1 = Inhibit switch
;    3      1 = Command/data
;    2      1 = System flag
;    1      1 = Input buffer full
;    0      1 = Output buffer full

Setiap kali anda hendak mengirimkan data ke port 64h ini, anda harus menunggu bit ke 1 yang tidak lain adalah "input buffer" bit sampai mempunyai nilai 0. Karena jika bernilai 1, berarti input penuh dan data akan diabaikan. Algoritma untuk mengirimkan data bagi port ini adalah sebagai berikut:

1. Ambil data dari port 64h
2. Tes, apakah bit bernilai 0
3. Jika tidak kembali ke langkah satu.

Atau dalam bahasa mesin sebagai berikut

mov dx,64h   ; Pindahkan nilai 64h ke register dx
penanda_1:
in al,dx   ; Ambil data dari port yang ditunjuk DX
      ; Simpan ke register al
bt al,1      ; Test bit ke 1 dengan cara mennyalin bit
      ; ke-1 dari al ke penanda prosesor Carry
jc penanda_1   ; Jika penanda prosesor carry di set atau
      ; Bernilai 1, maka lompat ke "penanda_1"
out dx,data   ; Kirimkan data

Program akan terus melompat ke penanda selama angka yang dimaksud tidak didapat. Jika terjadi kerusakan di saluran 064h bukan tidak mungkin komputer anda akan "hang" dan tidak bisa digunakan, karena seluruh proses menunggu sampai bisa mengirimkan data ke perangkat keras.
Di komputer IBM, Port untuk input biasanya berada di port 060h. Seharusnya port 60h ini hanya untuk input saja, akan tetapi di komputer modern ini, selain sebagai input, bisa juga dijadikan sebagai output, terutama untuk mouse. Karena menggunakan mouse lebih rumit daripada keyboard.

Sebagai Output Port 064h Mempunyai perintah perintah sebagai berikut:

20   Transmit keyboard controller's command byte to system as a scan code at port 60h.
60   The next byte written to port 60h will be stored in the keyboard controller's command byte.
A4   Test if a password is installed (PS/2 only). Result comes back in port 60h. 0FAh means a password is installed, 0F1h means no password.
A5   Transmit password (PS/2 only). Starts receipt of password. The next sequence of scan codes written to port 60h, ending with a zero byte, are the new password.
A6   Password match. Characters from the keyboard are compared to password until a match occurs.
A7   Disable mouse device (PS/2 only). Identical to setting bit five of the command byte.
A8   Enable mouse device (PS/2 only). Identical to clearing bit five of the command byte.
A9   Test mouse device. Returns 0 if okay, 1 or 2 if there is a stuck clock, 3 or 4 if there is a stuck data line. Results come back in port 60h.
AA   Initiates self-test. Returns 55h in port 60h if successful.
AB   Keyboard interface test. Tests the keyboard interface. Returns 0 if okay, 1 or 2 if there is a stuck clock, 3 or 4 if there is a stuck data line. Results come back in port 60h.
AC   Diagnostic. Returns 16 bytes from the keyboard's microcontroller chip. Not available on PS/2 systems.
AD   Disable keyboard. Same operation as setting bit four of the command register.
AE   Enable keyboard. Same operation as clearing bit four of the command register.
C0   Read keyboard input port to port 60h. This input port contains the following values:

bit 7: Keyboard inhibit keyswitch (0 = inhibit, 1 = enabled).

bit 6: Display switch (0=color, 1=mono).

bit 5: Manufacturing jumper.

bit 4: System board RAM (always 1).

bits 0-3: undefined.
C1   Copy input port (above) bits 0-3 to status bits 4-7. (PS/2 only)
C2   Copy input pot (above) bits 4-7 to status port bits 4-7. (PS/2 only).
D0   Copy microcontroller output port value to port 60h (see definition below).
D1   Write the next data byte written to port 60h to the microcontroller output port. This port has the following definition:

bit 7: Keyboard data.

bit 6: Keyboard clock.

bit 5: Input buffer empty flag.

bit 4: Output buffer full flag.

bit 3: Undefined.

bit 2: Undefined.

bit 1: Gate A20 line.

bit 0: System reset (if zero).



Note: writing a zero to bit zero will reset the machine.

Writing a one to bit one combines address lines 19 and 20 on the PC's address bus.
D2   Write keyboard buffer. The keyboard controller returns the next value sent to port 60h as though a keypress produced that value. (PS/2 only).
D3   Write mouse buffer. The keyboard controller returns the next value sent to port 60h as though a mouse operation produced that value. (PS/2 only).
D4   Writes the next data byte (60h) to the mouse (auxiliary) device. (PS/2 only).
E0   Read test inputs. Returns in port 60h the status of the keyboard serial lines. Bit zero contains the keyboard clock input, bit one contains the keyboard data input.
Fx   Pulse output port (see definition for D1). Bits 0-3 of the keyboard controller command byte are pulsed onto the output port. Resets the system if bit zero is a zero.

Untuk keyboard, perintah yang akan kita gunakan adal perintah D2, yang tidak lain untuk menyuruh prosesor mengirimkan tombol terakhir yang ditekan oleh pengguna. Setiap pengiriman data untuk beberapa perangkat keras, seringkali mempunyai nilai balik yang telah didefinisikan, akan tetapi untuk hal ini yaitu keyboard, hal tersebut tidak diperlukan. Saat anda mengirimkan data, maka data yang berikutnya akan anda ambil, maka itu adalah data yang terakhir anda tekan, biarpun anda terakhir menekan misalkan 10 menit yang lalu karena komputer anda ngehang.
Untuk memberi perintah kepada prosesor untuk mengambil data, anda harus menggunakan perintah "in". Yang berarti input. Langkah langkah tersebut adalah sebagai berikut.

mov dx,64h   ; Pindahkan nilai 64h ke register dx
penanda_1:
in al,dx   ; Ambil data dari port yang ditunjuk DX
      ; Simpan ke register al
bt al,1      ; Test bit ke 1 dengan cara mennyalin bit
      ; ke-1 dari al ke penanda prosesor Carry
jc penanda_1   ; Jika penanda prosesor carry di set atau
      ; Bernilai 1, maka lompat ke "penanda_1"
out dx,0D2h   ; "Berikan saya data keyboard komputer"
mov dx,60h   ; Ingat port 60 untuk input
in dx,al   ; Data disimpan di al

Reverensi :
http://fujhyzhu.wordpress.com/2010/01/17/macam-macam-port-pc
http://iwansoenarya.blogspot.com/2012/05/referensi-port-io-perangkat-keras.html
http://tiksmadangawi.blogspot.com/2010/05/port-pada-komputer.html

Jumat, 13 April 2012

System Call


System call merupakan mekanisme yang digunakan oleh program aplikasi untuk meminta service darisistem operasi. Service yang dimaksud adalah services yang dikelola oleh sistem operasi seperti storage,memory, network, process management, mengakses perangkat keras, dll.
Komputer digunakan untuk melakukan suatu proses yang dikehendaki user. Oleh karena itu harus ada suatu bentuk komunikasi antara user dan hardware. Komunikasi itu terjadi dalam bentuk system calls. SO melalui shell-nya akan menangkap perintah dari user yang kemudian akan dikomunikasikan melalui system calls. Disinilah peran SO sebagai jembatan komunikasi antara user dan hardware itu terjadi. System calls itu sendiri umumnya ditulis dalam bahasa C dan C++. Mengenai shell, shell itu sendiri secara umum adalah layer yang berfungsi sebagai interface antara user dan inti dalam sistem operasi (kernel). Melalui shell, user dapat memberi perintah-perintah yang akan dikirim ke sistem operasi, sehingga shell ini merupakan layer yang menerima interaksi dari user secara langsung. Shell dalam SO secara umum dibagi menjadi 2, Command Line(CLI) dan Graphical(GUI). Jadi dengan kata lain, system calls berperan sebagai interface dalam layanan-layanan yang disediakan oleh sistem operasi.
Untuk lebih jelasnya lihat gambar berikut. Contoh di atas adalah sytem calls di dalam program yang membaca data dari satu file lalu meng- copy-nya ke file lain.
Gambar 6.2. Contoh System Call



System call menyediakan antar muka antara program yang
sedang berjalan dengan sistem operasi.

System call biasanya tersedia dalam bentuk instruksi bahasa
Assembly

System call dikelompokkan dalam 5 kategori:
Kontrol Proses
Manipulasi File
Manipulasi Device
Informasi Lingkungan
Komunikasi
SISTEM CALL
1. Kontrol Proses (1)
• Hal-hal yang dilakukan:
• Mengakhiri (end) dan membatalkan (abort);
• Mengambil (load) dan eksekusi (execute);
• Membuat dan mengakhiri proses;
• Menentukan dan mengeset atribut proses;
Wait for time;
ignal event;
• Mengalokasikan dan membebaskan memori.
SISTEM CALL
1. Kontrol Proses (2)
Contoh: Sistem operasi pada MS-DOS menggunakan sistem singletasking yang
memeiliki command interpreter yang akan bekerja pada saat start (Gambar 2-2).Karena singletasking, maka akan menggunakan metode yang sederhana
untuk menjalankan program dan tidak akan membuat proses baru.


2. Manipulasi File
Hal-hal yang dilakukan:
• Membuat dan menghapus file;
• Membuka dan menutup file;
• Membaca, menulis, dan mereposisi file;
• Menentukan dan mengeset atribut file;

3. Manipulasi Device
Hal-hal yang dilakukan:
• Meminta dan mebebaskan device;
• Membaca, menulis, dan mereposisi device;
• Menentukan dan mengeset atribut device;

4. Informasi Lingkungan
• Hal-hal yang dilakukan:
• Mengambil atau mengeset waktu atau tanggal;
• Mengambil atau mengeset sistem data;
• Mengambil atau mengeset proses, file atau atributatribut device;

5. Komunikasi
Hal-hal yang dilakukan:
• Membuat dan menghapus sambungan
• Mengirima dan menerima pesan;
• Mentransfer satus informasi;

STRUKTUR DASAR SISTEM OPERASI

- Sistem monolitik
Sistem berlapis
Sistem dengan mesin maya
Sistem dengan client – server
Sistem berorientasi objek

STRUKTUR DASAR SISTEM OPERASI
1. Sistem monolitik
• Sistem operasi sebagai kumpulan prosedur dimana prosedurdapat saling dipanggil oleh prosedur lain di sistem bila diperlukan.
• Kernel berisi semua layanan yang disediakan sistem operasi untuk pemakai.

Kelemahan :

a.       pengujian dan penghilangan kesalahan sulit karena tak dapat dipisahkan dan dilokalisasi

b.      sulit dalam menyediakan fasilitas pengamanan


c.       merupakan pemborosan bila setiap komputer harus menjalankan kernel monolitik sangat besar sementara sebenarnya tidak memerlukan seluruh layanan yang disediakan kernel Tidak fleksibel.

d.      kesalahan pemrograman satu bagian dari kernel menyebabkan matinya seluruh system.




Keunggulan :
– Layanan dapat dilakukan sangat cepat karena terdapat di satu ruang alamat
           
• UNIX sampai saat ini berstruktur monolitik.
• Meskipun monolitik, yaitu seluruh komponen/subsistem system operasi terdapat di satu ruang alamat tetapi secara rancangan adalah berlapis.
• UNIX menggunakan konsep kernel loadable modules, yaitu :

a.       bagian-bagian kernel terpenting berada di memori utama secara tetap.

b.      bagian-bagian esensi lain berupa modul yang dapat ditambahkan ke kernel saat diperlukan dan dicabut begitu tidak digunakan lagi di waktu jalan (run-time).

2. Sistem Berlapis
• Sistem operasi dibentuk secara hirarki berdasar lapisan-lapisan, dimana lapisan-lapisan bawah memberi layanan lapisan lebih atas.
• Modularisasi sistem dilakukan dengan cara memecah system operasi menajdi beberapa lapis (tingkat). Lapisan terendah (layer 0) adalah perangkat keras dan lapisan teratas (layer N) adalah user interface.

Keunggulan :

– Memiliki semua keunggulan rancangan modular, yaitu system dibagi menjadi beberapa modul dan tiap modul dirancang secara independen. Tiap lapisan dapat dirancang, dikode, dan diuji secara independen.

• Kelemahan :
– Fungsi – fungsi sistem operasi harus diberikan ke tiap lapisan secara hati-hati.

3. Sistem Dengan MesinMaya (1)

• Sistem operasi dapat menjalankan aplikasi-aplikasi untuk system operasi lain konsep operating system emulator.
Contoh :

– MS Windows NT dapat menjalankan aplikasi untuk MS-DOS. Aplikasi tersebut dijalankan sebagai masukan bagi subsistem di MS-Windows NT yang mengemulsikan system calls yang
dipanggil aplikasi dengan Win32API (system calls di MS Windows NT).

– Pengembang Linux membuat DOSEMU agar aplikasi untuk MSDOS dapat dijalankan di Linux, WINE agar aplikasi untuk MSWindows dapat dijalankan di Linux, iBCS agar aplikasi untuk Unix dapat dijalankan di Linux, dll.

4. Sistem Dengan Client – Server (1)

• Sistem operasi merupakan kumpulan proses dengan prosesproses dikategorikan sebagai server dan client.

Server : proses yang menyediakan layanan
Client : proses yang memerlukan/meminta layanan.
• Proses client yang memerlukan layanan mengirim pesan ke server dan menanti pesan jawaban.
• Proses server setelah melakukan tugas yang diminta, mengirim pesan jawaban ke proses client.
• Server hanya menanggapi permintaan client dan tidak memulai percakapan dengan client.
4. Sistem Dengan Client – Server (2)

Keunggulan :
– pengembangan dapat dilakukan secara modular
– kesalahan (bugs) di satu subsistem (diimplementasikan sebagai satu proses) tidak merusak subsistem-subsitem lain sehingga tidak mengakibatkan satu sistem mati secara keseluruhan.
– mudah diadaptasi untuk sistem tersebar.

Kelemahan :
– layanan dilakukan lambat karena harus melalui pertukaran pesan
– pertukaran pesan dapat menjadi bottleneck.

5. Sistem Berorientasi Objek

• Pada sistem berorientasi objek, layanan diimplementasikan sebagai kumpulan objek.
• Objek mengkapsulkan struktur data dan sekumpulan operasi pada struktur data itu.
• Tiap objek diberi tipe yang menandai properti objek seperti proses, direktori, berkas, dsb.
• Dengan memanggil operasi yang didefinisikan di objek, data yang dikapsulkan dapat diakses dan dimodifikasi.

• Contoh sistem operasi berorientasi objek, antara lain :
– Eden, Choices, X-kernel, Medusa, Clouds, Amoeba, dsb.
– Sistem operasi MS Windows NT telah mengadopsi beberapa
teknologi berorientasi objek tapi belum keseluruhan.

Sumber referensi
- http://bebas.ui.ac.id/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch06s04.html
- ikc.unimal.ac.id/umum/ibam/ibam-os-html/x395.html
- http://dewa18.wordpress.com/2009/10/28/operasi-sistem-komputer-struktur-sistem-       operasi-dan-system-call/