Process in OS

Secara informal, proses adalah program yang sedang dieksekusi. Ada dua jenis proses, proses berat (heavyweight) atau dikenal dengan proses tradisional, dan proses ringan atau disebut thread. Thread saling berbagi bagian program, bagian data dan sumber daya sistem operasi dengan thread lain yang mengacu pada proses yang sama. Thread terdiri atas ID thread, program counter, himpunan register, dan stack. Dengan banyak kontrol thread, proses dapat melakukan lebih dari satu pekerjaan pada satu waktu.
Sebagaimana proses bekerja, proses tersebut merubah state (keadaan statis/asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu dari keadaan berikut ini :

New : Proses sedang dikerjakan/dibuat.
Running : Instruksi sednag dikerjakan.
Waiting : Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/O atau penerimaan sebuah tanda/signal).
Ready : Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
Terminated : Proses telah selsesai melaksanakan tugasnya/mengeksekusi.

Multithreading mengizinkan program untuk berjalan terus walaupun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
Ketika proses memasuki sistem, mereka diletakkan dalam antrian job. Antrian ini terdiri dari seluruh proses dalam sistem. Proses yang hidup pada memori utama dan siap dan menunggu/ wait untuk mengeksekusi disimpan pada sebuah daftar bernama ready queue. Antrian ini biasanya disimpan sebagai daftar penghubung. Sebuah header ready queue berisikan penunjuk kepada PCB-PCB awal dan akhir. Setiap PCB memiliki pointer field yang menunjukkan proses selanjutnya dalam ready queue. Juga ada antrian lain dalam sistem. Ketika sebuah proses mengalokasikan CPU, proses tersebut berjalan/bekerja sebentar lalu berhenti, di interupsi, atau menunggu suatu kejadian tertentu, seperti penyelesaian suatu permintaan I/O. Pada kasus ini sebuah permintaan I/O, permintaan seperti itu mungkin untuk sebuah tape drive yang telah diperuntukkan, atau alat yang berbagi, seperti disket. Karena ada banyak proses dalam sistem, disket bisa jadi sibuk dengan permintaan I/O untuk proses lainnya. Maka proses tersebut mungkin harus menunggu untuk disket tersebut. Daftar dari proses yang menunggu untuk peralatan I/O tertentu disebut sebuah device queue. Tiap peralatan memiliki device queuenya sendiri

















Diagram Antrian

Setiap kotak segi empat menunjukkan sebuah antrian. Dua tipe antrian menunjukan antrian yang siap dan suatu perangkat device queues. Lingkaran menunjukkan sumber-sumber yang melayani sistem. Sebuah proses baru pertama-tama ditaruh dalam ready queue. Lalu menunggu dalam ready queue sampai proses tersebut dipilih untuk dikerjakan/lakukan atau di dispatched. Begitu proses tersebut mengalokasikan CPU dan menjalankan/ mengeksekusi, satu dari beberapa kejadian dapat terjadi.
Proses tersebut dapat mengeluarkan sebuah permintaan I/O, lalu di tempatkan dalam sebuah antrian
I/O.
Proses tersebut dapat membuat subproses yang baru dan menunggu terminasinya sendiri.
Proses tersebut dapat digantikan secara paksa dari CPU, sebagai hasil dari suatu interupsi, dan diletakkan kembali dalam ready queue.

Tuesday, November 6, 2007

Sistem Operasi

