Rabu, 26 November 2008

ST-INTEN

KUSMAYADI
NIM 01107007

Hubungan antara User dengan Sistem Operasi

Sistem komputer terkomposisi dari banyak unit, hanya sebagian kecil yang “in action” dalam menjalankan tugas tertentu pada suatu waktu. Maka disini kita perlukan “super controller” yang bisa memastikan bahwa sibagian besar fasilitas digunakan untuk mendapatkan keuntungan optimum. Pekerjaan tersebut hanya bisa dilakukan oelh beberapa bentuk program yang disimpan “secara internal” yang dikenal dengan “Operating System”.

Peranan sistem pengoperasian merupakan salah satu menajemen sumber daya. Sumber daya utama yang dikelolah oleh sistem operasi adalah sistem komputer terkomposisi dari banyak unit, hanya sebagian kecil yang “in action” dalam menjalankan tugas tertentu pada suatu waktu. Maka disini kita perlukan “super controller” yang bisa memastikan bahwa sebagian besar fasilitas digunakan untuk mendapatkan keuntungan optimum. Pekerjaan tersebut hanya bisa dilakukan oelh beberapa bentuk program yang disimpan “secara internal” yang dikenal dengan “Operating System”.

Jadi “Sistem Operasi” merupakan suatu program yang mengambil alih pengoperasian sistem komputer dengan memungkinkan sejumlah program dijalankan pada komputer tanpa intervensi operator manusia.

Peranan sistem pengoperasian merupakan salah satu menajemen sumber daya. Sumber daya utama yang dikelolah oleh sistem operarasi adalah:

Sumberdaya Perangkat Keras
- Prosesor
- Memori
- Perangkat I/O

Sumberdaya Perangkat Lunak
-Data
-Program

Pembagian Dari Sistem Operasi
1. Sistem Pengoperasian dan Program Kontrol
2. Sistem Translator
3. Sistem Utilitas atau program layanan/utiliti


Daftar Pustaka :


http://onlinelearningmedia.com/2008/07/17/konsep-sistem-operas

PROSES YANG DILAKUKAN SISTEM OPERASI AWAL SAMPAI KENDALI

MANAJEMEN PROSES


Proses :
Adalah program yang sedang di jalankan atau software yang sedang dilaksanakan termasuk sistem operasi yang disusun menjadi sejumlah proses sequential.

Konsep dasar :
1.Multiprogramming
Melakukan proses satu persatu secara bergantian dalam waktu yang sangat cepat / bersamaan (hardware level). Setiap proses mempunyai satu virtual CPU.
2.Pseudoparallelism
Melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan / pseudoparallelism (user level).

Model Proses :
1.Sequential Process / bergantian
2.Multiprogramming
3.CPU Switching

-peralihan prosedur dalam mengolah 1 proses ke proses lainnya.

Secara konsep setiap proses mempunyai 1 virtual CPU, tetapi pada kenyataannya adalah multiprogramming. Maka akan lebih mudah menganggap kumpulan proses yang berjalan secara parallel.
Keterangan :
a.multiprogramming untuk 4 program di memori
b.model konseptual untuk 4 proses independent, sequential
c.hanya 1 program yang aktif dalam 1 waktu = pseudoparalel

Hirarki Proses
Pemanggilan proses oleh proses lain disebut parallel. Sistem operasi menyediakan apa yang dibutuhkan oleh proses. Umumnya proses diciptakan dan dihilangkan selama operasi berlangsung.

1.Create & Destroy Proses
Sistem operasi yang mendukung konsep proses, harus menyediakan suatu cara untuk membuat (create) proses dan menghilangkan (destroy) proses.
2.Fork System Call
Mekanisme untuk membuat (create) proses yang identik dengan proses yang memanggilnya.

Pada UNIX, parent dan child process running secara parallel.
Pada DOS, parent dan child process running secara bergantian (sequential). Contohnya : MSDOS sebagai parent dan program aplikasi sebagai child.

Process scheduler : untuk pengaturan eksekusi proses

3 Status proses / bagian keadaan proses :
1.Running / kerja, benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).
2.Blocked / terhenti, tidak dapat berjalan sampai kegiatan eksternal terlaksana ( proses menunggu kejadian untuk melengkapi tugasnya)
Bisa berupa proses menunggu : Selesainya operasi perangkat I/O; Tersedianya memori; Tibanya pesan jawaban
3.Ready / siap, proses siap dikerjakan tetapi menunggu giliran dengan proses lain yang sedang dikerjakan (bisa berjalan, sementara berhenti untuk memungkinkan proses lain dikerjakan)

Transisi Status
1.Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia / meminta layanan I/O sehingga menunggu kejadian muncul.
2.Penjadwalan mengambil proses lain.
3.Penjadwalan mengambil proses ini (baru).
4.Input telah tersedia.

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


