Thread,SMP Symmetric multiprocessing,Cron,Numa


Thread  adalah  sebuah  alur  kontrol  dari  sebuah  proses.Kontrol  thread  tunggal  ini hanya memungkin kan  proses  untuk  menjala nkan  satu  tugas  pada  satu  waktu.

Banyak  sistem  operasi  modern  telah  memiliki  konsep  yang  di kembangkan  agar memungkinkan  sebuah  proses  untuk  memiliki  eksekusi  multi-threads,  agar  dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari pengguna, pembagian sumber daya proses,  ekonomis,  dan  kemampuan  untuk  mengambil  keuntungan  dari  arsitektur multiprosesor. Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID,  program  counter,  register  set,  dan  stack.  Sebuah  thread  berbagi  code section,  data  section,  dan  sumber  daya  sistem  operasi  dengan  Thread  lain  yang  dimiliki  oleh  proses  yang  sama.  Thread  juga  sering  disebut  lightweight  process. Sebuah proses tradisional atau heavy weight process mempunyai thread tunggal yang berfungsi sebagai pengendali.

 

            1. Thread Linux

Ketika pertama kali dikembangkan, Linux  tidak didukung dengan threading di

dalam kernelnya,  tetapi dia mendukung proses-proses sebagai entitas yang dapat dijadwalkan  melalui clone()  system  calls.  Sekarang  Linux  mendukung penduplikasian  proses  menggunakan system  callclone()  dan  fork().  Clone() mempunyai  sifat  mirip  dengan  fork(),  kecuali  dalam  hal  pembuatan copy dari proses  yang  dipanggil  dimana  ia  membuat  sebuah  proses  yang  terpisah  yang berbagi address  space dengan  proses  yang  dipanggil.  Pembagian address space dari parent  process memungkinkan cloned  task bersifat  mirip  dengan thread yang  terpisah.  Pembagian address  space ini  dimungkinkan  karena proses  direpresentasikan  di  dalam  Kernel  Linux.

Di  dalam  Kernel  Linux  setiap proses  direpresentasikan  sebagai  sebuah  struktur  data  yang  unik.  Jadi,  daripada menciptakan  yang  baru maka  struktur  data  yang  baru mengandung pointer yang menunjuk ke tempat dimana data berada. Jadi ketika fork() dipanggil, proses yang baru  akan  tercipta  beserta  duplikasi  dari  segala  isi  di  struktur  data  di parent process,  namun  ketika  clone()  dipanggil,  ia  tidak  menduplikasi parent processnya tetapi  menciptakan pointer ke  struktur  data  pada parent  process yang memungkinkan child  process untuk  berbagi memori dan  sumber  daya  dari parent processnya.

Project  LinuxThread  menggunakan system  call ini  untuk mensimulasi thread di user  space.  Sayangnya,  pendekatan  ini  mempunyai beberapa  kekurangan, khusunya  di  area signal  handling,  scheduling, daninterprocess  synchronization  primitive.Untuk  meningkatkan  kemampuan Thread  Linux,  dukungan  kernel  dan  penulisan  ulang  pustaka thread sangat diperlukan. Dua project yang  saling bersaing menjawab  tantangan  ini. Sebuah  tim yang  terdiri  dari  pengembang  dari  IBM membuat  NGPT  (Next  Generation  POSIX Threads).  Sementara  pengembang  dari Red  Hat membuat  NPTL  (Native  POSIX Thread  Library).Sebenarnya  Linux  tidak  membedakan  antara  proses  dan thread. Dalam  kenyataannya,  Linux  lebih  menggunakan  istilah task dibandingkan  proses dan thread ketika  merujuk  kepada  pengaturan  alur  pengontrolan  di  dalam program.