1.Microsoft Windows, lebih dikenal dengan sebutan Windows, adalah keluarga sistem operasi komputer pribadi yang dikembangkan Microsoft, yang menggunakan antarmuka pengguna berbasis grafik (graphical user interface). Sistem operasi Windows telah berevolusi dari MS-DOS, sebuah sistem operasi yang berbasis modus teks dan command-line. Windows versi pertama, Windows Graphic Environment 1.0 pertama kali diperkenalkan pada 10 November 1983, tetapi baru keluar pasar pada bulan November tahun 1985 yang dibuat untuk memenuhi kebutuhan komputer dengan tampilan bergambar. Windows 1.0 merupakan perangkat lunak 16-bit tambahan (bukan merupakan sistem operasi) yang berjalan di atas MS-DOS (dan beberapa varian dari MS-DOS), sehingga ia tidak akan dapat berjalan tanpa adanya sistem operasi DOS. Versi 2.x, versi 3.x juga sama. Beberapa versi terakhir dari Windows (dimulai dari versi 4.0 dan Windows NT 3.1) merupakan sistem operasi mandiri yang tidak lagi bergantung kepada sistem operasi MS-DOS. Microsoft Windows kemudian bisa berkembang dan dapat menguasai penggunaan sistem operasi hingga mencapai 90%.
2.Linux, Sangat mirip dengan sistem UNIX, hal ini dikarenakan kompatibilitas dengan UNIX merupakan tujuan utama desain dari proyek Linux. Pada tahun 1991, mahasiswa Finlandia bernama Linus Torvalds menulis Linux, sebuah kernel untuk prosesor 80386, prosesor 32-bit pertama dalam kumpulan CPU intel yang cocok untuk PC. Pada awal perkembangannya, source code Linux disediakan secara gratis di Internet. Hasilnya, sejarah Linux merupakan kolaborasi banyak user dari seluruh dunia, semuanya dilakukan secara eksklusif melalui Internet. Dari kernel awal yang hanya mengimplementasikan subset kecil dari sistem UNIX, sistem Linux telah bertumbuh dimana sudah mampu memasukkan banyak fungsi UNIX. Kernel Linux perlu dibedakan dari sebuah sistem Linux: kernel Linux merupakan sebuah perangkat lunak orisinil yang dibuat oleh komunitas Linux sedangkan sistem Linux, yang diketahui saat ini, mengandung banyak komponen yang dibuat sendiri atau dipinjam dari proyek lain.
3.Mac OS, Yang berarti Macintosh Operating System, atau Sistem operasi Macintosh, adalah sistem operasi komputer untuk komputer Apple (buatan Apple corp). Mac OS merupakan sistem operasi pertama yang menggunakan antaramuka pengguna grafik (GUI), yang membuat macintosh antara lain adalah Bill Atkinson, Jef Raskin dan Andy Hertzfeld. Pada perkembangannya kini macintosh telah memiliki banyak varian, yang terbaru adalah Mac OS X dan Mac OS Leopard, system operasi ini terkenal dengan kehandalannya dalam mengolah file-file grafis, audio, dan video.
4.Sun Solaris, Adalah sebuah sistem operasi keluarga Unix yang dikembangkan oleh Sun Microsystems Inc. OpenSolaris adalah Sun Solaris yang di open-source kan di bawah lisensi CDDL (Common Development and Distribution License). Sun Solaris bisa berjalan di atas prosesor x86,x64 dan SPARC.
5.Symbian, Dibuat pada bulan Juni 1998, Symbian merupakan system operasi hasil kolaborasi vendor-vendor raksasa seperti Ericsson, Nokia, Motorola, dan Psion. Sejak awal memang dirancang khusus untuk ponsel atau perangkat bergerak yang mengutamakan efisiensi penggunaan sumber daya memori dan baterai. Sistem operasi ini memang sangat komplit dengan berbagai keunggulan seperti messaging dengan SMS, EMS, MMS, e-mail dengan attachment, dan fax. Selain itu, berbagai protokol komunikasi juga ditawarkan via TCP/IP, WAP, IrDA, Bluetooth, USB, dan GPRS/UMTS. Urusan sekuriti dijamin memakai protokol seperti HTTPS, WTLS, SSL, TLS, WIM framework, dan instalasi aplikasi bersertifikat. OS ini juga sangat terbuka sehingga siapapun bisa mengembangkannya berkat fitur CC+, Java (J2ME) MIDP 2.0, PersonalJava 1.1.1a, dan WAP

Monday, October 1, 2007

Sistem Keamanan

