Contoh Soal Dan Pembahasan Sjf Non Preemptive

Contoh Soal Dan Pembahasan Sjf Non Preemptive

Definisikan perbedaan antara penjadwalan secara preemptive dan non-preemptive? dan berikan contoh- contohnya penjadwalan tersebut?

Daftar Isi

1. Definisikan perbedaan antara penjadwalan secara preemptive dan non-preemptive? dan berikan contoh- contohnya penjadwalan tersebut?


Berikut perbedaan antara penjadwalan preemptive dan non preemptive lengkap dengan contohnya:

Penjadwalan Preemptive, adalah jenis penjadwalan pada sistem operasi dengan kemampuan menghentikan sementara proses yang sedang berlangsung agar terdapat ruang untuk jalannya proses yang lebih diprioritaskan. Contoh penjadwalan preemptive ini bisa dijumpai pada Linux, Windows XP, MacOS X dan lain-lain.Penjadwalan Non-Preemptive adalah kebalikan dari penjadwalan preemptive di mana proses yang sedang berlangsung tak bisa dihentikan sementara atau diinterupsi sehingga CPU akan tetap mendahulukan proses yang sudah berjalan lalu beralih ke proses selanjutnya jika sudah selesai. Contoh penjadwalan Non-Preemptive ini adalah yang dijumpai pada Microsoft Windows 3.1 juga pada sistem operasi Macintosh.Pembahasan

Berikut karakter masing-masing penjadwalan di atas.

PREEMPTIVE:

Algoritma penjadwalan jenis ini dilaksanakan oleh perhitungan yang berdasarkan pada skala prioritas.Proses dengan prioritas yang dipandang lebih tinggi akan menjadi proses satu-satunya yang menggunakan CPU sampai selesai.Apabila ada prioritas baru yang dipandang lebih tinggi lagi maka proses sebelumnya akan dihilangkan.Context switch akan aktif (dipanggil) meski proses oleh timer interrupt diberhentikan.

NON-PREEMPTIVE:

Algoritmanya hanya memperbolehkan berjalannya satu proses saja.Proses tak bisa dihilangkan atau ditunda sementara hingga selesai.Context switch aktif (dipanggil) saat proses diblok atau diberhentikan.Pelajari Lebih LanjutMateri tentang ulasan perbedaan keyboard QWERTY, DVORAK dan KLOCKENBERG https://brainly.co.id/tugas/3000193Materi tentang Jawaban disertai dengan menjelaskan unsur SURVEY dari sampul buku dan unsur QUESTION https://brainly.co.id/tugas/22730757Materi tentang Bagaimana jumlah pengguna bisa mempengaruhi kinerja hardware? https://brainly.co.id/tugas/624409

• • • • • • • • • • • • • • • • • • • • • • • • • • •

Detail Jawaban

Kelas      : SMA

Mapel    : TI

Bab        : Perangkat Keras CPU

Kode      : -

#TingkatkanPrestasimu

#SPJ3


2. Apa perbedaan penjadwalan preemptive dan non preemptive ?


 penjadwalan preemptive adalah Keputusan penjadwalan CPU dilakukan apabila proses berpindah dari keadaan runningke ready atau proses berpindah dari waiting ke ready.




nonpreemptive adalah Keputusan penjadwalan CPU dilakukan apabila proses berpindah dari runningke waiting atau apabila proses berhenti






maaf kalau salah 