-Interupsi : Kerja prosesor pada suatu proses terhenti oleh pensaklaran konteks.
-Pensaklaran konteks : perubahan kegiatan prosesor dari proses ke proses yang terjadi diantara proses sistem / proses aplikasi
-Konteks : kegiatan prosesor terhadap sesuatu hal, berasal dari sistem operasi, sistem bahasa dan sistem utilitas.
-Blok kendali proses : suatu bagian memori untuk mencatat keadaan proses, yang terbagi atas wilayah dimana setiap wilayah untuk mencatat informasi yang berbeda.

2 cara interupsi pada processor :
1.Interupsi langsung
Berasal dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk meminta pelayanan)
2.Interupsi Tanya / Polling
Berasal dari prosesor (prosesor secara bergiliran mengecek apakah ada peripheral yang memerlukan pelayanan atau tidak)
-Interupsi dapat di-enable dan disable tergantung pada levelnya.
-Pembangkit interupsi dapat berasal dari :
*Program, di dalam program telah dirancang pada bagian tertentu akan terjadi pensaklaran konteks, yang menimbulkan interupsi, contohnya pada saat penggunaan alat / prosesor secara bergantian.
*Prosesor, prosesor sendiri dapat membangkitkan interupsi, yang biasa mengolah logika dan aritmatika. Jika melampoi ukuran tampung register di dalam prosesor, maka terjadi kekeliruan yang akan menginterupsi kerjanya sendiri dan menyerahkan kendali prosesor pada sistem operasi. Misalnya pembagian dengan bilangan nol.
*Satuan kendali, tugas untuk melaksanakan interupsi terletak pada satuan kendali, sehingga satuan kendali dapat membangkitkan interupsi. Misalnya kekeliruan instruksi
*Kunci waktu / clock, menggunakan interupsi berkala. Misalnya pada program looping yang tak terhingga, diinterupsi pada setiap selang waktu 60 detik.
*Peripheral I/O, I/O jika akan bekerja memberitahukan pada prosesor dengan interupsi prosesor dan juga ketika pekerjaan selesai atau pada saat terjadi kekeliruan paritas.
*Memori, karena terjadi kekeliruan, misalnya ketika prosesor ingin mencapai alamat memori yang terletak di luar bentangan alamat memori yang ada.
*Sumber daya lain, misal dibangkitkan oleh operator sistem komputer yang mengerti cara interupsi.

-Interupsi vector : Berisi alamat prosedur service interupsi
-Penerimaan interupsi dan interupsi berganda : ada kalanya interupsi ditolak oleh prosesor atau interupsi yang datang tidak hanya satu sehingga diperlukan prioritas.

Tindak lanjut interupsi :
1.Penata interupsi / interrupt handler
jika terjadi interupsi, maka kendali prosesor diserahkan ke bagian penata interupsi pada sistem operasi, maka penata interupsi inilah yang melaksanakan interupsi.
a.Instruksi yang sedang diolah oleh prosesor dibiarkan sampai selesai program.
b.Penata interupsi merekam semua informasi proses ke dalam blok kendali proses.
c.Penata interupsi mengidentifikasi jenis dan asal interupsi.
d.Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi.
e.Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses yang diinterupsi.
2.Penata keliru / error handler
yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem operasi yang menata kegiatan akibat kekeliruan adalah penata keliru.
a.Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan pemulihan kekeliruan, contohnya telah dilengkapi dengan sandi Hamming sehingga ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke bentuk semula sebelum terjadi kekeliruan.
b.Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung seperti biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses.
c.Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari monitor, setelah itu prosesor keluar dari proses, ini adalah tindakan terakhir jika tidak dapat menolong proses yang keliru tersebut.

Tindak lanjut interupsi menurut Peterson & Silberschatz :
Keterangan :
1.Rampung
Program selesai dilaksanakan oleh prosesor sehingga penyerahan kendali proses ke pekerjaan baru / perintah baru karena proses yang dikerjakan oleh prosesor telah selesai.
2.Keliru
Jika menemukan kekeliruan akan ditampilkan, kemudian kendali prosesor diserahkan pada perintah berikutnya.
3.Permintaan bukan dari alat I/O
Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses semula, misalnya interupsi berkala.
4.Permintaan dari alat I/O
Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses sebelumnya, tetapi ada kalanya prosesor ikut campur dalam kerja alat I/O sehingga pengembalian kendali proses semula, tidak berlangsung segera / tunggu.
5.Rampung dari alat I/O
Setelah interupsi selesai dilayani dan tanda rampung dicatat, kendali prosesor dikembalikan ke proses semula. Biasanya untuk alat I/O yang tidak diikut campuri oleh prosesor.

