Praktikum 4 Proses dan Manajemen Proses

POKOK BAHASAN
  • Proses pada Sistem Operasi Linux
  • Manajemen Proses pada SIstem Operasi Linux
TUJUAN UTAMA 

Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
  • Memahami konsep prosed pada sistem operasi Linux.
  • Menampilkan beberapa cara menampilkan hubungan proses parent dan child.
  • Mnampilkan status proses dengan beberapa format berbeda.
  • Melakukan pengontrolan proses pada shell
  • Memahami penjadwalan prioritas

DASAR TEORI

KONSEP PROSES PADA SISTEM OPERASI LINUX

        Proses adalah program yang sedang dieksekusi. Setiap kali menggunakan utilitas sistem atau program aplikasi dari shell satu atau lebih proses "child" akan dibuat oleh shell seuai perintah yang diberikan. Setiap kali instruksi diberikan pada LInux shell, maka kernel akan menciptakan sebuah proses-id. Proses ini disebut juga dengan terminology Unix sebagai sebuah job. Proses ID (PID) dimulai dari 0, yaitu proses INIT, kemudia diikuti oleh proses berikutnya (terdaftar pada /etc/inittab).

    Beberapa tipe dari proses adalah sebagai berikut :

  • Foreground
          Proses yang diciptakan oleh pemakai langsung pada terminal (interaktif,dialog).
  • Batch
          Proses yang dikumpulkan dan dijalankan secara sekuensial (satu persatu). Proses Batch 
          diasosiakan (berinteraksi dengan terminal).
  • Daemon
          Proses yang menunggu permintaan (request) dari proses lainnya dan menjalankan tugas sesuai dengan permintaan tersebut. Bila tidak ada request, maka program ini akan berada dalam kondisi "idle" dan tidak menggunakan waktu hitung CPU. Umumnya nama proses daemon di UNIX berakhiran d, seperti inetd,named,popd,dll.

SINYAL

        Proses dapat mengirim dan menerima sinyal dari dan ke proses lainnya. Proses mengirim sinyal melalui instruksi "kill" dengan format.

                                                        kill [-nomor sinyal] PID

        Nomor sinyal: 1 s/d maksimum nomor sinyal yang didefinisikan system.
        Standar nomor sinyal yang terpenting adalah :



MENGIRIM SINYAL 

        Mengirim sinyal adalah satu alat komunikasi antar proses, yaitu memberitahukan proses yang sedang berjalan bahwa ada sesuau yang harus dikendalikan. Berdasarkan sinyal yang dikirim ini maka proses dapat berekasi dan administartot/programmer dapat menentukan reaksi tersebut. Mengirim sinyal menggunakan instruksi.

kill [-nomor sinyal] 

            Sebelum mengirim sinyal PID proses yang akan dikirim harus diketahui terlebih dahulu.

