Bosh sahifa Wiki Process Control Block

Process Control Block

Process Control Block (PCB)operatsion tizim kernelida har bir processning identitysi, holati, scheduling va resurs ma’lumotlarini saqlaydigan asosiy boshqaruv tuzilmasi.

PCB tarkibi

PCB odatda PID, process state, priority, accounting, parent/child aloqasi, signal holati va address-space reference’larini tutadi. Thread modeli alohida bo‘lsa CPU registerlari TCBda, processga umumiy resurslar PCBda bo‘ladi.

Resurs reference’lari

Open file table, credentials, namespace va working directory PCBning o‘zida yoki reference orqali boshqa kernel obyektlarda saqlanadi. Reference counting va locklar lifecycle’ni boshqaradi.

Scheduler aloqasi

Context switch scheduler current threadning CPU holatini saqlaydi va PCB/TCBdan keyingi runnable obyektni topadi. Process blocked bo‘lsa wait queue reference’i state bilan atomik yangilanadi.

Yaratish va tugash

Fork yangi PCB yaratib parent resurslarini copy-on-write yoki shared reference bilan meros qiladi. Exit resurslarni bo‘shatadi, ammo parent statusni olguncha minimal zombie record saqlanishi mumkin.

Identity

PCB user space’dan bevosita o‘zgartirilmaydi. System call validated view beradi. PID reuse sabab faqat raqamni uzoq muddatli identity deb olish race yaratishi mumkin; generation yoki handle foydali.

Invariantlar

Kernel test state transition, reference leak, parent-child lifecycle va concurrent exit/waitni tekshiradi. Debug dump sensitive credential yoki pointerlarni cheklaydi.

Amaliy boshqaruv

Process Control Block implementatsiyasida PID, state va resource references alohida va versiyalangan holat sifatida yuritiladi. Qaror uchun zarur inputlar yashirin global taxminga aylantirilmaydi: platforma, konfiguratsiya, identity yoki memory-order sharti tegishli obyekt bilan bog‘lanadi. Shu sabab incremental yangilanish, context almashishi yoki parallel hodisada eskirgan ma’lumotdan foydalanish kamayadi. Debug rejim qarorni hosil qilgan edge, state transition va parametrlarni ko‘rsatadi; production log esa maxfiy qiymatlarni xom shaklda yozmaydi.

Muhim xato sinfi — reference leak yoki PID reuse race. Bunday vaziyatda tizim optimistik tarzda davom etmaydi: semantikaga qarab konservativ fallback, bounded retry, taskni bloklash yoki aniq error tanlanadi. Timeout correctness isboti emas; u faqat operatsion limitdir. Queue membership, reference count, lock ownership va visibility kabi invariantlar state bilan atomik yangilanadi. Cancellation yoki failure o‘rtada yuz bersa qisman o‘zgargan holat cleanup protokoli orqali tiklanadi.

Sifat nazorati fork/exit/wait invariantlari orqali bajariladi. Test normal yo‘ldan tashqari bo‘sh navbat, bitta element, yuqori contention, timeout bilan bir vaqtdagi wakeup, resurs limiti va platforma variantlarini qamraydi. To‘g‘rilik performance’dan alohida tekshiriladi; keyin throughput, p99 latency, context switch, cache miss yoki artefakt hajmi kabi mavzuga mos ko‘rsatkichlar baseline bilan solishtiriladi. Topilgan minimal interleaving yoki kirish regressiya to‘plamida doimiy saqlanadi.

PCB fieldlari bitta ulkan lock bilan emas, lifecycle va subsystem bo‘yicha himoyalanishi mumkin. Scheduler hot fieldlarni alohida cache line’da saqlab false sharingni kamaytiradi. Debug reader qaysi field lock yoki RCU ostida o‘qilishini biladi; lockless taxmin bilan aralash snapshot tuzmaydi.

Process accounting CPU va I/O sarfini lifecycle oxirigacha yig‘adi. Counter overflow, namespace mapping va child usage aggregation kernel ABI bo‘yicha aniq talqin qilinadi.

Bog‘liq tushunchalar

process, kernel data structure, PID, process state, scheduler, resource accounting