Catt:
1 & 2 tidak mengembalikan prosesor ke proses yang terinterupsi, sedangkan
3,4,5 mengembalikan prosesor ke proses yang terinterupsi.

Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi :
1.hardware memasukkan program counter, dl.l.
memasukkan ke dalam stack pencacah program
2.Hardware memuatkan (load) program counter baru dari vector interrupsi
3.Prosedur bahasa rakitan menyimpan isi register
4.Prosedur bahasa rakitan men-set stack yang baru
5.Prosedur C menandai proses servis siap (ready)
6.Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya
7.Prosedur C kembali ke modus bahasa rakitan
8.Prosedur bahasa rakitan memulai proses yang sedang dilaksanakan.

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


Masalah – masalah pada IPC :

Race Condition :
Suatu kondisi dimana dua atau lebih proses mengakses shared memory / data pada saat yang bersamaan dan hasil akhirnya tidak sesuai dengan yang dikehendaki

-Proses A - cek slot input yang kosong (7) untuk mencetak suatu data dan stop
-Interupsi ………
-Proses B  meletakkan data yang akan di print pada slot kosong tersebut (7) dan stop (slot kosong berikutnya adalah 7+1=8)
: prosesor mengerjakan proses lain
-Proses A dilanjutkan  meletakkan data yang akan di print di slot (7), sehingga meng-overwrite data proses B yang diletakkan di slot (7)
-Maka proses B tidak akan dilaksanakan, dan tidak akan terdeteksi terjadi kesalahan.

Untuk menghindari race condition maka harus diatur agar 2 proses yang mempunyai critical section yang sama tidak memasuki critical section pada saat yang bersamaan.

Critical Section / seksi kritis :
Bagian dari program yang mengakses shared memory, yang dapat menyebabkan terjadinya race condition.
4 kondisi untuk mencegah race condition :
a.Tidak ada 2 proses yang memasuki critical sectionnya secara bersamaan / simultan
b.Tidak ada asumsi yang dibuat yang berhubungan dengan kecepatan dan jumlah CPU
c.Tidak ada proses yang berjalan diluar critical section-nya yang dapat memblokir proses-proses lain
d.Tidak ada proses yang menunggu selamanya untuk masuk ke critical section-nya.

Mutual Exclusion (MuTex) With Busy Waiting :
Jika suatu proses sedang mengakses shared memory di critical sectionnya, tidak ada satu prosespun yang dapat memasuki critical section (mutual exclusion) dan menyebabkan masalah.

Jenis-jenis mutual exclusion :
1.Disabling interrupt / mematikan interupsi
Dengan cara mematikan interupsi yang masuk pada saat proses sedang berada pada critical section-nya. Cara ini kadang cukup berguna untuk kernel tetapi tidak untuk user. Dan cara inipun tidak terlalu baik untuk CPU yang jumlahnya lebih dari satu, dimana disable interrupt hanya mengenai CPU yang sedang menjalankan proses itu dan tidak berpengaruh terhadap CPU lain
2.Lock variables
Setiap proses yang akan mengakses ke critical section-nya harus meng-cek lock variable. Jika 0 berarti proses dapat memasuki critical section-nya dan jika 1 maka proses harus menunggu sampai lock variable = 0. Kelemahannya adalah 2 proses masih dapat memasuki critical section-nya pada saat yang bersamaan. Sewaktu satu proses meng-cek lock variable = 0, pada saat akan men-set 1 ada interupsi untuk melaksanakan proses lain yang juga ingin memasuki critical sectionnya, maka akan terjadi race condition.
3.Strict alternation
Dengan mengamati variable turn untuk menentukan siapa yang akan memasuki critical section-nya bukanlah ide yang baik jika proses lebih lambat dari yang lain.
Contohnya :
While (true)
{
while (turn != 0) /*wait*/;
critical_section ( );
turn = 1;
noncritical_section ( );
}
while (true)
{
while (turn != 1) /*wait*/;
critical_section ( );
turn = 0;
noncritical_section ( );
}
4.Peterson’s Solution
Proses tidak akan diteruskan sampai while terpenuhi, bila interested[other] = TRUE, maka proses akan menunggu sampai FALSE.
Kelemahannya : jika proses memanggil enter_region-nya secara hampir bersamaan, yang disimpan di turn adalah data yang ditulis terakhir.
Contohnya :
# include “prototype.h”
# define FALSE 0
# define TRUE 1
# define N 2 /*banyaknya proses*/

int turn;
int interested [N]; /*nilai awal di-set = 0 (false)*/
void enter_region(int process) /*proses = 1 atau 0*/

{
int other; /*jumlah proses lainnya*/
other = 1 – process; /*proses lainnya*/
interested[process] = TRUE; /*menunjukkan tertarik*/
turn = process; /*set flag*/
while (turn==process && interested[other] == TRUE)
}