1 ).SISTEM KEAMANAN SAAT PEMBUATAN (SI) SISTEM INFORMASI
Keamanan saat pembuatan sistem informasi menrujuk pada bagaimana cara-cara pencegahan agar sistem informasi yang dibuat nantinya memiliki tingkat keamanan yang baik. Poin-poin yang dapat diperhatikan dalam langkah ini adalah :
• Bagaimana menulis kode yang aman
Gunakan nama yang kuat untuk menandai secara digital pekerjaan kita. Kurangi profil
serangan dengan mengikuti prinsip-prinsip desain object oriented, lalu gunakan keamanan akses kode untuk membatasi kode mana bisa memanggil kode lainnya. Gunakan penanganan eksespi yang terstruktur untuk menjaga informasi yang sensitif agar tidak keluar dari batas yang terpercaya dan untuk mengembangkan kode yang lebih kuat.
• Bagaimana menangani eksespi yang aman
Jangan pernah mengungkapkan informasi tentang sistem internal atau aplikasi seperti
stakj traces, SQL statement fragments, dan sebagainya. Pastikan informasi jenis ini tidak sampai pada end user atau keluar dari batas yang terpercaya. Jangan mencatat data yang sensitif atau pribadi seperti password. Ketika mencatat laporan eksespi, jika input dari user dimasukkan dalam pesan yang dicatat, validasilah atau bersihkan terlebih dahulu, misalnya jika pesannya dalam format HTML, maka harus di encode terlebih dahulu untuk menghindari injeksi script.
• Bagaimana melaksakan pemeriksaan keamanan pada managed code
Gunakan alat analisa seperti FxCop untuk menganalisa file binary dan untuk memastikan
sesuai dengan design guideline dari framework yang dipakai. Perbaiki vulnerability yang dapat ditemukan oleh alat tersebut.Gunakan fasilitas pencarian text untuk scan kode sumber. Berikan perhatian lain pada vulnerability akibat SQL injection dan cross-site scripting.
• Bagaimana mengamankan alat kerja pengembang
Tempat kerja harus juga mendapat perhatian dalam masalah keamanan. Pengembang harus mengamankan alat kerjanya seperti: account, protokol, port, service, share, file dan
direktory, dan registry. Hal penting lainnya adalah memastikan bahwa workstation selalu
mengikuti update dan patch terbaru.
• Bagaimana menulis least privileged code
Kita dapat membatasi kode apa yang bisa dijalankan berdasarkan account. Untuk itu
dapat digunakan code access security untuk membatasi resources dan operasi yang
diperbolehkan dengan membuat kebijakan terlebih dahulu. Jika kode tidak membutuhkan
mengakses sebuah resource atau operasi, maka dapat digunakan declarative security attributes untuk memastikan kode tersebut tida diberi hak oleh administrator. Intinya, berikan akses pada yang membutuhkan saja.
• Bagaimana membatasi file I/O
Penggunaan code access security dapat dilakukan untuk membatasu kemampuan kode
dalam mengakses area dari sistem file dan menjalankan file I/O. Sebagai contoh, sebuah aplikasi web dapat dibatasi hanya bisa mengakses file pada virtual directory yang dimilikinya.
• Bagaimana mencegah SQL injection
Untuk mengakses data, sebaiknya digunakan stored procedures yang mempunyai
parameter. Penggunaan parameter tersebut untuk memastikan nilai input sudah dicek tipe dan panjangnya. Parameter juga diberlakukan untuk menjamin sebagai nilai yang aman dan bukan kode yang dapat dieksekusi dalam database. Jika tidak dapat menggunakan stored procedures, sebaiknya menggunakan SQL statement dengan parameter. Jangan pernah membangun SQL statement dengan langsung memasukkan nilai input dalam SQL command. Pastikan aplikasi memberikan hak akses ke database seperlunya saja.
• Bagaimana mencegah cross-site scripting
Untuk mencegah cross-site sripting, validasi semua input termasuk tipe, panjang, format,
dan range dan yang penting encode outputnya. Sebagai contoh, encode form fileds, query string parameters, cookies, dan sebagainya.
• Bagaimana mengatur rahasia
Carilah pendekatan alternatif guna menghidari menyimpan informasi rahasia di urutan
pertama. Jika harus menyimpan informasi tersebut, jangan pernah menyimpannya dalam text biasa di kode sumber atau di file konfigurasi. Jangan lupa enkripsi informasi rahasia dengan Data Protection Application Programming Interface (DPAPI) untuk menghindari isu manajemen key.
• Bagaimana memanggil unmanaged code secara aman
Berilah perhatian tersendiri pada paramater yang memasuki atau datang dari unmanaged
API, dan hati-hati dengan kemungkinan terjadinya buffer overflows. Validasi panjang dari parameter string input dan output, cek array, dan hati-hati dengan panjang file path. Gunakan permintaan izin tertentu untuk menjaga akses ke unmanaged resources sebelum menyatakan izin unmanaged code. Gunakan peringatan untuk meningkatkan performance.
• Bagaimana melakukan validasi input yang aman
Batasi, tolak, bersihkan input merupakancara yang lebih mudah dalam melakukan
validasi data untuk tipe, pola, range yang valid dan sudah diketahui terlebih dahulu kemudian mencari karakter yang jelek. Untuk input berupa string bisa digunakan ekspresi regular.
• Bagaiaman mengamankan Forms authentication
Harus ada pembagian area mana yang bisa diakses oleh anonim dan area mana yang
hanya bisa diakses oleh user dengan menggunakan otentifikasi. Jika aplikasi berbasis web, gunakanlah Secure Sockets Layer (SSL). Batasi juga jangka waktu sesi dan pastikan
authentication cookie hanya melalui HTTPS saja. Enkripsi authentication cookie dan jangan gunakan untuk tujuan personalisasi. Untuk personalisai, gunakan cookie terpisah selain authentication cookie.