3. cara menghitung SJF non preemptive itu gimana ya ? saya belum seberapa faham tentang itu .. proses arrival time brust time p1 0 8 p2 4 4 p3 10 1


 Shortest Job First (SJF)Penjadwalan ini mengasumsikan waktu jalan proses sampai selesai diketahuisebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalanterpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi danturn around time rendah dan penjadwalannya tak berprioritas.Contoh :Terdapat empat proses (job) yaitu A,B,C,D dengan waktu jalannya masing-masingadalah 8,4,4 dan 4 menit. Apabila proses-proses tersebut dijalankan, maka turnaround time untuk A adalah 8 menit, untuk B adalah 12, untuk C adalah 16 danuntuk D adalah 20. Untuk menghitung rata-rata turn around time seluruh prosesadalah dengan menggunakan rumus :( 4a + 3b + 2c + 1d ) / 4Dengan menggunakan rumus, maka dapat dihitung turn around time-nya sebagaiberikut= ( 4a + 3b + 2c + 1d ) / 4= ( 4x8 + 3x4 + 2x4 + 1x4 ) / 4= ( 32 + 12 + 8 + 4 ) / 4= 56 / 4= 14 menitApabila keempat proses tersebut menggunakan penjadwalan shortest job fisrt , maka turn around time untuk B adalah 4, untuk C adalah 8, untuk Dadalah 12 dan untuk A adalah 20, sehingga rata-rata turn around timenya adalahsebagai berikut := ( 4a + 3b + 2c + 1d ) / 4= ( 4x4 + 3x4 + 2x4 + 1x8 ) / 4= ( 16 + 12 + 8 + 8 ) / 4= 44 / 4= 11 menit
      Tidak memperhatikan                                            SJF Memperhatikan SJF Posisi    :    a    b    c    d                                                                                                    a     b     c     d                                           Priority :    4    3    2    1                                                                                                    4     3     2    1Job        :    A   B   C   D                                                                                        A    B    C   D   A---------------------------------------------------------------------------------------------------                 : 8    : 4    : 4    : 4 :                                                                                         : 4   : 4    : 4    : 8 :----------------------------------------------------------------------------------------------------(a)                                                                                       (b)
Jelas bahwa a memberikan nilai kontribusi yang besar, kemudian b, c dan d. KarenaSJF selalu memperhatikan rata-rata waktu respon terkecil, maka sangat baik untukproses interaktif. Umumnya proses interaktif memiliki pola, yaitu menungguperintah, menjalankan perintah, menunggu perintah dan menjalankan perintah,begitu seterusnya.Masalah yang muncul adalah :· Tidak mengetahui ukuran job saat job masuk.Untuk mengetahui ukuran job adalah dengan membuat estimasi berdasarkankelakukan sebelumnya.· Proses yang tidak datang bersamaan, sehingga penetapannya harus dinamis.Penjadwalan ini jarang digunakan, karena merupakan kajian teoritis untukpembandingan turn around time.

 Algoritma Preemptive
  1. Round Robin (RR)       Merupakan :Ø Penjadwalan yang paling tua, sederhana, adil,banyak digunakan algoritmanyadan mudah diimplementasikan.Ø Penjadwalan ini bukan dipreempt oleh proses lain tetapi oleh penjadwalberdasarkan lama waktu berjalannya proses (preempt by time).Ø Penjadwalan tanpa prioritas.Berasumsi bahwa semua proses memiliki kepentingan yang sama, sehinggatidak ada prioritas tertentu.
Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemrosesyang disebut kwanta (quantum) atau time slice dimana proses itu berjalan. Jikaproses masih running sampai akhir quantum, maka CPU akan mempreempt prosesitu dan memberikannya ke proses lain.Penjadwal membutuhkannya dengan memelihara daftar proses dari runnable.Ketika quantum habis untuk satu proses tertentu, maka proses tersebut akandiletakkan diakhir daftar (list), seperti nampak dalam gambar berikut ini :
  




Algoritma yang digunakan :1.       Jika kwanta habis dan proses belum selesai, maka proses menjadi runnabledan pemroses dialihkan ke proses lain.2.       Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainyaoperasi I/O), maka proses menjadi  blocked dan pemroses dialihkan ke proses lain.Jika kwanta belum habis tetapi proses telah selesai, maka proses diakhiri danpemroses dialihkan ke proses lain.


4. Job Y datang pada jam 08.20 dengan runtime sebesar 20 menit. 15 menit sebelum job Y telah datang job z dengan runtime 15 menit lebih besar dari runtime job Y. Job V datang pada jam 08.40 dengan runtime sama besar dengan runtime job Y. Ternyata 10 menit sebelum job z datang telah datang pula job x dengan runtime 25 menit, sedangkan job w datang lebih awal 25 menit dari job v dengan runtime 40 menit. Tentukan Average Turn Arround Time(AVR-TAT) dari job-job diatas dengan metode First Come First Serve(FCFS) dan SJF(Shortest Job First)


entahlah bener apa tidak
soalnya bukan anak IT :D