void leave_region(int process) /*proses yang selesai*/
{
interested[process] = FALSE; /*meninggalkan critical region*/
}
5.Test and Set Lock Instruction / Instruksi TSL
Dengan bantuan hardware, menentukan siapa yang berhak memasuki critical_region (section)
Contoh :
Enter_region :
Tsl reg,flag | copy flag ke reg dan set flag = 1
Cmp reg,#0 | apakah flag = 0
Jnz enter_region |jika <> 0 loop lagi
Ret |return ke caller, masuk critical region

Leave_region :
Mov flag, #0 |simpan 0 ke flag
Ret |return ke caller
Proses harus memanggil ini pada saat yang tepat.
Kelemahan utama dengan busy waiting adalah menyita banyak waktu CPU dan problem inversi prioritas.
6.Sleep and Wake Up
Mekanismenya : proses akan di blok / tidur (sleep) apabila tidak bisa memasuki critical_section-nya dan akan dibangunkan (wake up) / ready apabila resource yang diperlukan telah tersedia.
SLEEP : sistem call membuat proses yang memanggil di blok (blocked)
WAKE UP : sistem call yang membuat proses yang memanggil menjasi ready
Contoh :
Procedure-Consumer Problem (bounded buffer)
Beberapa proses share buffer dengan ukuran tetap
Jika buffer penuh producer sleep
Jika buffer kosong consumer sleep
Jika buffer mulai kosong producer wake up
Jika buffer terisi consumer wake up
Masih ada kemungkinan terjadi race condition
7.Semaphore (Dijkstra, 1965)
Meng-cek, mengubah dan sleep 1 instruksi yang
Mengubah dan wake up tdk dpt dipisahkan
Instruksi tersebut sangat berguna untuk sinkronisasi.
Dapat diimplementasikan untuk memecahkan producer-consumer problem.
Mekanisme-nya menggunakan :
-variabel integer untuk menghitung jumlah wake up yang disimpan / tertunda
-bernilai 0 bila tidak ada wake up yang disimpan, bernilai positif bila ada wake up yang tertunda

Dua macam operasi terhadap semaphore :
1. DOWN(S) :
If S >= 0 then
S := S-1;
Else sleep (S)
End;

2. UP(S) :
S := S + 1;
If S <= 0 then wakeup(S)
End;

Operasi DOWN dan UP merupakan operasi yang bersifat Atomic (Atomic Action).
8.Event Counters (Reed and Kanodia, 1979)
Tiga operasi terhadap event counter (E) :
1.Read (E) : return current value of E
2.Advance (E) : Atomically increment E by 1
3.Wait until E has a value of v or more
9.Monitor
-Higher level synchronization primitive.
-Kumpulan prosedur, variabel dan struktur data yang dipaket menjadi satu modul atau paket.
-Proses bisa memanggil prosedur dalam monitor, tetapi tidak dapat mengakses langsung struktur data internal dari monitor.
10.Message Passing
Menggunakan 2 primitive :
1.send (destination, &message)
2.receive (source, &message)
Beberapa isu pada message passing system : message lost; acknowledgement; domains; authentication; performance

Masalah Klasik IPC :
-The Dining Philosopher Problem
-5 philosophers yang kerjanya hanya makan dan berfikir
-tersedia lima piring spaghetti dan lima sumpit
-untuk makan dibutuhkan bua buah sumpit
-problem-nya bagaimana cara menulis program agar setiap philosopher dapat berfikir dan makan tanpa harus saling menunggu ?
-The Readers and Writers Problem
-Model akses database
-Banyak proses berkompetisi untuk membaca dan menulis. Contohnya : airline reservation.
-Beberapa proses boleh membaca pada saat yang sama
-Bila suatu proses sedang menulis, tidak boleh ada proses lain yang mengakses database
-Proses membaca mempunyai prioritas yang lebih tinggi daripada proses menulis
Ada 3 model process pada server :
1.thread di ciptakan untuk dapat melakukan paralelisme yang dikombinasikan dengan eksekusi sekuensial dan blocking system calls
2.single treads server, menggunakan blocking system calls, tetapi kinerja sistem tidak baik
3.finite-state machine, kinerja baik dengan melakukan parallelisme, tetapi menggunakan nonblocking calls, sehingga sulit dalam memprogram

Status proses terhadap prosesor :
1.Status proses tanpa henti
2.Status proses sambil bekerja dan terhenti
3.Status proses dengan status siap

OPEN SOURCE & CLOSE SOURCE

Sumber Terbuka (Open Source)

Walau pun PL memegang peranan yang penting, pengertian publik terhadap Hak atas Kekayaan Intelektual Perangkat Lunak (HaKI PL) masih relatif minim. Kebinggungan ini bertambah dengan peningkatan pemanfaatan dari Perangkat Lunak Bebas (PLB) – Free Software – dan Perangkat Lunak Sumber Terbuka (PLST) – Open Source Software (OSS). PLB ini sering disalahkaprahkan sebagai PLST, walau pun sebetulnya terdapat beberapa berbedaan yang mendasar diantara kedua pendekatan tersebut. Pada dasarnya, PLB lebih mengutamakan hal fundamental kebebasan, sedangkan PLST lebih mengutamakan kepraktisan pemanfaatan PL itu sendiri.

