SISTEME
DE OPERARE INTERACTIVE
Florian Mircea Boian
Prefaţă ......................................................5
Capitolul I. Descrierea
sistemelor de operare.................7
1.1 Sisteme de calcul SC şi sisteme de
operare SO........7
1.1.1
Introducere în SO; familii de SC..............7
1.1.2
Evoluţia SC şi a principalelor tehnici din SO..11
1.1.3
Structura şi componentele unui SC............38
1.1.4
Arhitectura unor SC interactive..............58
1.1.5
Scurt istoric al unor SO interactive.........68
1.2 Structura şi funcţiile
sistemelor de operare........73
1.2.1
Tipuri de SO; clasificări....................73
1.2.2
Structura şi funcţiile generale ale SO.......76
1.2.3
Structurile unor SO particulare..............84
1.2.4
Cum devine operaţional un SO ?...............95
Capitolul II. Componente şi
concepte fundamentale...........112
2.1 Procese............................................112
2.1.1
Conceptul de proces.........................112
2.1.2
Mecanisme de specificare a concurenţei......115
2.1.3
Elemente de programare paralelă şi concurentă..121
2.1.4
Problema impasului..........................131
2.1.5
Procese sub UNIX............................137
2.1.6
Descrierea proceselor sub RSX...............140
2.2 Gestiunea memoriei.................................142
2.2.1
Structură; calculul de adresă; protecţie....142
2.2.2
Scheme simple de alocare a memoriei.........149
2.2.3
Mecanisme de memorie virtuală...............154
2.2.4
Gestiunea memoriei sub diverse SO
particulare.................................159
2.3 Fişiere şi gestiunea
fişierelor: SGF...............165
2.3.1
Gestiunea fişierelor privită de utilizator..166
2.3.2
Acţiunile SGF la nivel de articol...........177
2.3.3
Acţiunile SGF la nivel de fişier............186
2.3.4
Moduri de organizare ale fişierelor.........196
2.3.5
Acţiunile SGF la nivel de suport disc.......208
2.3.6
Particularităţi SGF ale unor SO uzuale......217
2.4 Subsistemul de planificare al SO...................244
2.4.1
Probleme generale privind planificarea......244
2.4.2
Planificarea proceselor.....................248
2.4.3
Planificarea schimburilor cu memoria........252
2.4.4
Planificarea operaţiilor I/O cu discurile magnetice..268
Capitolul III. Limbaje de control
şi suprafeţe de operare...272
3.1 Interfaţa exterioară
utilizator ‑ SO...............272
3.1.1
Limbaje de control..........................272
3.1.2
Interpretoare ale fişierelor de comenzi.....275
3.1.3
Utilitare de manipulare fişiere şi volume...278
3.1.4
Suprafeţe de operare........................278
3.2 Interfaţa exterioară cu CP/M.......................280
3.2.1
Principalele comenzi CP/M...................280
3.2.2
Procesorul fişierelor de comenzi SUBMIT.....285
3.3 Interfaţa exterioară cu RSX........................286
3.3.1
Principalele comenzi RSX....................286
3.3.2
Interpretorul de comenzi "AT." de sub RSX...294
3.3.3
Utilitare de tratare a fişierelor RSX (PIP, BRU, DMP).297
3.4 Interfaţa exterioară cu DOS........................306
3.4.1
Principalele comenzi DOS....................306
3.4.2
Fişiere de comenzi (BAT) sub DOS............314
3.4.3
Câteva utilitare DOS remarcabile............319
3.4.4
Suprafaţa NC (Norton Commander).............322
3.4.5
WINDOWS.....................................325
3.5 Interfaţa exterioară cu UNIX.......................332
3.5.1
Probleme generale şi primele comenzi........332
3.5.2
Comenzi de manipulare directori şi fişiere..336
3.5.3
Filtre UNIX.................................346
3.5.4
Comunicarea între utilizatori...............348
3.5.5
Controlul exterior al proceselor............353
3.5.6
Comenzi UNIX utile în contextul SHELL.......356
3.5.7
Shell şi programarea în Shell...............359
3.5.8
Exemple de aplicaţii scrise în Shell........374
3.5.9
X‑Window....................................383
INDEX.......................................................389
BIBLIOGRAFIE................................................404
LISTA DE FIGURI.............................................411
LISTA DE TABELE.............................................415
CUPRINS PARTIAL CP/M........................................415
CUPRINS PARTIAL RSX.........................................415
CUPRINS PARTIAL DOS.........................................415
CUPRINS PARTIAL UNIX........................................415
Sistemul de operare este componenta cu care utilizatorul ia primul contact atunci când doreşte să folosească un calculator. Folosind rutine specializate, un sistem de operare realizează intermedierea completă dintre un echipament de calcul (microcalculator, minicalculator, calculator mediu-mare, reţea de calculatoare etc.) şi utilizatorii care doresc să folosească acest echipament. Din această cauză, orice utilizator de calculatoare trebuie să aibă un minimum necesar de cunoştinţe privitoare la rolul, locul şi funcţiile unui sistem de operare.
Lucrarea de faţă îşi
propune să dezbată, într-o formă unitară, aspectele
teoretice şi metodele practice tipice sistemelor de operare. Cele mai
multe cărţi de sisteme de operare, sau care abordează si
elemente privind aceste sisteme, sunt fie pur teoretice, fie abordează
numai un singur sistem de operare concret, ridicând conceptele introduse de
acesta la rangul de concepte generale. Caracterul unitar al abordării
noastre rezultă din:
Cuprinsurile parţiale care
completeză cuprinsul general permit o urmărire ”diagonalizată”
numai a unuia dintre cele 4 SO concrete pe care facem exemplificări.
Lucrarea nu se rezumă deci numai
la o descriere generală, ci dă o serie de concretizări prin care
utilizatorul poate efectiv să lucreze sub sistemul de operare respectiv.
Prin conţinutul şi modul
său de redactare, lucrarea se adresează unei mase largi de cititori.
Elevii şi studenţii informaticieni pot să o folosească ca
manual de sisteme de operare. Informaticienii pot să o consulte pentru a
înţelege ce se ascunde în spatele ”comenzilor” pe care ei le dau
calculatoarelor ”pentru că aşa li s-a spus că trebuie date”. Bogata
ilustraţie grafică şi renunţarea la detaliile tehnice
irelevante înlesneşte consultarea cărţii şi de către
utilizatorii ”neprofesionişti”. În sfârşit, specialiştii în
programarea şi exploatarea calculatoarelor găsesc în această
carte sinteza a tot ceea ce este esenţial în sistemele de operare.
Capitolul întâi, in prima lui parte
prezintă evoluţia cronologică a principalelor concepte şi
tehnici utilizate in sistemele de calcul şi sistemelor de operare: monitor
rezident, multiprogramare, canal de intrare-ieşire, sisteme multiprocesor
etc. Partea a doua a acestui capitol prezintă structura generală
şi funcţiile unui sistem de operare. Tot aici, într-o formă
concisă sunt tratate problemelor privitoare la încărcarea sistemelor
de operare. În capitol sunt prezentate structurile concrete ale celor patru
sistene de operare interactive pe care le-am ales ca studii de caz: UNIX, DOS,
CP/M şi RSX.
Capitolul al doilea abordează cele
patru componente de bază ale unui sistem de operare: procese, gestiunea
memoriei, gestiunea fişierelor şi planificarea. Metodele şi
tehnicile proprii fiecăreia dintre componente sunt prezentate
fără a face apel la un sistem de operare concret simplificându-se
deci prezentările. După prezentarea fiecărui concept,
urmează concretizările lui în cele patru sisteme de operare alese
pentru studii de caz.
Capitolul al treilea abordează
interfaţa exterioară a sistemelor de operare: comenzi, fişiere
de comenzi, programe utilitare, suprafeţe de operare, medii de operare
şi programare de tip WINDOWS şi X-WINDOWS. Cum este şi normal,
concretizările pentru CP/M, RSX, DOS şi UNIX sunt aici mult mai
ample. Pentru fiecare dintre sisteme sunt prezentate comenzile cele mai
folosite, maniera de lucru cu fisierele de comenzi, alte programe utilitare. Un
accent deosebit s-a pus pe interfaţa exterioară DOS, datorită
răspândirii masive a acestui sistem de operare. Un accent, poate şi
mai mare, s-a pus pe interfaţa exterioară UNIX. Acest sistem,
deşi nu este încă la fel de răspândit la noi ca şi DOS, ”
vine puternic din urma”. Trebuie spus, încă de aici, că UNIX este
astăzi standard ”de facto” în ceea ce priveşte sistemele de operare.
Ca anexe este furnizat un index
alfabetic de termeni, o listă de figuri, o listă de tabele şi patru cuprinsuri parţiale.
Ca
instrument de descriere a diverşilor algoritmi am folosit un ”dialect”
Pascal adaptat după necesităţi. Am făcut această
alegere datorită popularităţii acestui limbaj. Adaptările
şi licenţele introduse în limbaj sunt naturale, deci uşor de
înţeles de către cititor.
Elaborarea prezentei lucrări a
durat timp îndelungat. Implicit, părţi ale ei au făcut obiectul
unor dezbateri colegiale din care autorul a avut multe de învăţat. Se
cuvine deci să adresez sincerele mele mulţumiri tuturor celor care,
într-un fel sau altul m-au ajutat pe parcursul pregătirii şi
elaborării materialului. Dintre aceste persoane citez global colegii din
Catedra de Informatică a Facultaţii de Matematică şi
Informatică de la Universitatea ”Babeş-Bolyai” Cluj. Dintre
aceştia, mulţumesc în mod deosebit colaboratorilor mei Simona Iurian,
Sandu Vancea şi Marius Iurian pentru lectura atentă a materialului
şi pentru sugestiile pertinente făcute. Studenţilor mei, ca
primi ”cobai” pe care am experimentat părţi ale lucrării de-a
lungul a mai mult de 15 ani, le aduc prinosul meu de
recunoştinţă. Fiului meu Rareş îi sunt profund
recunoscător pentru efortul extraordinar pe care l-a depus executând
toată ilustraţia grafică a cărţii. În sfârşit,
dar nu în ultimul rând, mulţumesc editurii LIBRIS pentru întreg efortul
depus în vederea apariţiei acestei cărţi.
Florian Mircea Boian