5. Konsep Bahwa Proses yang memiliki Burst time terkecil yang didahulukan,ini dikenal dalam antrian penjadwalan:a. First Come First Serve (FCFS)b. Sort Job First (SJF )c. Round Robind. Priority Scheduling (PS)​


Jawaban:

B

Penjelasan:

Dalam FCFS, CPU akan mendahulukan proses yang datang pertama kali

Dalam SJF, CPU mengerjakan proses dengan burst time terkecil terlebih dahulu

Dalam Round Robin, proses akan mendapat jatah waktu yang sama untuk dikerjakan oleh CPU

Dalam Priority Scheduling, CPU akan mengerjakan proses yang mempunyai prioritas yang lebih tinggi

Jawaban:

B. Sort Job First(SJF)

Penjelasan:

Moga membantu:(


6. Sebutkan dan jelaskan mengapa harus ada penjadualan? apa yang kalian ketahuin tentang Non Preemptive?


karna kita sebagai manusia saling membutuhkan sang penjual membutuhkan uang sang pembeli membutuhkan barang

maaf klo salahkarena dengan penjadwalan maka setiap bentuk kegiatan akan terlaksana dengan baik dan teratur.
non preemptive ialah penjadwalan dimana sistem operasi tidak melakukan context switch dari proses yang sedang berjalan

7. P1 0 ms 8 ms P2 3 ms 5 ms P3 5 ms 2 ms P4 9 ms 7 ms hitunglah sjf non premitif dan premitif


Jawaban:

P1=4-(--

Penjelasan:

terima kasih


8. Job D datang pada jam 08.20 dengan runtime sebesar 30 menit, 10 menit sebelum Job D telah datang job E dengan runtime 20 menit lebih besar daripada runtime job D. Job A datang pada jam 08.40 dengan runtime sama besar dengan runtime Job D. Ternyata 5 menit sebelum job E datang telah datang pula Job C dengan runtime 20 menit, sedangkan job B datang lebih awal 40 menit dari job A dengan runtimenya 40 menit.Tentukan Average Turn Arround Time (AVR-TAT) dari job-job di atas dengan metode: FCFS, SJF, PSJF, HPRN dan RR (Q=10 Menit). buatkan tabel dan grafik gambar.​


Jawaban:

Untuk menghitung Average Turnaround Time (AVR-TAT) dari job-job menggunakan metode FCFS, SJF, PSJF, HPRN, dan RR, kita dapat membuat tabel dan menghitung waktu proses selesai (completion time) untuk setiap job. Berikut adalah tabel yang menunjukkan waktu kedatangan (arrival time), runtime, waktu mulai (start time), waktu selesai (completion time), dan turnaround time (TAT) dari setiap job:

```

| Job | Arrival Time | Runtime | Start Time | Completion Time | Turnaround Time |

|-----|--------------|---------|------------|-----------------|-----------------|

| A | 08:40 | 30 | - | - | - |

| B | 08:00 | 40 | - | - | - |

| C | 08:15 | 20 | - | - | - |

| D | 08:20 | 30 | - | - | - |

| E | - | - | - | - | - |

```

Berikut adalah langkah-langkah untuk mengisi tabel ini dengan metode FCFS, SJF, PSJF, HPRN, dan RR:

1. FCFS (First-Come, First-Served):

- Urutkan job berdasarkan kedatangan (arrival time).

- Mulai dari job pertama, tetapkan waktu mulai (start time) job tersebut sesuai dengan waktu kedatangan.

- Hitung completion time dengan menambahkan runtime job dengan waktu mulai.

- Hitung turnaround time dengan mengurangi arrival time dari completion time.

2. SJF (Shortest Job First):

- Urutkan job berdasarkan runtime (dari yang terkecil hingga terbesar).

- Mulai dari job pertama, tetapkan waktu mulai (start time) job tersebut sesuai dengan waktu kedatangan.

- Hitung completion time dengan menambahkan runtime job dengan waktu mulai.

- Hitung turnaround time dengan mengurangi arrival time dari completion time.

3. PSJF (Preemptive Shortest Job First):

- Urutkan job berdasarkan runtime (dari yang terkecil hingga terbesar).

- Mulai dari job pertama, tetapkan waktu mulai (start time) job tersebut sesuai dengan waktu kedatangan.

- Jika ada job lain dengan runtime lebih kecil yang datang sebelum job tersebut selesai, lakukan preemption dan tetapkan waktu mulai yang baru.

- Hitung completion time dengan menambahkan runtime job dengan waktu mulai.

- Hitung turnaround time dengan mengurangi arrival time dari completion time.

4. HPRN (Highest Priority Ratio Next):

- Hitung priority ratio untuk setiap job, yaitu runtime job dibagi dengan selisih antara waktu sekarang dengan waktu kedatangan job tersebut.

- Urutkan job berdasarkan priority ratio (dari yang tertinggi hingga terendah).

- Mulai dari job pertama, tetapkan waktu mulai (start time) job tersebut sesuai dengan waktu kedatangan.

- Hitung completion time dengan menambahkan runtime job dengan waktu mulai.

- Hitung turnaround time dengan mengurangi arrival time dari completion time.

5. RR (Round Robin):

- Tetapkan waktu quantum (Q).

- Urutkan job berdasarkan kedatangan

(arrival time).

- Mulai dari job pertama, tetapkan waktu mulai (start time) job tersebut sesuai dengan waktu kedatangan.

- Jika runtime job melebihi waktu quantum, hitung completion time dengan menambahkan waktu quantum dengan waktu mulai.

- Jika runtime job tidak melebihi waktu quantum, hitung completion time dengan menambahkan runtime job dengan waktu mulai.

- Jika job belum selesai, pindahkan job tersebut ke akhir antrian dan lanjutkan ke job berikutnya.

- Hitung turnaround time dengan mengurangi arrival time dari completion time.

Setelah tabel diisi, kita dapat menghitung Average Turnaround Time (AVR-TAT) dengan menjumlahkan semua turnaround time dan membaginya dengan jumlah job.

Jawaban:

Berikut adalah tabel dan grafik yang menunjukkan Average Turnaround Time (AVR-TAT) dari job-job dengan menggunakan metode FCFS (First-Come, First-Served), SJF (Shortest Job First), PSJF (Preemptive Shortest Job First), HPRN (Highest Priority Ratio Next), dan RR (Round Robin dengan Quantum 10 Menit).

Tabel Average Turnaround Time (AVR-TAT):

| Job | FCFS | SJF | PSJF | HPRN | RR |

|-----|------|-----|------|------|-------|

| A | | | | | |

| B | | | | | |

| C | | | | | |

| D | | | | | |

| E | | | | | |

Grafik Average Turnaround Time (AVR-TAT):

```

AVR-TAT

|

| A

|

|

| B

|

|

| C

|

|

| D

|

|

| E

|________________________________________________________________

```

Untuk menghitung AVR-TAT dengan metode-metode tersebut, diperlukan informasi lebih lanjut mengenai waktu kedatangan (arrival time) dan runtime dari masing-masing job. Mohon sertakan informasi tersebut agar dapat menghitung AVR-TAT dengan lebih akurat.


9. Bagaimana cara menghitung Round robin PS kecil preemptive?



buat program untuk menghitung waiting time rata2 (AWT) Turnround time rata2 (ATT) menggunakan algoritma. Time quantum yang ideal adalah jika 80% dari total proses memiliki CPUburst time yang lebih kecil dari 1 time quantum

10. contoh dari kasus penjadwalan preemptive dan nonpreemptive?​


Jawaban: Contoh dari kasus penjadwalan preemptive dan non preemptive

Penjelasan:

1.Penjadwalan Preemptive mempunyai arti kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi. Penjadwalan ini bisa saja termasuk penjadwalan proses atau M/K. Penjadwalan Preemptive memungkinkan sistem untuk lebih bisa menjamin bahwa setiap proses mendapat sebuah slice waktu operasi. Dan juga membuat sistem lebih cepat merespon terhadap event dari luar (contohnya seperti ada data yang masuk) yang membutuhkan reaksi cepat dari satu atau beberapa proses. Membuat penjadwalan yang Preemptive mempunyai keuntungan yaitu sistem lebih responsif daripada sistem yang memakai penjadwalan Non Preemptive.

2. Penjadwalan Non Preemptive ialah salah satu jenis penjadwalan dimana sistem operasi tidak pernah melakukan context switch dari proses yang sedang berjalan ke proses yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt.


11. 1) Algoritma penjadwalan CPU manakah untuk sistem operasi real-time? 2) Secara umum, algoritma penjadwalan CPU mana yang bekerja dengan waktu tunggu tertinggi? 3) Apakah mungkin untuk menggunakan algoritma penjadwalan CPU yang optimal dalam praktik? 4) Apa kesulitan sebenarnya dengan algoritma penjadwalan CPU SJF?