Konsep Perangkat Lunak Kode Terbuka (Open Source Software) pada intinya adalah membuka kode sumber (source code) dari sebuah perangkat lunak. Konsep ini terasa aneh pada awalnya dikarenakan kode sumber merupakan kunci dari sebuah perangkat lunak. Dengan diketahui logika yang ada di kode sumber, maka orang lain semestinya dapat membuat perangkat lunak yang sama fungsinya. Open source hanya sebatas itu. Artinya, tidak harus gratis. Kita bisa saja membuat perangkat lunak yang kita buka kode-sumber-nya, mempatenkan algoritmanya, medaftarkan hak cipta, dan tetap menjual perangkat lunak tersebut secara komersial (alias tidak gratis). definisi open source yangasli seperti tertuang dalam OSD (Open Source Definition) yaitu:

· Free Redistribution

· Source Code

· Derived Works

· Integrity of the Authors Source Code

· No Discrimination Against Persons or Groups

· No Discrimination Against Fields of Endeavor

· Distribution of License

· License Must Not Be Specific to a Product

· License Must Not Contaminate Other Software

Beberapa bentuk model bisnis yang dapat dilakukan dengan Open Source:

· Support/seller, pendapatan diperoleh dari penjualan media distribusi, branding, pelatihan, jasa konsultasi, pengembangan custom, dan dukungan setelah penjualan.

· Loss leader, suatu produk Open Source gratis digunakan untuk menggantikan perangkat lunak komersial.

· Widget Frosting, perusahaan pada dasarnya menjual perangkat keras yang menggunakan program open source untuk menjalankan perangkat keras seperti sebagai driver atau lainnya.

· Accecorizing, perusahaan mendistribusikan buku, perangkat keras, atau barang fisik lainnya yang berkaitan dengan produk Open Source, misal penerbitan buku O Reilly.

· Service Enabler, perangkat lunak Open Source dibuat dan didistribusikan untuk mendukung ke arah penjualan service lainnya yang menghasilkan uang.

· Brand Licensing, Suatu perusahaan mendapatkan penghasilan dengan penggunaan nama dagangnya.

· Sell it, Free it, suatu perusahaan memulai siklus produksinya sebagai suatu produk komersial dan lalu mengubahnya menjadi produk open Source.

· Software Franchising, ini merupakan model kombinasi antara brand licensing dan support/seller.


Kedudukan Pengguna Program Close Source

Sebelum era Open Source muncul, para pengguna dihadapkan pada kenyataan bahwa semua program komputer adalah bersifat komersil sehingga apabila dipakai pada PC-nya harus membeli program yang berlisensi agar tidak dikatakan membajak. Sayangnya harga lisensi yang ditawarkan dari program yang demikian itu masih dikategorikan mahal untuk ukuran pengguna khususnya di Indonesia, tapi karena tidak adanya alternatif lain. Maka mau tidak mau, pengguna memakai program tersebut. Namun walaupun seseorang telah mengeluarkan uang dalam jumlah yang banyak untuk membeli lisensi tersebut, tetap saja pengguna tidak mendapat yang terbaik dari apa yang dibelinya. Karena yang dilisensikan hanya penggunaan dari binary code-nya saja sedang untuk Source Code tetap dirahasiakan, akibatnya jika dalam program itu terdapat bugs atau kesalahan dan pengguna sebenarnya dapat memperbaikinya namun ia tidak dapat berbuat apa-apa karena dicegah oleh isi lisensi itu.

Pada umumnya program komputer memiliki lisensi atau Hak Cipta yang melindungi hasil ciptaan itu dari penggunaan yang tidak adil oleh orang lain. Namun kebanyakan lisensi yang ada sekarang ini khususnya untuk program komputer yang Close Source mencantumkan klausul-klausul yang menempatkan pembeli atau pengguna pada posisi yang sangat lemah. Dalam program Close Source menggunakan model lisensi EULA (End User License Agreement) pada Bab 2 butir pertama ada klausul mengenai description of other rights and limitations yang berbunyi:

Limitations

on reverse engineering, decompilations, and disassambly. You may not reverse engineer, decompile, or disassambly the software product, except and only to the extent that such activity is expressly permitted by aplicable law not with standing this limitation.