MENGATUR PROSES PADA SHELL

        Shell menyediakan fasilitas job control yang memungkinkan mengontrol beberapa job atau proses yang sedang berjalan pada waktu yang sama. Misalnya bila melakukan pengeditan file teks dan ingin melakukan interrupt pengeditan untuk mengerjakan hal lainnya. Bila selesai, dapat kembali (switch( ke editor dan melakukan penditan file teks kembali.

       Job bekerja pada foreground atau background. Pada foreground  hanya diperuntukkan untuk satu job pada satu waktu. Job pada foreground  kemungkinan diberhentikan sementara (suspend) dengan menekaj ctrl+z. Sedangkan job pada background tidak menerima input dari terminal, biasanya berjalan tanpa memerlukan interaksi. Catatan bahwa untuk menghentikan job sementara sangat berbeda dengan melakukan interrupt job (ctrl+c), dimana job yang diinterrupt akan dimatikan secara permanen dan tidak dapat dijalankan lagi.

MENGONTROL PROSES LAIN 

        Perintah ps dapat digunakan untuk menunjukkan semua proses yang sedang berjalan pada mesin (bukan hanya proses pada shell saat ini) dengan format

                                            ps -fae atau
                                            ps -aux

        Beberapa versi UNIX mempunyai utilitas sistem yang disebut dengan top yang menyediakan cara interaktif untuk memonitor aktifitas sistem. Statistik secrara detail dengan proses yang berjalan ditampilkan dan secara terus-menerus di-refresh . Proses ditampilkan secara terurut dari utilitas CPU. Kunci yang berguna pada top adalah :

                    s - set update frequency
                    u - display proses dari satu user
                    k - kill proses(dengan PID)
                    q = quit

        Utilitas untuk melakukan pengontrolan proses dapat ditemukan pada sistem UNIX adalah perintah killall. Perintah ini akan menghentikan proses semua PID atau job number proses.


TUGAS PENDAHULUAN 

1. Apa yang dimaksud dengan proses ?
    
    Proses merupakan program yang sedang dieksekusi.

2. Apa yang dimaksud perintah untuk menampilkan status proses : ps, pstree

    Ps merupakan perintah yang dapat digunakan untuk menunjukkan semua proses yang sedang berjalan pada mesin(buksn hsnys proses pada shell saat ini). Perintah ps dapat digunakan untuk melihat kondisi proses yang ada seperti PID,TTY,TIME, dan COMMAND.
    
   Pstree sama halnya dengan ps, pstree juga mempunyai fungsi yang sama untuk melihat status proses yang berjalan pada sistem. Namun, untuk informasinya diperlihatkan dalam bentuk tree(pohon).

3. Sebutkan opsi yang dapat diberikan pada perintah ps 
  • ps untuk melihat proses yang ada
  • ps -u untuk melihat faktor atau element lainnya
  • ps -u <user> untuk menyari proses yang spesifik dari user
  • ps -a untuk mencari proses lainnya (all)
  • ps -au mencari proses lainnya (all user)
  • ps -eH untuk semua proses, H untuk hirarki tampilan proses
  • ps -e f untuk menampilkan status proses dengan karakter grafis
4. Apa yang dimaksud dengan sinyal ? apa perintah untuk mengirim sinyal ?

    Sinyal merupakan sesuatu yang harus dikendalian. Perintah untuk megirim sinyal adalah kill [-nomor sinyal] PID.

5. Apa yang dimaksud dengan proses foreground dan background pada job control ?
  • foreground  merupakan sebuah proses yang akan mengontrol shell yang dimana menerima input dari keyboard dan mengirim output ke layar.
  • background  merupakan proses yang tidak menerima input dari terminal dan biasanya berjalan tanpa memerlukan interaksi.
6. Apa yang dimaksud perintah-perintah penjadwalan prioritas (top,nice,renice) 
  • top berfungsi untuk memonitor aktifitas pada sistem.
  • nice berfungsi untuk mengubah prioritas pada proses.
  • renice berfungsi untuk mengurangi prioritas proses.
HASIL PERCOBAAN

PERCOBAAN 1 

1. Instruksi ps (process status)


    Menjalakan perintah $ps tersebut sebelumnya harus pindah ke command line terminal  terlebih dahulu dan memasukkan username beserta passwordnya. Kemudian output yang ditampilkan dari perintah $ ps tersebut adalah PID yang merupakan nomor identitas dari proses, TTY yang merupakan nama terminal diaman proses tersebut aktif, COMMAND merupakan instruksi yang digunakan. Command line yang saya lakukan adalah tty3 yaitu dengan cara menekan ctrl+alt+f3 karena pada saat mencoba ctrl+alt+f2 tidak ada perubahan untuk tampilan ke command line-nya.

2. Melihat faktor atau elemen lainnya menggunakan $ ps - u

    
    Pada tampilan tersebut output yang diberikan adalah informasi dari user yang sedang digunakan dalam proses tersebut, %CPU yang merupakan waktu yang digunakan oleh CPU dalam proses tersebut. Sistem memori yang digunakan dalam proses juga ditampikan pada kolom MEM, RSS (real system storage) berisikan jumlah memori yang digunakan. Start berfungsi untuk mengetahui kapan proses tersebuh diaktifkan, dan STAT merupakan status dari proses.

3. Mencari proses yang spesifik dari pemakai


    Pada percobaan ini perintah $ ps - u <nama user> untuk melihat dan mencari proses yang dijalankan oleh pengguna yang dimana proses yang ditampilkan hanya terbatas pada proses yang dijalankan oleh pengguna yang melakukan login.

4. Mencari proses lainnya dengan opsi a (all)  dan au (all user)



    Setelah menjalankan perintah $ ps -a perintah ini menampilkan proses yang dieksekusi perintah pada satu user saja. Sedangkan gambar kedua merupakan hasil eksekusi dari perintah $ ps - au yang dimana perintah tersebut menampilkan proses pada semua user contohnya root dan ranwitry.

PERCOBAAN 2

1. Perintah $ ps -eH


    Setelah mengeksekusi perintah $ ps -eH dengan menekan enter akan menghasilkan proses yang akan berjalan dengan cara membaca terlebih dahulu perintah $ ps yang kemudian dilanjutkan dengan membaca opsi e yang berfungsi untuk memilih semua proses dan opsi H berfungsi menghasilkan tampilan proses secara hirarki.

2. Perintah $ ps -e f


    Pada perintah $ ps -e f sama seperti percobaan sebelumnya yang dimana setelah opsi -e ditambahkan opsi f yang dimana akan menampilkan tampilan dari STAT(keadaan atau status) dari sebuah proses yang ada ditandain dengan simbol S untuk sleeping dan R untuk running dan tampilan dari status proses dengan adanya karaktek grafis \ dan _.

3. Perintah $ pstree


    Hasil perintah dari $ pstree terlihat seperti sebuah pohon atau diagram yang dimana merupakan bagian dari semua proses yang ada. Pada struktur pohon ini system juga ditampilkan dalam bentuk hirarki parent dan child.

4. Perintah $ pstree | grep min

  


    Perintah dari $ ps tree | grep mengetty ini artinya mencari menggunakan ekspresi reguler untuk pencocokan pola dan lainnya. Namun setelah saya mengeksekusi program tersebut tidak terjadi apa apa sehingga bisa disimpulkan bahwa pola mingetty tidak ada di proses tersebut.

5. Perintah $ pstree -p


    Perintah $ pstree -p ini akan menampilkan daftar proses sistem dengan ketentuan menamilkan PID nya setelah nama dari prosesnya.

6. Perintah $ pstree -h


    
    Perintah $pstree -h berfungsi untuk menampilkan proses dengan cara ditampilkan juga proses dan ancestornya.

PERCOBAAN 3

1. Perintah ps - e | more 



    Perintah $ ps -e | more ini akan menampilkan semua proses yang dibagi menjadi 4 kolom yaitu PID,TTY, TIME, dan CMD.  Fungsi more ini untuk melihat bagian proses yang lainnya dibawah jika halaman penuh dan untuk pindah ke prompt perintah dapat menggunakan q.

2. Perintah ps ax | more 


    Perintah ini dengan opsi a akan menampilan semua proses yang dihasilkan oleh terminal (TTY) kemudian dilanjutkan dengan membca opsi x yang akan menampilkan semua proses yang tidak dihasilkan oleh terminal. Semua proses ditampilkan dalam 5 kolom yaitu PID,TTY,STAT,TIME,dan COMMAND. Untuk keluar dari more dan kembali ke prompt perintah dapat menggunakan q.

3. Perintah ef | more


    
    Perintah $ ps dengan tambahan opsi ef akan menampilkan semua proses dalam format daftar yang penuh.

4. Perintah $ ps -eo pid,cmd | more


    Perintah tersebut jika dieksekusi atau dijalankan akan menghasilkan semua proses dalam format sesuai definisi user yang terdiri dari kolom PID dam CMD.

5. Perintah $ ps -eo,pid,ppid,%mem,cmd | more


    Proses ini diawali dengan membaca program PS yang dlanjutkan dengam membaca opsi -eo pid,ppid,%mem,cmd yang berfungsi untuk menampilkan kolom PID,PPID, %MEM, dan CMD. PPID merupakan proses ID dari proses parent dan %MEM menampilkan presentasi memory sistem yang digunakan proses, jika proses hanya menggunakan sedikit memory sistem maka pada kolom bagian %MEM akan ditampilkan 0.

PERCOBAAN 4

1. Menjalankan perintah yes, membelokannya ke .dev.null dan melihat status menggunakan perintah $ jobs



    Pertama yaitu menjalankan perintah $ yes yang dimana menghasilkan ouput yang tidak pernah berhenti dan untuk menghentikannya menggunakan ctrl + c. Kemudian dilakukan pembelokkan standar output ke /dev/null dengan format perintah $ yes >/dev/null yang dan untuk mengeluarkannya dapat menggunakan ctrl + c. Kemudian dilakukan penambahan background pada perintah tersebut dengan format yes > /dev/null & yang dimana perintah yes tetap dijalankan tetapi shell tetap digunakan untuk hal yang lain dengan meletakkan proses pada background dengan menambah karakter & pada akhir perintah. Angka yang berada didalam [] merupakan job number yang diikuti nomor dari PID.

    Kemudian menjalakan perintah $ jobs yang dimana kita dapat mengetahui status dari proses yang sedang dijalankan terlihat bahwa terdapat proses yang sedang running yaitu proses yes yang kita belokkan juga dengan background. 

2. Menghentikan jobs menggunakan perintah $ kill


    Untuk menghentikan job dapat menggunakan perintah $ kill yang diikuti dengan job number job number tersebut merupakan PID yang ada dengan keberadaan [] sebelumnya. Untuk melihat apakah job sudah berhasil diberhentikan dapat kembali menjalankan perintah $ jobs.

PERCOBAAN 5

1. Cara lain metakkan job pada background secara normal.

    
    Perintah yes > /dev/null ini digunakan untuk memulai job dan dapat diberhentikan sementara (suspend) dengam menggunakan ctrl+z. Kemudian dilanjutkan dengan menjalankan perintah $fg yang dimana untuk merestart job pada foreground cara kerja dari perintah ini adalah dengan memulai kembali job yang telah diberhentikan secara sementara (suspend) pada foreground. Lalu, untuk menghentikan job pada foreground  tersebut menggunakan ctrl+z terlihat bahwa job tersebut sudah stopped. 

2. Menggunakan perintah $ bg


    Perintah $ bg ini digunakan untuk meletakkan job pada background. job yes >/dev/null tersebut disuspend dan dipindahkan ke background  proses yang berarti proses atau job tersebut tidak berhenti yang dimana terus berjalan di belakang layar.

3. Job pada bckground tidak bisa diberhentinkan menggunakan ctrl+z maka menjalankan perintah $ fg kembali.

    Pada percobaan ini terdapat perintah yes yang dijalankan pada background yang dimana job pada background sudah pasti tidak diberhetikan dan menjalankan perintah $fg juga hanya memberhentikan secara sementara sehingga job tetap akan berjalan.

4. Menjalankan banyak job dalam satu waktu.



5. Perintah ps -fae

    Perintah $ ps - fae digunakan untuk menampilkan secara lengkap seluruh proses yang sedang berjalan beserta detailnya termasuk dari perintah $ ps - fae sendiri. Kemudian untu perintah $ kill -9 digunakan untuk menghentikan atau terminate suatu proses berdasarkan nomor PID proses yang ingin dihentikan.

PERCOBAAN 6

1. Membuka tiga terminal dengan menjalankan perintah $ PS1="\w:"

    
    Pada terminal pertama masukkan $ sudo su terlebih dahulu dan diikuti dengan memasukkan pass dan enter. Kemudian pada ketiga terminal tersebut jalankan perintah PS1="\w:" perintah ini bertujuan untuk masuk ke direktori home dari user. ~: merupakan tanda bahwa kita login sebagai root. Kemudian jalankan perintah $ pwd.

2. Kemudian buka terminal keempat dan jalankan perintah $ top


    Perintah $ top berfungsi untuk mengetahui semua rincian proses yang berjalan dan beberapa fungsi lainnya. Dengan mengetikkan i pada window top maka akan menghasilkan proses yang sedang aktif sedangkan opsi Imt digunakan untuk menghilangkan atau menampilkan informasi pada bagian atas dari tampilan top.

3. Menjalankan perintah $ yes pada terminal 1 dan 2


    Perintah $ yes diatas untuk membuat proses baru.

4. Perintah $ renice 19 <PID Terminal>



    PID yang digunakan adalah 2299 dan menjalankan perintah $ renice 2299 pada terminal 1 yang berarti bahwa menggati penjadwalan prioritas dari proses ke 19 dan terlihat bahwa NI berubah menjadi 19.

5. Tampilan top setelah menjalankan perintah nice -n -10


6. Renice PID ke 0 


LATIHAN 

1. a. Sebutkan nama - nama yang bukan root


        Berdasarkan dari hasil manjalankan perintah $ ps -au proses yang bukan root adalah -bash dan ps -au.

    b. Tulis PID dan COMMAND dari proses yang paling banyak menggunakan CPU time.
   
         Proses yang banyak memakan CPU time yaitu PID : 1803 dengan COMMAND : /user/bin/gnome-software.

    c. Sebutkan buyut proses dan PID proses tersebut
    
        Buyut proses merupakan proses yang memiliki PID terkecil yang dimana program tersebut merupakan program pertama yang dijalankan. 
                        
                        Buyut proses : gdm
                        PID                : 1364

    d. Sebutkan beberapa proses daemon

        Proses daemon contohnya seperti inetd,named,popd,dll. Namun pada percobaan tersebut tidak ada proses daemon yang berjalan.

    e. Pada prompt login lakukan hal - hal sebagai berikut :

        $ csh
        $ who
        $ bash
        $ ls
        $ sh
        $ ps
        
  • Perintah $ csh merupakan shell interaktif yang memiliki sintaks yang lebih banyak dibandingkan bourne.
  • Perintah $ bash berfungsi untuk menerjemahkan perintah yang kita berikan menjadi bahasa biner dalam linux kernel. 
  • Perintah $ ls berufungsi untuk menampilkan semua daftar file yang ada pada direktori kerja.
  • Perintah $ sh merupakan Bourne Shell atau shell (command interpreter) default dari unix.
  • Perintah $ ps untuk menampilkan proses aktif yang sedang berjalan pada sistem. Perintah ps ini menampilkan proses yang terdiri dari 4 kolom yaitu PID,TTY,TIME, dan CMD.
    f. Sebutkan PID yang paling besar dan kemudian buat urut - urutan proses sampai ke PPID = 1

        

         Untuk menampilkan keseluruhan proses yang berjalan kita menggunakan perintah $ps au yang berfungsi untuk melihat seluruh proses yang berjalan dan didapatkan PID terbesar adalah 2156 dan PPID atau parent PID adalah 1364.

2. Cobalah format tampilan ps dengan opsi berikut dan perhatikan hasil tampilannya:
  • Perintah $ ps -f 
          
          Hasil daftar penuh berupa :
          - UID yang menunjukkan user ID
          - PID  menujukkan proses ID
          - PPID yang merupkan parent dari PID
          - C menunjukkan penggunaan CPU
          - STATIME nenunjukkan start time atau waktu pertama kali program dijalankan
          - TTY terminal yang digunakan untuk menjalankan proses
          - TIME total waktu yang digunakan CPU untuk memproses
          - CMD menunjukkan nama dari proses termasuk argument jika ada.
  • Perintah $ps -j

         Hasil dari perintah tersebut menampilkan 5 kolom yaitu PID, PGID,SID,TTY,TIME, dan SID. PGID merupakan process group ID atau nomor proses group, sedangkan SID atau session ID merupakan sebuah session berisi sejumlah kelompok proses dan sebuah kelompok proses berisi sejumlah kelompok proses, dan proses memiliki nomor dari beberapa thread. Thread merupakan unit dasar dari penggunaan CPU.

  • Perintah $ ps j
    
           Tampilan dari hasil perintah tersebut adalah format control yang dimana terdapat TPGID yang berfungsi untuk menunjukkan control terminal proses group id, STAT untuk menunjukkan status proses, dan UID untuk menunjukkan user ID berupa nilai integer.

  • Perintah $ ps l

            Format tampilan dengan daftar memanjang ini terdapat f atau flags yang menunjukkan nilai bitwise OR dari nilai numerik proses yang sedang berlangsung. Kolom PRI berisikan prioritas penjadwalan dan NI yang menunjukkan nilai NICE. Kolom VSZ menunjukkan virtual size dalam kilobytes. Pada kolom WCHAN menunjukkan waiting channel atau pengalamatan memory dari sebuat event proses yang sedang ditunggu.

  • Perintah $ ps s

          Format sinyal ini terdapat kolon PENDING yang berarti menunjukkan nilai hexadesimal sinyal proses yang tertunda. Kolom BLOCKED menunjukkan nilai hexadesimal sinyal proses yang terblok. Nilai hexadesimal informasi sinyal yang terabaikan terdapat pada kolom IGNORED. Kolom CAUGHT menunjukkan nilai hexadecimal sinyal yang tertangkap. Dapat disimpulkan bahwa untuk sinyal ini memakai bilangan hexa.

  • Perintah $ ps v

              Perintah ini digunakan untuk menunjukkan informasi proses dalam bentuk virtual memori.

  • Perintah $ ps X

        Perintah ini akan menunjukkan informasi proses dalam bentuk format register dalam memory seperti PID,STACKP,ESP,EIP,TIMEOUT,ALARM,STAT,TTY,TIME,dan COMMAND

3. Lakukan urutan berikut :

  • Gunakan perintah find dan daftar pesan error dialihkan ke file errors.txt

          Dengan menjalankan perintah $find > directories.txt | grep error > errors.txt maka proses akan terus berjalan maka untuk mengeluarkannya menggunakan ctrl + c
  • Gunakan perintah sleep 5 . apa yang terjadi dengan perintah ini ?    
          Pada saat menggunakan perintah $ sleep 5 maka proses dari terminal akan berhenti selama 5 detik.
  • Jalankan perintah pada background menggunakan &
           
         Pada saat menjalankan program $ sleep 5 & maka akan ditampilkan job number dari proses yaitu 2046.
  • Jalankan sleep 15 pada foreground 

            Dapat dilihat bahwa kita dapat memindahkan proses yang sedang berjalan dari foreground ke background dan juga sebaliknya.

  • Jalankan sleep 15 pada background  dan lakukan proses kill
          
            Menjalakan proses sleep 15 dengan menggunakan background yaitu dengan penambahan karakter &. Kemudian didapatkan job number yaitu 2059. Kemudian penulisan perintah $ kill 2059 digunakan untuk mematikan atau menghentikan proses yang bisa dilihat sudah ada terminated. 
  • Jalankan sleep 60 pada background  sebanyak 5 kali dan terminasi semua menggunakaan killall.
    
                 Perintah $ killall sleep diatas merupakan perintah pada sistem untuk menghentikan semua proses yang dalam namanya terdapat kata "sleep".

  • Gunakan perintah ps, w , dan top untuk menunjukkan semua proses yang sedang dieksekusi.


            
            Ps merupakan perintah yang digunakan untuk melihat proses yang sedang berjalan dan perintah $ w berfungsi untuk melihat proses beserta rincian lengkap dari semua proses yang berjalan.       
  • Perintah $ ps -aeH

           Perintah $ ps -aeH hanya mengarahkan pada semua proses yang bernama terminal.

  • Kombinasi ps -fae dan grep 
         
           Perintah -fae digunakan untuk menampilkan seluruh proses yang sedang berjalan pada shell. Perintah | digunakan untuk meneruskan hasil output perintah sebelumnya ke perintah selanjutnya dan perintah grep itu sendiri berfungsi untuk melakukan filter segala sesuatu dalam hasil eksekusi perintah.

  • Jalankan proses sleep 300 pada background 
    
           Pada saat melakukan log off  maka semua proses yang dijalankan oleh user akan berhenti, sehingga program sleep 300 juga akan berhenti. Kemudian, dilanjutkan dengan melakukan log in ulang yang dimana sistem hanya akan menjalankan program - program dasar dan program start up.

KESIMPULAN

    Praktikum ini dilakukan pada command line yang dimana semua proses kan dijalankan. Pada praktikum ini juga terdapat cara untuk melakukan proses foreground dan background. Terdapat beberapa opsi yang dapat digunakan diikuti dengan pemakaian penggunaan perintah dari $ps. Selain itu juga kita dapat melihat hirarki proses dalam bentuk tree dengan penggunaan proses $pstree. Banyak perintah yang digunakan pada praktikum ini yang berfungsi untuk mngetahui suatu prosesnya sepertu perintah $ ps , $pstree, $yes, $jobs, $kill. 

DAFTAR PUSTAKA 

Yuliani Yanti. 2014. http://staff.unila.ac.id/yantiyulianti/2014/04/03/belajar-shell-script-dasar-dasar-perintah-linux/ . Diakses pada 17 Oktober 2020.

Risyan Resa. 2019. https://www.monitorteknologi.com/manajemen-proses-dan-penjadwalan-linux/. Diakses pada 17 Oktober 2020.



        







 






            




    
    











Komentar

Postingan populer dari blog ini

Praktikum 3 Operasi File dan Struktur Direktori

Praktikum 9 Manajemen Perangkat Keras