Algoritma penjadwalan CPU yang digunakan untuk sistem operasi real-time biasanya adalah algoritma penjadwalan prioritas. Algoritma ini menjadwalkan proses berdasarkan prioritas yang ditentukan, sehingga proses yang memiliki prioritas tertinggi akan selalu dieksekusi terlebih dahulu.

Secara umum, algoritma penjadwalan CPU yang bekerja dengan waktu tunggu tertinggi adalah algoritma penjadwalan Round Robin. Algoritma ini menjadwalkan proses secara bergantian dengan waktu quantum yang telah ditentukan, sehingga semua proses dapat mendapatkan kesempatan yang sama untuk dieksekusi. Namun, karena waktu quantum yang digunakan biasanya cukup pendek, proses yang menunggu akan terus berulang-ulang sampai mendapatkan kesempatan untuk dieksekusi, sehingga waktu tunggu proses dapat menjadi cukup lama.

Dari sudut pandang teori, mungkin untuk menggunakan algoritma penjadwalan CPU yang optimal dalam praktik. Namun, pada kenyataannya, terdapat berbagai kendala yang dapat menghambat penggunaan algoritma penjadwalan CPU yang optimal, seperti ketidaktahuan tentang ukuran dan sifat proses yang akan dieksekusi, keterbatasan waktu dan sumber daya yang tersedia, serta perubahan dinamis dari kondisi sistem. Oleh karena itu, pemilihan algoritma penjadwalan CPU yang optimal tidak selalu dapat dilakukan dengan mudah dalam praktik.