Butir diatas memberikan larangan bagi pengguna untuk mencari tahu apa yang dikerjakan oleh program tersebut dengan cara melakukan reenginering, copile, atau mengasembly suatu program. Berarti pengguna dicegah untuk mempelajari alur program dan mengembangkan fungsi program miliknya walau untuk dimanfaatkan sendiri. Karena dalam Close Source lisensi dibuat secara sepihak dan pembeli harus menyetujui hal-hal sebagai berikut:

  • Pembeli tidak berhak melakukan proses software engineering, merubah atau mengkonversi produk itu ke kode asalnya.
  • Tidak akan menuntut si pembuat atas kesalahan-kesalahan yang terjadi yang diakibatkan oleh penggunaan piranti lunak tersebut.

Contohnya untuk kasus Y2K pengguna tidak berhak untuk meneliti sendiri apakah program komputer miliknya memiliki Y2K compliant atau tidak. Pengguna hanya dapat menerima janji bahwa program tersebut Y2K compliant. Jika program tersebut gagal mengatasi Y2K maka sesuai butir ke 2 di atas, pengguna tidak berhak menuntut pembuat program komputer itu. Ditambah lagi dalam lisensi EULA dalam angka 2 butir 5 ada ketentuan yang berbunyi:

Software

transfer you may permanently transfer all of your right under this eula only as part of a sale or transfer of the COMPUTER, provided you retain no copies, you transfer all of the SOFTWARE PRODUCT (including all the component part, the media and printed materials, any upgrades, this EULA and if aplicable, the sertificate (s) of authenticity), and the resipient agrees to the term of this EULA. If this the SOFTWARE PRODUCT is an upgrade, any transfer must include all prior version of the software product.

Dengan demikian ada pengaturan bahwa lisensi itu melekat pada perangkat komputernya sehingga kalau komputer rusak dan diganti komputer baru, maka sistem operasinya tidak boleh dipindahkan ke komputer baru11). Dengan begitu konsumen dibebankan dengan ketentuan satu lisensi satu mesin, maka akan sangat memberatkan jika seorang konsumen yang komputernya rusak harus membeli lisensi lagi padahal programnya yang lama masih bisa digunakan. Dalam kasus di atas pengguna tidak cukup mempunyai bargaining position yang tinggi, karena selama ini pengguna berada pad pihak yang lebih membutuhkan produk dan tidak mempunyai pilihan lain. Sehingga pengguna harus rela dijadikan "tester sukarela" untuk produk yang dilempar ke pasar tanpa ada kemungkinan untuk memperbaikinya sendiri.

Masalah di atas dapat dipecahkan oleh pengguna sendiri, jika ia mau mengubah status dari pengguna program Close Source menjadi pengguna program Open Source. Open Source adalah metode pengembangan program komputer yang menitikberatkan pada kebebasan yang diberikan kepada pengguna untuk memperbaiki, menambah, merubah suatu source dari program yang dimilikinya, bahkan bebas untuk mendistribusikan program komputer tersebut. Adanya kemungkinan ini disebabkan karena program Open Source menggunakan lisensi GNU GPL dan selalu menyertakan Source Code program kepada pengguna. Walaupun program Open Source bisa didapatkan tanpa biaya namun bila harus mengeluarkan biaya pun pengguna mendapatkan kepuasan karena tidak hanya pasrah ketika program miliknya terdapat bugs tetapi dapat memperbaiki, meminimalisir kerusakan bahkan membuat programnya lebih handal lagi. Secara umum munculnya konsep keterbukaan Source Code yang ditujukan untuk kepentingan publik dalam Close Source ini tidak bertentangan dengan konsep dari Hak Cipta.

Pada dasarnya Hak Cipta diterapkan untuk melindungi kepentingan publik untuk mengambil manfaat dari suatu penemuan. Mengacu pada 1909 House of Representative yang menyertai Copyright Act

The

enactment of copyright legislation by congress under the terms of constitution is note based upon any natural right that the author has in his writings, or the supreme court has help that such right as he has are purely statutory rights, but upon ground that the welfare of the public will be served and progress of science and usuful arts will be promoted... not primarily for the benefit of the author, but primarily for the benefit of the public, such rights are given. Not that any particular class of citizens, however, worthly, may benefit, but because the policy is believed to be for the benefit of the great body of people, in that it will stimulate writing and invention, to give some bonus to authors and inventors.

Peraturan Perundang-Undangan Hak Cipta memang dibuat untuk melindungi karya kreatif dari pencipta. Agar ciptaan itu dapat bermanfaat bagi masyarakat, maka ada ketentuan untuk karya cipta yang akan digunakan, publik terlebih dahulu harus memberikan imbalan kepada pencipta, dalam hal ini dapat berupa royalty. Ini berarti kepentingan publiklah yang menjadi dasar dari Hak Cipta namun tetap memberikan imbalan kepada pencipta atas waktu dan materi yang telah ia keluarkan untuk menghasilkan suatu ciptaan



3 SISTEM OPERASI

Mac OS

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

Langsung ke: navigasi, cari

