Autori: Florian Mircea Boian, Alexandru Vancea, Darius Bufnea, Claudiu Cobarzan, Rares Boian, Adrian Sterca, Dan Cojocar
Titlu: Sisteme de operare
Editura: Risoprint
Anul aparitiei: 2006
ISBN: 973-751-220-0, 978-973-751-220-8
Pagini: 350
Cuprins
1 | Elemente de interfaţă exterioară Unix | 1 |
1.1 | Probleme generale şi primele comenzi | 1 |
1.1.1 | Structura unei comenzi, evitări şi specificări generice | 1 |
1.1.2 | Numele unui fişier Unix | 2 |
1.1.3 | Specificare în structura de directoare | 4 |
1.1.4 | Primele comenzi | 4 |
1.1.4.1 | Comanda login | 4 |
1.1.4.2 | Comanda passwd | 5 |
1.1.4.3 | Terminarea unei sesiuni de lucru. | 5 |
1.1.4.4 | Manualele Unix | 5 |
1.1.4.5 | Comanda man | 6 |
1.1.4.6 | Comanda more | 7 |
1.1.5 | Expresii regulare | 8 |
1.2 | Comenzi standard Unix | 9 |
1.2.1 | Comenzi de manipulare a directoarelor şi fişierelor | 9 |
1.2.1.1 | Afişarea numelui directorului curent | 9 |
1.2.1.2 | Listarea conţinutului unui director | 9 |
1.2.1.3 | Schimbarea directorului curent | 10 |
1.2.1.4 | Afişarea unui fişier la ieşirea standard | 10 |
1.2.1.5 | Afişarea unui început sau a unui sfârşit de fişier | 11 |
1.2.1.6 | Compararea a două fişiere | 11 |
1.2.1.7 | Determinarea (aproximativă) a tipurilor fişierelor | 12 |
1.2.1.8 | Căutare de fişiere | 12 |
1.2.1.9 | Crearea unui director | 13 |
1.2.1.10 | Copierea unui fişier | 13 |
1.2.1.11 | Comanda de mutare (redenumire) a fişierelor | 14 |
1.2.1.12 | Ştergeri de fişiere sau de directoare | 15 |
1.2.2 | Filtre Unix | 15 |
1.2.2.1 | Comanda grep | 15 |
1.2.2.2 | Comanda sort | 16 |
1.2.2.3 | Editorul sed | 17 |
1.2.2.4 | Comanda tr | 18 |
1.2.2.5 | Comanda wc | 18 |
1.2.2.6 | Comenzile od şi dd | 18 |
1.2.3 | Editorul de texte vi | 19 |
1.2.4 | Utilitarul awk | 22 |
1.3 | Comunicarea între utilizatori | 24 |
1.3.1 | Comunicarea on-line între utilizatori | 24 |
1.3.1.1 | Comanda write | 24 |
1.3.1.2 | Comanda mesg | 25 |
1.3.2 | Poşta electronică | 25 |
1.3.2.1 | Comanda mailx | 27 |
1.3.2.2 | Utilitarul pine | 27 |
1.3.3 | Informări individuale | 28 |
1.3.4 | Lansarea la termen a unui program | 28 |
1.4 | Controlul comenzilor | 29 |
1.4.1 | Comanda tee | 29 |
1.4.2 | Comanda nice | 30 |
1.4.3 | Comanda nohup | 30 |
1.4.4 | Comanda kill | 30 |
1.4.5 | Comanda ps | 31 |
2 | Shell şi programarea în shell | 33 |
2.1 | Interpretoare de comenzi shell | 33 |
2.1.1 | Principalele interpretoare de comenzi shell | 33 |
2.1.2 | Lansarea în execuţie a shell-ului | 34 |
2.1.3 | Funcţionarea unui interpretor de comenzi shell | 35 |
2.2 | Programarea în shell | 36 |
2.2.1 | Morfologia şi sintaxa limbajului sh | 36 |
2.2.1.1 | Gramatica limbajului sh | 36 |
2.2.1.2 | Un exemplu de fişier de comenzi | 39 |
2.2.2 | Comenzi simple şi succesiuni de comenzi | 40 |
2.2.2.1 | Precizări privind semantica lexicului sh | 40 |
2.2.2.2 | Gruparea comenzilor pe o linie | 41 |
2.2.2.3 | Fişierele standard ale unei comenzi. Redirectarea, suprapunerea şi conectarea acestora | 42 |
2.2.3 | Variabile shell şi mecanisme de substituţie | 44 |
2.2.3.1 | Substituţie cu ieşire standard | 44 |
2.2.3.2 | Variabile shell şi substituţia cu valorile lor | 45 |
2.2.3.3 | Variabile shell predefinite (variabile de mediu) | 47 |
2.2.3.4 | Referirea la argumentele din linia de comandă | 48 |
2.2.4 | Comenzi Unix utile în contextul programării shell | 49 |
2.2.4.1 | shift | 49 |
2.2.4.2 | read | 50 |
2.2.4.3 | sleep | 50 |
2.2.4.4 | exit | 51 |
2.2.4.5 | uniq | 51 |
2.2.4.6 | cut | 51 |
2.2.4.7 | echo | 52 |
2.2.4.8 | test | 53 |
2.2.4.9 | expr | 55 |
2.2.5 | Structuri de control alternative shell | 56 |
2.2.5.1 | if | 56 |
2.2.5.2 | case | 58 |
2.2.6 | Structuri de control repetitive shell | 59 |
2.2.6.1 | for | 59 |
2.2.6.2 | while şi until | 60 |
2.2.6.3 | true, false, break, continue | 60 |
2.2.7 | Tratarea liniei de comandă | 62 |
2.3 | Aplicaţii shell | 63 |
2.3.1 | Configurări iniţiale ale shell-urilor | 63 |
2.3.1.1 | Fişiere de iniţializare sh şi bash | 63 |
2.3.1.2 | Prompter dinamic sh | 64 |
2.3.1.3 | Personalizări utile bash | 65 |
2.3.2 | Exemple de aplicaţii sh | 66 |
2.3.2.1 | O aplicaţie de supraveghere | 66 |
2.3.2.2 | Conversii Linux – DOS | 67 |
2.3.2.3 | Reunirea fişierelor tipăribile într-un singur fişier: pall | 69 |
2.3.2.4 | Editări succesive de programe sh urmate de compilare | 70 |
2.3.2.5 | Căutare şir într-o structură de fişiere | 71 |
2.3.2.6 | Afişare arbore de fişiere | 72 |
3 | Structura SO Unix | 75 |
3.1 | Evoluţie şi versiuni | 75 |
3.1.1 | Scurt istoric | 75 |
3.1.2 | Descendenţa şi relaţiile dintre diverse SO Unix | 77 |
3.1.3 | Standarde | 78 |
3.1.3.1 | POSIX | 79 |
3.1.3.2 | Biblioteca C de la GNU | 79 |
3.2 | Structura sistemului de operare Unix | 80 |
3.2.1 | Caracteristici, entităţi participante, contexte de lucru | 80 |
3.2.2 | Principalele componente | 82 |
3.2.2.1 | Partea de servicii | 82 |
3.2.2.2 | Kernel | 83 |
3.2.3 | Ce sunt apelurile sistem? | 85 |
3.2.3.1 | Apeluri sistem Unix şi apeluri API | 85 |
3.2.3.2 | Un exemplu de apel sistem în diverse variante | 87 |
3.2.3.3 | Trecerea la modul de lucru nucleu pe arhitectura Intel | 88 |
4 | Sistemul de fişiere Unix | 93 |
4.1 | Structura arborescentă şi legături suplimentare | 93 |
4.1.1 | Tipuri de fişiere şi sisteme de fişiere | 93 |
4.1.2 | Legături hard şi legături simbolice | 94 |
4.1.3 | Conceptul de montare | 97 |
4.1.4 | Protecţia fişierelor Unix | 99 |
4.1.4.1 | Drepturi de acces | 99 |
4.1.4.2 | Drepturi implicite: umask | 100 |
4.1.4.3 | Drepturi de lansare, drepturi program executabil, biţii setuid şi setgid | 101 |
4.1.5 | Principalele directoare ale unui sistem de fişiere Unix | 103 |
4.2 | Structura internă a discului Unix | 106 |
4.2.1 | Partiţii şi blocuri | 106 |
4.2.2 | Directori şi inoduri | 107 |
4.2.3 | Schema de alocare a blocurilor disc pentru un fişier | 108 |
4.2.4 | Accesul proceselor la fişiere | 110 |
4.3 | Apeluri sistem pentru lucrul cu fişiere | 112 |
4.3.1 | Operaţii I/O | 112 |
4.3.2 | Apelul sistem open | 113 |
4.3.3 | Apelul sistem close | 114 |
4.3.4 | Apelurile sistem read şi write | 114 |
4.3.5 | Apelul sistem lseek | 116 |
4.3.6 | Apelurile sistem dup şi dup2 | 116 |
4.3.7 | Apelul sistem fcntl | 117 |
4.4 | Gestiunea fişierelor | 118 |
4.4.1 | Manevrarea fişierelor în sistemul de fişiere | 118 |
4.4.2 | Creat, truncate, readdir | 119 |
4.4.3 | Un exemplu: obţinerea tipului de fişier prin apelul sistem stat | 120 |
4.5 | Alte apeluri sistem | 121 |
4.5.1 | Time | 121 |
4.5.2 | Umask | 121 |
4.5.3 | Gethostname | 122 |
4.5.4 | Gettimeofday | 122 |
4.5.5 | Mmap şi munmap | 122 |
4.5.6 | Fsync şi fdatasync | 122 |
4.5.7 | Uname | 123 |
4.5.8 | Select şi seturi de descriptori | 123 |
4.6 | Blocarea fişierelor | 124 |
4.6.1 | Un (contra)exemplu | 124 |
4.6.2 | Tipuri de blocare | 125 |
4.6.3 | Blocarea conciliantă prin fcntl | 126 |
4.6.4 | Blocare prin lockf şi flock | 127 |
5 | Procese Unix | 129 |
5.1 | Formatul ELF al unui fişier executabil Unix | 129 |
5.1.1 | Structura | 129 |
5.1.2 | Antetul | 130 |
5.1.3 | Antetele de secţiuni | 130 |
5.1.4 | Un exemplu | 131 |
5.2 | Procese Unix | 133 |
5.2.1 | Structura unui proces | 133 |
5.2.1.1 | Contextul utilizator | 133 |
5.2.1.2 | Contextul nucleu | 134 |
5.2.2 | Apelurile sistem de bază pentru gestiunea proceselor | 138 |
5.2.2.1 | Crearea proceselor Unix. Apelul sistem fork() | 138 |
5.2.2.2 | Execuţia unui program extern; apelurile sistem exec*() | 140 |
5.2.2.3 | Exemple simple de utilizare exec şi fork | 142 |
5.2.2.4 | Ce se moşteneşte din context după fork şi exec*? | 144 |
5.2.2.5 | Apelurile sistem exit(), wait() şi waitpid() | 144 |
5.2.3 | Stările unui proces Unix şi tranziţia între stări | 146 |
5.2.4 | Procese zombie | 147 |
5.2.4.1 | Simularea apariţiei unor procese zombie | 147 |
5.2.4.2 | Evitarea proceselor “zombie”; stilul System V şi stilul BSD | 149 |
5.2.5 | Procese remarcabile şi daemoni | 150 |
5.2.5.1 | Procesele de la încărcare (bootare) la acţiunile shell | 150 |
5.2.5.2 | Oprirea sistemului | 152 |
5.2.5.3 | Stările sistemului de operare Unix | 152 |
5.2.5.4 | Procese daemon | 153 |
5.2.5.5 | Principalele procese create la încărcare | 154 |
5.2.6 | Alte apeluri sistem pentru lucrul cu procese | 155 |
5.3 | Comunicatii intre procese – pipe şi FIFO (pipe cu nume) | 156 |
5.3.1 | Problematica IPC | 156 |
5.3.1.1 | Un contraexemplu remarcabil | 156 |
5.3.1.2 | Comunicarea între procese | 157 |
5.3.1.3 | Specificul comunicaţiei între procese prin flux de octeţi | 158 |
5.3.1.4 | Un exemplu de problemă: tipărirea de propoziţii câte una pe linie | 160 |
5.3.2 | Pipe sub Unix | 162 |
5.3.2.1 | Mecanismul pipe sub Unix | 162 |
5.3.2.2 | Exemplu: corectarea sumei a 4 numere | 164 |
5.3.2.3 | Exemplu: propoziţii una pe linie | 165 |
5.3.2.4 | Exemplu: who | sort | 165 |
5.3.3 | Funcţiile popen, pclose | 166 |
5.3.3.1 | Descriere | 166 |
5.3.3.2 | Exemplu: captarea rezumatului ls -l | 167 |
5.3.3.3 | Exemplu: afişarea variabilelor de mediu în ordine alfabetică | 168 |
5.3.4 | FIFO – pipe cu nume | 168 |
5.3.4.1 | Conceptul de FIFO – pipe cu nume | 168 |
5.3.4.2 | Exemplu: propoziţii pe o linie prin FIFO | 170 |
5.3.4.3 | Programe de urmărire a comportării FIFO | 171 |
5.3.4.4 | Client / server prin FIFO | 172 |
6 | Fişiere de comenzi Ms-Dos şi extensii Windows | 175 |
6.1 | Comenzi utile în contextul fişierelor de comenzi MS-DOS | 175 |
6.1.1 | Comenzi pentru lucrul cu discul | 175 |
6.1.1.1 | format | 175 |
6.1.2 | Comenzi pentru lucrul cu directoare | 175 |
6.1.2.1 | mkdir(md) | 175 |
6.1.2.2 | chdir(cd) | 176 |
6.1.2.3 | rmdir(rd) | 176 |
6.1.2.4 | dir | 176 |
6.1.2.5 | path | 177 |
6.1.3 | Comenzi pentru lucrul cu fişiere | 177 |
6.1.3.1 | more | 177 |
6.1.3.2 | attrib | 177 |
6.1.3.3 | del, erase | 178 |
6.1.3.4 | copy | 178 |
6.1.3.5 | rename(ren) | 179 |
6.1.3.6 | sort | 179 |
6.1.3.7 | type | 179 |
6.1.3.8 | find | 179 |
6.1.3.9 | fc | 180 |
6.1.4 | Directive MS-DOS | 180 |
6.1.4.1 | echo | 180 |
6.1.4.2 | pause | 180 |
6.1.4.3 | rem | 181 |
6.1.4.4 | set | 181 |
6.1.4.5 | shift | 181 |
6.1.4.6 | goto | 182 |
6.1.4.7 | if | 182 |
6.1.4.8 | for | 183 |
6.1.4.9 | call | 183 |
6.1.5 | Exemple de fişiere de comenzi MS_DOS | 183 |
6.1.5.1 | Exemplul 1 | 183 |
6.1.5.2 | Exemplul 2 | 187 |
6.2 | Extensii Windows | 188 |
6.2.1 | Instrucţiunea (comanda) compusă. | 189 |
6.2.2 | Extensii ale directivei FOR | 189 |
6.2.3 | Extensii ale directivei SET şi ale gestionării variabilelor de mediu. | 189 |
6.2.4 | Evaluarea întârziată a variabilelor de mediu. | 190 |
6.2.5 | Extensii ale directivei IF. | 192 |
6.2.5.1 | Alternativa ELSE. | 192 |
6.2.5.2 | Operatori de comparare suplimentari. | 193 |
6.2.6 | Alte extensii | 193 |
6.2.6.1 | Extensii ale directivei SHIFT. | 193 |
6.2.6.2 | Accesarea şirului de parametri din linia de comandă. | 194 |
6.2.6.3 | Extensii ale directivei CALL. | 194 |
6.2.6.4 | Extensii ale directivei GOTO. | 194 |
6.2.6.5 | Extensii ale comenzii MD. | 194 |
6.2.7 | Exemple de fişiere de comenzi cu extensii Windows | 195 |
6.2.7.1 | Exemplul 1 | 195 |
6.2.7.2 | Exemplul 2 | 196 |
7 | Arhitectura sistemului de operare Windows | 199 |
7.1 | Versiuni Windows – argumente pro şi contra | 199 |
7.1.1 | Diferenţe între Windows familia NT şi familia Windows 9X | 199 |
7.1.2 | Caracteristicile principale ale seriei NT | 200 |
7.1.3 | Nivele de protecţie: Kernel Space vs User Space | 201 |
7.2 | Arhitectura SO Windows | 201 |
7.2.1 | Arhitectura internă a nucleului Windows | 201 |
7.2.1.1 | Structura SO Windows | 201 |
7.2.1.2 | Nucleul Windows | 201 |
7.2.1.3 | Executivul NT | 202 |
7.2.1.4 | Microkernel, drivere şi HAL | 205 |
7.2.2 | Subsistemele oferite de sistemul de operare Windows | 205 |
7.2.2.1 | Caracteristicile subsistemelor Win32, POSIX şi OS/2 | 205 |
7.2.2.2 | Procesele de bază ale sistemului de operare | 206 |
7.2.2.3 | Servicii Windows | 207 |
7.3 | Elemente de acces la fişiere sub Windows | 207 |
7.3.1 | Funcţii Win32 API pentru lucru cu fişiere | 207 |
7.3.1.1 | Creare fişier | 207 |
7.3.1.2 | Deschidere fişier | 208 |
7.3.1.3 | Scriere într-un fişier | 208 |
7.3.1.4 | Citire dintr-un fişier | 208 |
7.3.1.5 | Inchidere fişier | 209 |
7.3.2 | Blocare de fişiere în Windows la nivel zonă de date | 209 |
7.3.2.1 | Funcţiile folosite la blocare | 209 |
7.3.2.2 | Un exemplu de blocare | 210 |
7.4 | Procese Window, comunicare între procese | 211 |
7.4.1 | Procese Windows | 211 |
7.4.1.1 | Acţiunile componentelor sistem | 211 |
7.4.1.2 | Crearea unui proces Windows | 212 |
7.4.1.3 | Terminarea unui proces Windows | 213 |
7.4.2 | Pipe sub Windows NT | 214 |
7.4.2.1 | Pipe anonim Windows | 214 |
7.4.2.2 | Pipe cu nume sub windows | 215 |
7.4.2.3 | Un exemplu de comunicare prin pipe | 216 |
7.5 | Structuri interne ale sistemelor de fişiere Windows şi DOS | 219 |
7.5.1 | Sistemul de fişiere FAT | 219 |
7.5.1.1 | Structura unui disc | 219 |
7.5.1.2 | Tabela FAT | 220 |
7.5.1.3 | Structura directorilor | 222 |
7.5.2 | Sistemul de fisiere NTFS/Windows | 223 |
7.5.2.1 | Structura internă a discului NTFS | 223 |
7.5.2.2 | Structura Master File Table | 224 |
7.5.2.3 | Structura şi alocarea spaţiului la un disc logic | 225 |
7.5.2.4 | Atributele unui fişier | 225 |
7.5.2.5 | Fişiere sistem NTFS | 226 |
8 | Sisteme de operare – prezentare generală | 229 |
8.1 | Tipuri de sisteme de operare (SO); clasificări | 229 |
8.1.1 | Clasificare după gradul de partajabilitate a resurselor | 229 |
8.1.2 | Clasificare după tipurile de interacţiuni permise | 230 |
8.1.3 | Clasificare după organizarea internă a programelor ce compun SO. | 231 |
8.2 | Structura si funcţiile unui sistem de operare | 232 |
8.2.1 | Stările unui proces şi fazele unui program | 232 |
8.2.1.1 | Stările unui proces | 232 |
8.2.1.2 | Fazele unui program | 233 |
8.2.2 | Structura generală a unui sistem de operare | 234 |
8.2.2.1 | Structura unui SO | 235 |
8.2.2.2 | Partea de control | 235 |
8.2.2.3 | Partea de servicii | 237 |
8.3 | Incărcarea (lansarea în execuţie) a unui sistem de operare | 240 |
9 | Teoria generală a sistemelor de operare | 245 |
9.1 | Procese | 245 |
9.1.1 | Conceptul de proces | 245 |
9.1.2 | Concurenţa între procese | 246 |
9.1.2.1 | Secţiune critică; resursă critică; excludere mutuală. | 246 |
9.1.2.2 | Conceptul de semafor. | 249 |
9.1.2.3 | Problema producătorului şi a consumatorului. | 250 |
9.1.2.4 | Regiuni critice condiţionate. | 251 |
9.1.2.5 | Problema citirilor şi a scrierilor. | 253 |
9.1.3 | Problema impasului | 254 |
9.1.3.1 | Conceptul de impas. | 255 |
9.1.3.2 | Ieşirea din impas. | 257 |
9.1.3.3 | Detectarea impasului | 257 |
9.1.3.4 | Evitarea (prevenirea apariţiei) impasului. | 258 |
9.1.3.5 | Alocarea controlată (conservativă) de resurse; algoritmul bancherului. | 260 |
9.2 | Conceptul de multiprogramare. | 265 |
9.2.1 | Trecerea unui proces dintr-o stare într-alta | 265 |
9.2.1.1 | Cedarea voluntară a procesorului | 265 |
9.2.1.2 | Cedarea involuntară a procesorului | 266 |
9.2.2 | Funcţionarea unui planificator | 266 |
9.3 | Planificarea proceselor | 267 |
9.3.1 | Sarcinile planificatorului de procese. | 267 |
9.3.2 | Algoritmi de planificare. | 268 |
9.3.2.1 | FCFS (First Come First Served) | 269 |
9.3.2.2 | SJF (Shortest Job First). | 269 |
9.3.2.3 | Algoritmul bazat pe priorităţi. | 269 |
9.3.2.4 | Algoritm bazat pe termene de terminare (deadline scheduling) | 270 |
9.3.2.5 | Round-Robin (planificare circulară). | 270 |
9.3.2.6 | Algoritmul de cozi pe mai multe nivele | 270 |
10 | Gestiunea memoriei | 271 |
10.1 | Structură; calculul de adresă | 271 |
10.1.1 | Problematica gestiunii memoriei | 271 |
10.1.2 | Structura ierarhică de organizare a memoriei | 272 |
10.1.3 | Mecanisme de translatare a adresei | 273 |
10.1.3.1 | Faza de compilare | 274 |
10.1.3.2 | Faza editării de legături | 274 |
10.1.3.3 | Faza de încărcare şi execuţie | 275 |
10.2 | Scheme simple de alocare a memoriei | 276 |
10.2.1 | Clasificarea tehnicilor de alocare | 276 |
10.2.2 | Alocarea la sistemele monoutilizator | 276 |
10.2.3 | Alocarea cu partiţii fixe | 277 |
10.2.4 | Alocarea cu partiţii variabile | 278 |
10.3 | Mecanisme de memorie virtuală | 280 |
10.3.1 | Alocarea paginată | 280 |
10.3.2 | Alocare segmentată | 282 |
10.3.3 | Alocare segmentată şi paginată | 283 |
10.4 | Planificarea schimburilor cu memoria | 284 |
10.4.1 | Intrebările gestiunii memoriei şi politici de schimb. | 284 |
10.4.2 | Politici de plasare. | 285 |
10.4.2.1 | Metode de plasare şi structuri de date folosite | 285 |
10.4.2.2 | Metoda primei potriviri (First-fit). | 288 |
10.4.2.3 | Metoda celei mai bune potriviri (Best-fit). | 288 |
10.4.2.4 | Metoda celei mai rele potriviri (Worst-fit). | 288 |
10.4.2.5 | Metoda alocării prin camarazi (Buddy-system). | 288 |
10.4.3 | Politici de încărcare. | 290 |
10.4.4 | Politici de înlocuire. | 291 |
10.4.4.1 | Metoda NRU. | 292 |
10.4.4.2 | Metoda FIFO. | 292 |
10.4.4.3 | Metoda LRU. | 293 |
10.4.5 | Cum funcţionează o memorie cache? | 294 |
11 | Intrări / ieşiri la nivel fizic | 297 |
11.1 | Tehnica zonelor tampon temporare (buffering, caching) | 297 |
11.1.1 | Mecanismul zonelor tampon temporare | 297 |
11.1.2 | Aplicaţii ale zonelor tampon temporare | 298 |
11.1.2.1 | Acces bufferizat la un fişier | 298 |
11.1.2.2 | Intreţinerea unui cache disc | 299 |
11.1.2.3 | Intreţinerea unui cache Web | 299 |
11.1.2.4 | Conectarea pipe între două comenzi | 299 |
11.1.2.5 | Memoria cache | 300 |
11.2 | Canalul de intrare / ieşire | 300 |
11.2.1.1 | Canalul şi interacţiunea lui cu procesorul central | 300 |
11.2.1.2 | Utilizarea zonelor tampon multiple. | 302 |
11.3 | Elemente specifice lucrului cu discul | 304 |
11.3.1 | Partiţionarea unui hard disc | 304 |
11.3.2 | Planificarea accesului la discul magnetic | 305 |
11.3.2.1 | Problematica planificării accesului la disc | 305 |
11.3.2.2 | Reducerea accesului la sectoare vecine | 306 |
11.3.2.3 | Reducerea aşteptării rotaţiei | 308 |
11.3.2.4 | Reducerea timpului de poziţionare | 309 |
12 | Sistemul de gestiune a fişierelor | 313 |
12.1 | Gestiunea fişierelor privită de utilizator | 313 |
12.1.1 | Volum, fişier, articol, câmp, cheie, index | 313 |
12.1.2 | Conceptul de fişier abstract | 314 |
12.1.3 | Tipuri de acces la articole. | 315 |
12.1.4 | Clasificări ale fişierelor | 316 |
12.2 | Moduri de organizare ale fişierelor | 317 |
12.2.1 | Acces direct prin poziţie | 317 |
12.2.2 | Fişiere inverse | 318 |
12.2.3 | Fişiere multilistă | 319 |
12.2.4 | Fişiere secvenţial-indexate | 320 |
12.2.5 | Fişiere selective | 322 |
12.2.6 | Fişiere organizate folosind B-arbori | 322 |
12.3 | Acţiunile SGF la nivel de articol | 324 |
12.3.1 | Actualizarea fişierelor cu suport altul decât discul | 324 |
12.3.2 | Scrierea şi actualizarea fişierelor disc | 325 |
12.3.3 | Modificarea fişierelor text | 326 |
12.3.4 | Gruparea articolelor în zone tampon | 327 |
12.4 | Acţiunile SGF la nivel de fişier | 328 |
12.4.1 | Descriptorul de fişier | 328 |
12.4.2 | Rutina de deschidere Open | 329 |
12.4.3 | Rutina de închidere Close | 330 |
12.4.4 | Alte operaţii globale cu fişiere | 330 |
12.5 | Acţiunile SGF la nivel de suport disc | 332 |
12.5.1 | Sisteme de cataloage (directori) | 333 |
12.5.1.1 | Directori cu un singur nivel | 333 |
12.5.1.2 | Directori cu două nivele | 333 |
12.5.1.3 | Directori cu structură arborescentă | 334 |
12.5.1.4 | Directori cu structură de graf aciclic | 334 |
12.5.2 | Evidenţa spaţiului liber disc | 334 |
12.5.3 | Alocarea spaţiului pentru fişiere disc | 337 |
13 | Bibliografie | 339 |