Terima kasih telah mengunjungi blog saya dan jangan lupa memberi komentar setelah membaca artikel

Minggu, 04 Desember 2011

Piranti Output Input

Apa itu I/O ?
Proses memasukan dan menghasikan data
Perangkat I/O ?
peranti yang memiliki perilaku meminta input / menghasilkan output
Bus ?
jalur komunikasi antar device
Bagaimana CPU & Perangkat I/O berkomunikasi?
dengan transfer data melalui bus, CPU meminta atau mengisi data pada register-register di port I/O
Perangkat I/O
Dapat dibagi menjadi beberapa kategori :
Menurut Silberchatz, dkk :
1. Storage devices
Contoh : harddisk, cdrom, floppy disk
2. Transmission devices
Contoh : LAN card
3. Human interface devices
Contoh : keyboard, speaker, monitor

Perangkat I/O
Menurut MDGR :
1. Block devices :
transfer data perblock
contoh : disk
2. Character devices :
transfer data perbyte
contoh: keyboard

Perangkat I/O
Pengendali perangkat
Pengendali perangkat (device driver / controller / adapter) ?
peranti elektronis yang berfungsi untuk mengoperasikan port, bus, atau device.
Contoh : serial port controller, SCSI controller, disk
controller
Polling ?
proses yang dilakukan oleh host berupa pemeriksaan status register device secara
berulang, hingga tanda busy di-clear oleh device.
Handshaking ?
proses komunikasi antara host dengan device, dimana prosesnya terjadi berulang-ulang.
Polling:
interaksi host-controller
Contoh : host ingin menuliskan output melalui suatu
port.
1.host membaca busy bit secara berulang selama belum clear.
2.host mengisi perintah write pada command register dan menulis bytes (output) ke data-out register.
3.host men-set command-ready bit.
Polling:
interaksi host-controller
4.setelah controller melihat command ready telah di set, ia men-set busy bit.
5.controller melihat perintah yg ada di command register, lalu melakukan operasi yg diperintahkan.
6.controller men-clear command ready bit, mengurus error bit, men-clear busy bit.
Interupsi ?
Sinyal yang dikirimkan oleh device untuk meminta handling oleh host.
Mekanisme dasar Interupsi
Ketika CPU mendeteksi adanya sinyal interrupt, CPU akan menyimpan state proses saat itu, lalu kemudian memanggil interupt handler untuk melayani device yang mengirimkan interrupt.
Siklus penanggulangan interupsi
Direct Memory Access
PIO ?
CPU menggunakan Instruksi khusus I/O untuk me-manage I/O
DMA ?
Untuk menanggulangi pembebanan CPU karena programmed I/O pada transfer data dalam jumlah besar.
DMA controller ?
Hardware berupa Prosessor khusus untuk melakukan DMA
Menggantikan CPU untuk transfer data secara langsung antara I/O device dengan memory
Direct Memory Access
• Cycle stealing ?
DMA melakukan transfer saat CPU tidak memakai system bus/main memory. Contoh : jeda
setelah CPU melakukan instruksi tertentu.
• DVMA ?
DMA dilakukan ke Virtual Memory, sehingga tidak perlu lagi memakai Main memory dan bebas intervensi dari CPU
Direct Memory Access
Sumber: operating system concepts 6th ed, Silberschatz dkk.


Sabtu, 15 Oktober 2011

Mencari Bilangan genap dan ganji di c++

#include
#include
main()
{
int a,b, d,e, i;
cout<<"Masukkan bil min : "; cin>>a;
cout<<"Masukkan bil max: "; cin>>b;


cout<<"Deret Bilangan ganjil adalah sebagai berikut : "< for(i=a;i<=b;i++)
{
if(i%2!=0)
{
cout< }
}
cout< for(i=a;i<=b;i++)
{
if(i%2!=1)
{
cout< }
}


getch();
}


Sabtu, 08 Oktober 2011

Membuat program masukan data mahasiswa di c++

contoh programnya