Mac OS adalah singkatan dari Macintosh Operating System. Mac OS adalah sistem operasi komputer yang dibuat oleh Apple Computer khusus untuk komputer Macintosh dan tidak kompatibel dengan PC berbasis IBM. Diperkenalkan pada tahun 1984, Mac OS sejak tahun 2006 telah memiliki kompatibilitas dengan arsitektur PowerPC maupun x86.


Linux

adalah nama yang diberikan kepada sistem operasi komputer bertipe Unix. Linux merupakan salah satu contoh hasil pengembangan perangkat lunak bebas dan sumber terbuka utama. Seperti perangkat lunak bebas dan sumber terbuka lainnya pada umumnya, kode sumber Linux dapat dimodifikasi, digunakan dan didistribusikan kembali secara bebas oleh siapapun.[2]

Nama "Linux" berasal dari nama kernelnya (kernel Linux), yang dibuat tahun 1991 oleh Linus Torvalds. Sistemnya, peralatan sistem dan pustakanya umumnya berasal dari sistem operasi GNU, yang diumumkan tahun 1983 oleh Richard Stallman. Kontribusi GNU adalah dasar dari munculnya nama alternatif GNU/Linux.[3]

Linux telah lama dikenal untuk penggunaannya di server, dan didukung oleh perusahaan-perusahaan komputer ternama seperti Dell, Hewlett-Packard, IBM, Novell, Oracle Corporation, Red Hat, dan Sun Microsystems. Linux digunakan sebagai sistem operasi di berbagai macam jenis perangkat keras komputer, termasuk komputer desktop, superkomputer,[4], dan sistem benam seperti pembaca buku elektronik, sistem permainan video (PlayStation 2, PlayStation 3 dan XBox[5]), telepon genggam dan router. Para pengamat teknologi informatika beranggapan kesuksesan Linux dikarenakan Linux tidak bergantung kepada vendor (vendor independence), biaya operasional yang rendah, dan kompatibilitas yang tinggi dibandingkan versi UNIX tak bebas, serta faktor keamanan dan kestabilannya yang tinggi dibandingkan dengan sistem operasi lainnya seperti Microsoft Windows. Ciri-ciri ini juga menjadi bukti atas keunggulan model pengembangan perangkat lunak sumber terbuka (opensource software).

Sistem operasi Linux yang dikenal dengan istilah distribusi Linux (Linux distribution) atau distro Linux umumnya sudah termasuk perangkat-perangkat lunak pendukung seperti server web, bahasa pemrograman, basisdata, tampilan desktop (desktop environment) (seperti GNOME dan KDE), dan paket aplikasi perkantoran (office suite) seperti OpenOffice.org, KOffice, Abiword, dan Gnumeric.


Palm

Pada sistem operasi Palm menggunakan prinsip yang tidak diperlukan, tidak perlu ada. Sehingga pada Palm tidak ada tempat bagi keyboard, dan hanya menggunakan pemasukkan data menggunakan pena (stylus) pada tempat khusus yang berfungsi sebagai tempat tulis. Sistem operasi Palm menggunakan tulisan graffiti sebagai metode input tulisan tangannya. Sistem operasi ini biasanya menggunakan resolusi layar 160×160, tetapi sekarang telah meningkat menjadi 320×320, bahkan pada PDA keluaran Sony telah menggunakan layar dengan resolusi 320×480. Sistem operasi Palm berisi beberapa aplikasi dasar. Diantaranya agenda, buku alamat, buku catatan (notebook) dan To do list, aplikasi email,pengelolaan pengeluaran, kalkulator, beberapa games. Sistem operasi ini sangat hemat dalam pemakaian resource memori bila dibandingkan dengan sistem operasi Windows CE. Palm sangat sukses sebagai PDA yang paling banyak dipakai diseluruh dunia, karena kepraktisannya. Versi pertamanya belum dilengkapi dengan kemampuan multimedia, tetapi pada perkembangannya, pada versi 4.1 keatas, telah ditambahkan kemampuan multimedia, seperti player MP3, program pemutar file video, program untuk melihat gambar dan sebagainya.

HIERARKI SOFTWARE

Konsep Desain Software
Disiapkan oleh Umi Proboyekti, S.Kom, MLIS

Analisis dan desain model
Setelah kebutuhan dikumpulkan, analisis terhadap kebutuhan dilakukan dengan
menggunakan beberapa alat (tools) seperti DFD (Data Flow Diagram), ERD
(Entity Relationship Diagram) dan STD (State Transition Diagram). Data
Dictionary menjadi bekal dasar untuk menganalisis kebutuhan. Data Dictionary
berisi gambaran dari semua objek data yang diperlukan dan dihasilkan oleh
software nantinya. Diagram-diagram tadi mempunyai karakteristik masingmasing.
DFD memberi gambaran bagaimana data berubah sejalan dengan
alirannya dalam sistem dan menggambarkan fungsi-fungsi yang mengubah datadata
tadi. ERD menggambarkan relasi antara objek data. STD menggambarkan
bagaimana kerja sistem melalui kondisi (state) dan kejadian yang menyebabkan
kondisi berubah. STD juga menggambarkan aksi yang dilakukan karena kejadian
tertentu.

