SISTEME DE OPERARE INTERACTIVE

 

Florian Mircea Boian

 

CUPRINS

 

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

 

 

Prefaţă

 

 

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