#include
#include
#include
#include
struct{
char nama[20],npm[15],jurusan[10];
}
mhs[2];
void main(){
int i,data;
int x=1;
cout <<"input data mahasiswa";
cout<<"\nbanyaknya data : ";
cin>>data;
for(i=0;i>mhs[i].npm;=""  cout<<"jurusan=""  cout<<"nama=""  }="" -="" :="" <="" catatan="" cout<<"data="" cout<<"npm="" data;i++)="" gets(mhs[i].jurusan);="" gets(mhs[i].nama);="" ke="" stdlib.h="" x++;="" {="">

gets = untuk menampilkan type data char


Belajar C++ bagi pemula

Pertama tama kita buat coding untuk menampilkan output

#include
void main()
{
cout<<"helloworld";
}

ket :
cout adalah untuk menampilkan output
heloworld adalah kata yang ditampilkan

contoh program untuk mencari luas segitiga
rumus l = a*t
a = alas
t = tinggi
l = luas

#include
void main()
{
int l,a,t;
cout<<"masukan alas : ";
cin>>a;
cout<<"masukan tinggi : ";
cin>>t;
l=a*t;
cout<<"hasilnya adalah : "<< l;
}
ket
int = type data integer (maka yang dihasilkan/dimasukan adalah bilangan bulat)


Rabu, 08 Juni 2011

Membuat menu menggunakan array

import java.util.Scanner;
public class Baru {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
garis();
System.out.println(" MENU PILIHAN ");
garis();
System.out.println("1. Menhitung Nilai Mahasiswa");
System.out.println("");
System.out.println("2. Exit");
garis();
System.out.println("");
System.out.print("Anda pilih no :");
int pilih=input.nextInt();

switch(pilih){
case 1:{

int[] npm=new int[20];
String[] nama=new String[20];
String[] jur=new String[20];
String[] mk=new String[20];
int[] n_tgas=new int[20];
int[] n_uts=new int[20];
int[] n_uas=new int[20];


garis();
System.out.println(" MENGHITUNG NILAI MAHASISWA");
garis();
System.out.println("");
System.out.print("Masukan jumlah data ="); int n=input.nextInt();

for(int i=1;i<=n;i++){
System.out.println("Data ke"+i +":");
System.out.print("NPM :"); npm[i]=input.nextInt();
System.out.print("Nama :"); nama[i]=input.next();
System.out.print("Jurusan :"); jur[i]=input.next();
System.out.print("Mata Kuliah :"); mk[i]=input.next();
System.out.print("Nilai tugas :"); n_tgas[i]=input.nextInt();
System.out.print("Nilai UTS :"); n_uts[i]=input.nextInt();
System.out.print("Nilai UAS :"); n_uas[i]=input.nextInt();
double rata=(n_tgas[i]+n_uts[i]+n_uas[i])/3;
System.out.println("Nilai rata-rata ="+rata);

}
break;
}
default:System.exit(0);
}
}
static void garis(){
System.out.println("==========================================");
}
}


Kamis, 19 Mei 2011

MEMBUAT MENU PILIHAN DI JAVA NETBEANS

Ini adalah code java untuk membuat menu pilihan menggunakan for, switch case, dan if
catatan : package menupil dan nama class pilih harus sama :
package menupil;
import java.util.Scanner;
public class pilih{
public static void main (String []args){
Scanner input = new Scanner (System.in);
garis();
System.out.println("            MENU PILIHAN");
garis();
System.out.println("1. MENGHITUNG NILAI RATA RATA :");
System.out.println("2. MENGHITUNG BILANGAN KELIPATAN 4");
garis();

System.out.print("Masukan pilihan kamu : ");
int pil=input.nextInt();
switch(pil){
    case 1 :{
        System.out.println("MENGHITUNG NILAI RATA RATA");
        garis();
        System.out.print("masukan nilai pertama: ");
        int a=input.nextInt();
         System.out.print("masukan nilai kedua: ");
        int b=input.nextInt();
       double rata= (a+b)/2;
       System.out.println(" nilai rata rata adalah "+rata+" ");
        break;
    }
     case 2 :{
        System.out.println("MENGHITUNG BILANGAN KELIPATAN 4");
        garis();
        int x,y;
        System.out.print("masukan nilai awal : ");
         int a=input.nextInt();
          System.out.print("masukan nilai akhir : ");
         int b=input.nextInt();
         for (int g =a; g
             if (g%4==0){
                 System.out.print(g+" ");
             }

         }
        break;
}

}
}
static void garis(){
    System.out.println("----------------------------------");
}
}

Kalo temen temen ada yang belum mengerti boleh bertanya di comentar dengan sekuat tenaga saya akan menjawab pertanyaan temen temen....


Rabu, 30 Maret 2011

Mencari Luas Segitiga (input dari keyboard)

package inputstring;

import java.util.Scanner;
public class inputkeyboard{
public static void main (String []args){
Scanner input = new Scanner (System.in);
System.out.print("masukan jari jari :");
double r = input.nextDouble();
double phi = 3.14;
double luas = (phi*r*r);
System.out.print("Luasnya : "+ luas);


}
}