Salah satu kesulitan sebenarnya dengan algoritma penjadwalan CPU SJF adalah ketidakpastian ukuran proses yang akan dieksekusi. Algoritma SJF menjadwalkan proses berdasarkan ukuran waktu eksekusi yang diperkirakan, sehingga jika ukuran proses ternyata berbeda dari perkiraan, maka algoritma ini dapat menghasilkan waktu tunggu yang tidak efisien. Oleh karena itu, algoritma SJF biasanya hanya dapat digunakan dalam situasi dimana ukuran proses dapat diperkirakan dengan tepat.


12. 4. Suatu algoritma penjadwalan CPU kemungkinan melibatkan algoritma yang lain, contohnya algoritma FCFS adalah algoritma RR dengan waktu quantum tertentu. Apakah ada hubungan antara pasangan algoritma berikut? a. Priority dan SJF b. Priority dan FCFS c. RR dan SJF​


Jawaban:

Tidak ada

Penjelasan:

a. a. Priority dan SJF (Shortest Job First):

Tidak ada hubungan langsung antara algoritma Priority (prioritas) dan SJF (Shortest Job First). Kedua algoritma tersebut berbeda dalam prinsip dasarnya.

b. Priority dan FCFS (First-Come, First-Served):

Algoritma Priority dan FCFS juga tidak memiliki hubungan langsung. Kedua algoritma ini juga berbeda dalam prinsipnya.

c. RR dan SJF (Round-Robin dan Shortest Job First):

Tidak ada hubungan langsung antara algoritma RR (Round-Robin) dan SJF (Shortest Job First). Kedua algoritma ini memiliki prinsip yang berbeda.

Algoritma penjadwalan CPU dapat dikombinasikan atau dimodifikasi untuk memenuhi kebutuhan khusus sistem operasi atau lingkungan pengguna tertentu.


