Procesy Flashcards
Co je program?
Staticky, vykonatelny subor na disku
Co je proces?
Program, ktory sa prave vykonava a ma stav
Z jedneho programu moze bezat kolko procesov?
Viac
Moze byt vykonavanych procesov sucasne viac ako pocet procesorov?
Ano
Procesy su _____ a ______ (s ohladom na prostriedky)
nezavisle a izolovane
Mozu procesy spolu komunikovat?
Ano ale musia o to poziadat OS
Kto robi time sharing procesov?
OS
preco treba striedat procesy?
lebo sa musia delit o jadra procesora
Ako reprezentujeme proces?
PCB (Process Controlm Block)
Co obsahuje PCB?
stav CPU, registre, flags..
stav pamati (text, data, stack, heap), tabulky stranok
otvorene subory, zamky, signaly
alokovane a spotrebovane prostriedky, stav, priorita, PID, rodic, UID, CMD…
PCB vsetkych procesov tvori _______
tabulku procesov
Na linuxe je PCB implementovany structom ____
task_struct
tabulka PCB je reprezentovana ako …
dvojity spajany zoznam task_struct
aky pointer ukazuje na aktualne vykonavany proces?
current
v akom pseudosuborovom systeme a akym prikazom je dostupna tabulka procesov?
/proc alebo
ps, top
Ako sa nazyva zmena beziaceho procesu na iny?
context switch
kedy je potrebna zmena procesu?
ak uz beziaci nemoze bezat dalej, napr z dovodu V/V operacie alebo spotrebuje pridelene casove kvantum
kedy moze nastat prepnutie procesu?
pri systemovom volani alebo preruseni
sucastou obsluhy prerusenia je ____
odlozenie stavu CPU do PCB
po preruseni jadro ____
zvoli novy proces na vykonavanie
potom co sa vyberie novy proces, tak ______
sa aktualizuje CPU podla PCB noveho procesu, aj register ukazujuci na tabulky stranok cim sa “prepne pamat”
Akou instrukciou sa na inteloch vieme dostat z prerusenia?
IRET
ako sa overuje vycerpanie casoveho kvanta procesu?
interruptmi od casovaca
Co je on-deman interrupt?
Ak nie je ziaden proces beziaci, tak procesor nebude zbytocne budeny
Ak bezi jeden, tak netreba sledovat jeho casove kvantum a netreba zahlcovat CPU preruseniami
Ako najmenej casto treba prerusovat CPU a preco?
Raz za sekundu kvoli aktualizovaniu statistik pre planovac
Ake pozname stavy procesu?
New, Terminated, Ready, Blocked, Running
Kedy ma proces stav new?
novovytvoreny proces
Kedy ma proces stav terminated?
ukonceny proces
Kedy ma proces stav ready?
pripraveny na vykonanie a caka kym dostane od OS CPU
kedy ma proces stav running?
planovac pridelil procesu CPU a vykonava sa
kedy ma proces stav blocked?
proces sa nemoze vykonavat kym nenastane udalost na ktoru caka
Kam sa vieme dostat zo stavu new?
Ready
Kam sa vieme dostat zo stavu ready?
Running
Kam sa vieme dostat zo stavu Running?
Terminated, Blocked, Ready
Kam sa vieme dostat zo stavu Terminated?
Nikam
Kam sa vieme dostat zo stavu Blocked?
Ready
Co znamena zmena stavu Scheduled?
Ready -> Running
Co znamena zmena stavu Descheduled
Running -> Ready, procesor mu bol odobrany
Co znamena zmena stavu I/O started?
Running -> Blocked, proces caka kym dostane to co potrbeuje
Co znamena zmena stavu I/O Completed?
nastala udalost na ktoru proces cakal
Na co caka blokovany proces?
Externu udalost nezavislu od OS, nemusi to byt len I/O
Aka je skratka stavu R?
Ready
Aka je skratka stavu S?
sleep, prerusitelne cakanie
Aka je skratka stavu I?
prilis dlhe cakanie Idle
Aka je skratka stavu D?
neprerusitelne cakanie, typicky cakanie na I/O
Aka je skratka stavu T?
stopped, suspended, po signale SIGSTOP, moze pokracovat SIGCONT
Aka je skratka stavu Z?
Zombie, ukonceny
Vie proces kedy a na ako dlho mu bude prideleny CPU?
Nie
Co vie robit proces namiesto predpokladov o case od CPU?
explicitnu synchronizaciu s inymi procesmi pomocou prostriedkov OS
Co je cielom planovania?
Zvysit priepustnost, co najkratsi cas vykonavania ulohy, nizky cas odozvy pre ulohy
Ake politiky planovaca pozname bez preempcie?
First Come First Server a Shortest Job First
Aka politika je FCFS?
procesy dostanu procesor vporadi v akom prisli, maju ho az kym ho neuvolnia alebo sa nezablokuju, nevyhoda je dlha odozva pri vela ulohach
Aka je politika SJF?
Planovac musi vediet na ako dlho potrebuje proces CPU, nevyhoda je ze dlhe ulohy cakaju
Aka je politika Round Robin?
Kazdemu priradi rovnake casove kvantum a striedaju sa v poradi v akom prisli
Aka je politika podla priority?
Vyberaju sa podla priority, nevyhoda ze nizka priorita sa nemusi dostat na rad
Ako sa da vyriesit problem s nizkou prioritou?
Dynamicky menit prioritu, napr podla toho kolko uz cakaju na vykonanie
Co je to preempcia?
přerušení právě vykonávaného procesu (úlohy) bez toho, aby byla vyžadována jeho spolupráce. Přerušená úloha je pozastavena, nahrazena jinou úlohou a později je pomocí stejného mechanismu její činnost opět obnovena
Co OS pre kazdy proces zaznamenava?
objem prostriedkov ktore pouziva, napr cas kedy mal prideleny procesor a vykonaval sa (user time), cas kedy vykonaval systemove volania (system time), velkost pamate, pocet vypdkov stranok a pod
Ako vieme v linuxe ziskat info o pouzitych zdrojoch procesom?
getrusage()
Co je RSS - Resident Set Size?
velkost obsadenej fyz pamate
Ako sa da pracovat s limitmi pre objem prostriedkov?
soft limit sa da nastavit max po hard limit, hard limit sa da len znizit
Co znaci zatazenie procesorov?
Priemerna dlzka radu pripravenych a vykonavanych procesov
Kedy je system pretazeny?
Ak je zataz L vyssia ako pocet CPU
Ake prikazy pozname na sledovanie zataze?
top, uptime
Co je zatazenie systemu?
procesy v stave neprerusitelneho cakania + zatazenie procesorov
Co je realny cas procesu?
Cas od spustenia, je tam zaratany cas aj ked sa nevykonaval
Ako moze byt vytvoreny novy proces?
po zavedeni programu zo suboru do pamate, alebo pre program ktory uz je v pamati
pri volani fork sa skopiruje takmer vsetko okrem___
PID
ak chceme vykonavat novy proces, tak po fork volame ____
exec
navratova hodnota fork pre novy proces je
0, PID pre rodica
Proces sa vie ukoncit prikazom ____
exit
Rodic na exit caka volanim ____
wait
Ako sa vytvaraju procesy od botu v unixe?
Prvy proces pri starte PID 1 je vytvoreny jadrom, ostatne mechanizmom fork + exec
Co robi volanie execve(char *filename, …)?
Nahradí obraz volajúceho procesu v pamäti obsahom súboru filename
Co obsahuje mapa pamati procesu?
Kernel, stack, memory mappings, Heap, BSS segmert, Data segment, Text segment
Co je memory mappings?
mapovane files, dynamicke kniznice
stack rastie smerom
dole
ako sa docieli aby neprerastol jeden segment na druhy?
su tam medzery (gaps)
Preco si proces uklada namapovane jadro?
Je to efektivnejsie
Co je vlakno?
Samostatny tok riadenia v ramci procesu
Aky je rozdiel medzi vlaknom a procesom?
vlakna sa mozu vykonavat subezne v jednom pamatovom priestore - efektivnejsie
vlakna vie planovat kto?
bud kernel alebo samostatne vlakna sa vedia delit
Co nezdielaju vlakna pricesu?
lokalne premenne, stack, registre
aky je rozdiel volania clone a fork?
pri clone sa da zvolit ake prostriedky sa budu kopirovat
preco je vytvorenie vlakna efektivnejsie ako vytvorenie procesu?
netreba vsetko tahat a kopirovat z PCB
ako implementuje Linux vlakna?
ako procesy
Ake su problemy pri vlaknach?
Ktore vlakno obsluzi prerusenie pre proces, moze niektore vlakno zatvorit subor ak ine ho este cita?, co s globalnymi premennymi a pod
programy pre prostredie s vlaknami musia byt pisane s ohladom na ______
subezne vykonavanie v spolocnej pamati
ako v POSIX threads vytvorime vlakno?
pthread_create
Ako v POSIX threads ukoncime vlakno?
pthread_exit
Ako v POSIX threads cakame na ukoncenie vlakna?
pthread_join
Ako volame binarny semafor, teda zamok?
mutex, pouzivame pthread_mutex_init, lock, destroy, unlock
Okrem zamku co vieme pouzit?
podmienene premenne, teda cond