2 ). SISTEM KEAMANAN SAAT PENYIMPANAN SI
System keamanan saat penyimpanan SI merujuk pada bagaimana system informasi tersebut dilindungi saat berada pada lingkungan server, dengan kata lain perlindungan server tempat menyimpan SI, maupun database SI. Pengamanan sistem informasi dapat dilakukan melalui beberapa layer yang
berbeda. Misalnya di layer “transport”, dapat digunakan “Secure Socket
Layer” (SSL). Metoda ini umum digunakan untuk server web. Secara fisik,
sistem anda dapat juga diamankan dengan menggunakan “firewall” yang
memisahkan sistem anda dengan Internet. Penggunaan teknik enkripsi
dapat dilakukan di tingkat aplikasi sehingga data-data anda atau e-mail anda
tidak dapat dibaca oleh orang yang tidak berhak.

3 ). SISTEM KEAMANAN SAAT PENDISTRIBUSIAN SI
Sistem keamanan saat pendistribusian SI merujuk pada bagaimana sistem informasi tersebut terlindungi saat didistribusikan kepada user. Contoh-contoh pelanggaran keamanan pada pendistribusian sistem informasi yaitu :
• Informasi yang ditampilkan di server diubah sehingga dapat mempermalukan perusahaan atau organisasi anda (dikenal dengan istilah deface1);
• Informasi yang semestinya dikonsumsi untuk kalangan terbatas (misalnya laporan keuangan, strategi perusahaan anda, atau database client anda) ternyata berhasil disadap oleh saingan anda (ini mungkin disebabkan salah setup server, salah setup router / firewall, atau salah setup authentication).
• informasi dapat disadap (seperti misalnya pengiriman nomor kartu kredit untuk membeli melalui WWW, atau orang yang memonitor kemana saja anda melakukan web surfing).
• Server anda diserang (misalnya dengan memberikan request secara bertubi-tubi) sehingga tidak bisa memberikan layanan ketika dibutuhkan (denial of service attack);
• Untuk server web yang berada di belakang firewall, lubang keamanan di server web yang dieksploitasi dapat melemahkan atau bahkan menghilangkan fungsi dari firewall (dengan mekanisme tunneling).

DAFTAR PUSTAKA :
- Budi Rahardjo, “Keamanan Sistem Informasi Berbasis Internet,” PT Insan Infonesia - Bandung & PT INDOCISC – Jakarta 1998, 1999, 2000, 2001, 2002
- http://www.abdrohim.com, “Keamanan SistemWorld Wide Web”
- Program Magister Teknologi Informasi Fakultas Ilmu Komputer Universitas Indonesia, “Sistem Keamanan pada Pengembangan Sistem Informasi untuk Software Developer sektor Usaha Kecil dan Menengah (UKM),” 2005

Tuesday, September 18, 2007

About

Nama : Arief Widyasasmito
Nick name : Weedee

Tuesday, August 28, 2007

Welcome

Monday, August 6, 2007