13. Diketahui 4 buah proses P1, P2, P3, dan P4 dengan arrival time dan burst time dalam milisecond sebagai berikut : Proses Burst Time Prioritas P1 10 3 P2 1 1 P3 2 3 P4 1 4 P5 5 2Diasumsikan urutan kedatangan proses P1, P2, P3, P4, P5 pada waktu 0.a. Gambarkan gant chart yang menggambarkan eksekusi proses dengan menggunakan algoritma penjadwalan FCFS, SJF, nonpreemptive priority (nomor prioritas terkecil menunjukkan prioritas tertinggi), dan RR (QT = 1)b. Berapakan turnaround time dari setiap proses dari setiap algoritma penjadwalan pada soal a ?c. Berapakan waiting time dari setiap proses dari setiap algoritma penjadwalan pada soal a ?d. Penjadwalan manakan yang menghasilkan average waiting time minimal dari keseluruhan proses ?​


Jawaban:

a. Berikut adalah gantt chart untuk setiap algoritma penjadwalan:

FCFS:

P1 P2 P3 P4 P5

0 10 11 13 14

SJF:

P2 P4 P3 P5 P1

0 1 2 4 9

Nonpreemptive Priority:

P2 P1 P3 P5 P4

0 10 12 17 22

RR (QT=1):

P1 P2 P3 P4 P5 P1 P3 P1 P5 P5 P5

0 1 2 3 4 5 7 8 9 10 11

b. Turnaround time untuk setiap proses pada masing-masing algoritma penjadwalan:

FCFS:

P1: 10

P2: 11

P3: 12

P4: 13

P5: 9

SJF:

P2: 2

P4: 5

P3: 10

P5: 14

P1: 19

Nonpreemptive Priority:

P2: 1

P1: 11

P3: 10

P5: 22

P4: 23

RR (QT=1):

P1: 11

P2: 2

P3: 8

P4: 14

P5: 16

c. Waiting time untuk setiap proses pada masing-masing algoritma penjadwalan:

FCFS:

P1: 0

P2: 10

P3: 11

P4: 12

P5: 3

SJF:

P2: 0

P4: 1

P3: 8

P5: 9

P1: 9

Nonpreemptive Priority:

P2: 0

P1: 0

P3: 8

P5: 17

P4: 12

RR (QT=1):

P1: 0

P2: 9

P3: 0

P4: 13

P5: 6

d. Untuk mencari algoritma penjadwalan yang menghasilkan average waiting time minimal, dapat dilakukan perhitungan rata-rata waiting time dari semua proses pada masing-masing algoritma penjadwalan:

FCFS: (0+10+11+12+3)/5 = 7.2

SJF: (0+1+8+9+9)/5 = 5.4

Nonpreemptive Priority: (0+0+8+17+12)/5 = 7.4

RR (QT=1): (0+9+0+13+6)/5 = 5.6

Berdasarkan perhitungan di atas, algoritma penjadwalan SJF dan RR (QT=1) memiliki average waiting time yang lebih rendah dibandingkan dengan FCFS dan nonpreemptive priority. Maka, dari keseluruhan proses, algoritma penjadwalan yang menghasilkan average waiting time minimal adalah SJF atau RR (QT=1).


14. 4. Jika diketahui 6 antrian proses (A, B, C, D, E, F) Dengan waktu kedatangan secara bersamaan yaitu 0 lama eksekusi tiap-tiap antrian proses secara berurutan 1,3,7,5,5,3. Hitunglah TAT dan AWT dengan menggunakan teknik penjadwalan proses : a. FIFO b. SJF5. Jika diketahui 7 antrian proses (A, B, C, D, E, F, G) Dengan waktu kedatangan yaitu (0, 3, 5, 8, 15, 20) lama eksekusi tiap-tiap antrian proses secara berurutan 5, 2, 3, 4, 1, 4. Hitunglah TAT dengan menggunakan teknik penjadwalan proses : a. FIFO b. SJFtolong bantuannya ​


4. a. FIFO

- TAT = (1+3+7+5+5+3) = 24

- AWT = (1+4+11+16+21+24)/6 = 13/2 = 6.5

b. SJF

- TAT = (1+3+5+5+7+10) = 31

- AWT = (1+0+2+2+2+7)/6 = 14/6 = 2.33

5. a. FIFO

- TAT = (5+7+10+14+15+20) = 71

b. SJF

- TAT = (5+9+12+16+17+21) = 80/6 = 13.33

Semoga membantu


Video Terkait

Kategori ti