Status proses pada linux :

  • Running yaitu bisa dalam 2 kondisi, sedang berjalan atau siap untuk di  eksekusi
  • Interruptable yaitu keadaan yang terblok dimana proses menunggu akhir dari operasi I/O, atau proses yang lainnya
  • Uninterruptable sebuah proses yang langsung menunggu dari kondisi hardware dan tidak di interrup selainnya
  • Stopped  prosses yang dihentikan dan hanyya dapat di kembalikan oleh aksi positif dari proses lainnya , contohnya proses yang sedang di debug dapat di tempatkan pada keadaan di berhentikan
  • Zombie proses yang telah dihentikan

 2. SMP Symmetric  multiprocessing

Symmetric  multiprocessing  (SMP)  melibatkan  arsitektur  multiprosesor perangkat  keras komputer dimana dua  atau  lebih prosesor  identik  yang  terhubung  ke  satu  shared memori utama  dan  dikendalikan  oleh  contoh  OS  tunggal. Paling  umum  sistem multiprosesor  saat  ini menggunakan arsitektur  SMP. Dalam  kasus multi-core  prosesor,  arsitektur SMP berlaku untuk core, memperlakukan mereka sebagai prosesor terpisah. Prosesor mungkin saling berhubungan menggunakan bus, switch crossbar atau on-chip jaringan mesh.

SMP pada linux

kernel  Linux  untuk mengeksploitasi  SMP,  namun  sistem  operasi  saja  tidak  cukup. Ingatlah  bahwa  kekuatan  SMP  terletak  pada  TLP.  Tunggal  monolitik  (tanpa  ulir) program  tidak  dapat  mengeksploitasi  SMP,  tapi  SMP  dapat  dimanfaatkan  dalam program-program  yang  terdiri  dari  banyak    yang  dapat  didistribusikan  di seluruh core. Sementara satu thread tertunda menunggu penyelesaian O I /, thread lain dapat melakukan pekerjaan yang bermanfaat. Dengan cara  ini,  bekerja dengan satu sama lain untuk menyembunyikan latency masing-masing.  Sistem  Operasi  portabel  Interface  (POSIX)    adalah  cara  yang  bagus  untuk membangun  aplikasi  threaded  yang  mampu  mengambil  keuntungan  dari  SMP. Thread  POSIX  menyediakan  mekanisme  threading  serta  memori  bersama.  Ketika program  dipanggil  yang  menciptakan  beberapa  jumlah  thread,  setiap  thread disediakan  tumpukan  sendiri  (variabel  lokal dan negara) namun  saham  ruang data dari orangtua. Semua  thread yang dibuat berbagi  ruang data yang  sama,  tetapi  ini adalah di mana masalahnya terletak.  Untuk mendukung multi-threaded akses ke memori bersama, mekanisme koordinasi yang  diperlukan.  POSIX  menyediakan  fungsi  mutex  untuk  membuat  bagian  kritis yang  menegakkan  akses  eksklusif  ke  sebuah  obyek  (sepotong  memori)  dengan thread  tunggal.  Tidak melakukan  hal  dapat mengakibatkan memori  rusak  karena manipulasi tidak sinkron oleh beberapa thread.

3. Cron

Cron adalah sebuah daemon yang menjalankan tugas yang telah dijadwalkan berdasarkan input dari perintah crontab. Cron menyelesaikan tugas ini dengan membangunkan dirinya setiap menit dan memeriksa apakah ada cron-job yang harus dijalankannya berdasarkan crontab user. Dan harus diingat bahwa crontab adalah nama untuk daftar cron-job dan nama dari perintah untuk mengedit daftar tersebut.

 4. Numa

adalah suatu desain memori komputer yang digunakan dalam multiprocessing, di mana waktu akses memori tergantung pada lokasi memori tergantung terhadap prosesor. Dalam NUMA, prosesor dapat mengakses memori lokal sendiri lebih cepat daripada non-lokal memori, yaitu memori lokal lain prosesor atau memori dibagi antara prosesor. selama tahun 1990-an. Teknik yang dikembangkan oleh perusahaan-perusahaan kemudian aplikasikan dalam berbagai Unix-seperti sistem operasi, dan agak di Windows NT.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s