Model Desain
Data design mengubah informasi menjadi struktur data untuk
mengimplementasikan software. Data design dibuat berdasarkan data dictionary
dan ERD.
Architectural design mendefinisikan relasi antara elemen-elemen struktural
utama, pola desain yang digunakan untuk mencapai kebutuhan yang ditentukan
untuk sistem dan batasan-batasan yang mempengaruhi bagaimana desain
arsitektural ini diterapkan. Desain ini berdasarkan spesifikasi sistem, model
analisis (bagian DFD) dan interaksi antara subsistem.
Interface design menjelaskan bagaimana software berkomunikasi dalam dirinya,
dengan sistem yang bertukar informasi dengannya, dan dengan manusia yang
menggunakannya. DFD diperlukan untuk desain ini.
Component-level design menghasilkan deskripsi prosedur software.

Konsep detain

1. abstraction
Abstraction adalah gambaran dari fungsi suatu program. Gambaran ini bisa
bertingkat-tingkat. Tingkat yang paling atas adalah gambaran suatu fungsi
program dengan menggunakan bahasa alami. Pada tingkat terendah,
menghasilkan abstraksi yang bersifat prosedural/ langkah perlangkah dengan
menggunakan istilah yang teknis dan bisa diimplementasikan menjadi fungsi
program.
Pada saat beralih dari tingkat ke tingkat, kita menggunakan procedural dan data
abstraction. Procedural abstraction adalah urutan instrasi yang mempunyai
tujuan khusus,dan data abstraction adalah koleksi data yang digunakan pada
fungsi tersebut.
Contoh:
Program : Iklan Part-time Job
Fungsi: Pendaftaran calon part-timer
Abstraction 1 (highest level):
Calon part-timer dalam melakukan upload syarat-syarat yang diperlukan
untuk melamar: surat lamaran, CV, foto, transkrip, data diri.
Abstraction 2 (lower level):
Procedural abstraction :
- tampilkan pilihan part-time job
- input data
- verifikasi format
- kirim data
Data abstraction
- nama is STRING
- nim is STRING
- foto is IMAGE FILE
- surat_lamaran is PDF FILE

2. refinement—penjelasan detil dari abstraction
Refinement membantu designer untuk memperlihatkan detil dari lowest level dari
abstraction. Abstraction dan refinement merupakan konsep yang saling
melengkapi.

3. modularity—membagi software menjadi modul
Software dibagi-bagi menjadi beberapa component yang disebut modul-modul.
Modul-modul ini nantinya disatukan/diintegrasikan untuk memenuhi kebutuhan
sistem. Dalam pembentukan modul-modul berlaku pernyataan-pernyataan
berikut:
Jika C(p1) > C(p2) dimana C adalah complexity dari suatu modul, maka E(p1) >
E(p2) dimana E adalah waktu yang diperlukan. Artinya semakin rumit sebuah
modul, maka waktu yang digunakan untuk menyelesaikan modul tersebut makin
banyak.
C(p1+p2) > C(p1) + C(p2)
Dan
E(p1+p2) > E (p1) + E(p2)
Untuk itu, modul yang rumit dipecah lagi menjadi beberapa modul untuk
memudahkan penyelesaian masalah. Namun semakin banyak modul, maka
waktu/biaya untuk integrasikan modul-modul tersebut juga makin tinggi.

4. software architecture—struktur software secara keseluruhan
struktur hirarki/berjenjang dari modul-modul program. Untuk menggambarkan
struktur modul-modul tersebut beberapa model yang ada adalah :
- framework model : identifikasi pola yang berulang-ulang
- dynamic model : identifikasi bagaimana konfigurasi sistem berubah karena
kejadian-kejadian tertentu
- process model: fokus pada proses teknis yang harus dikerjakan sistem
- functional model : menggambarkan hirarki sistem berdasarkan fungsinya

5. Software procedure
Fokus pada detil proses pada tiap modul. Prosedur menjelaskan proses, urutan
kejadian, proses perulangan, penentuan keputusan/arah. Ini bisa digambarkan
dengan menggunakan Flow Chart yang bertingkat.

6. Information hiding
Ide dari information hiding (menyembunyikan informasi) adalah modul dirancang
sedemikian rupa sehinga inforamsi (prosedur dan data) yang di dalamnya tidak
dapat di akses oleh modul lain yang tidak memerlukannya.Modul yang efektif adalah modul yang berdiri sendiri dan berkomunikasi dengan
modul lain yang memang diperlukan.