Sistem de operare Unix

4. Modalități de gestionare a proceselor și resurselor

5. Condiții de funcționare

6. Avantajele și dezavantajele sistemului de operare UNIX

Lista literaturii utilizate

UNIX a apărut în 1969. Pentru mai mult de 30 de ani, sistemul a devenit destul de popular si sa extins la mașinile cu putere de procesare diferite de microprocesoare la mainframe-uri, oferindu-le condițiile generale de punere în aplicare a programelor. Sistemul este împărțit în două părți. O parte este alcătuită din programe și funcții de serviciu - acest lucru face ca mediul de operare UNIX să fie atât de popular; această parte a sistemului de operare este ușor accesibilă utilizatorilor, include programe cum ar fi procesoare de comandă, mesaje, pachete de procesare de text și sisteme de procesare a codului sursă. Cealaltă parte include sistemul actual de operare care susține aceste programe și funcții.







UNIX este în mod tradițional un sistem de operare de rețea.

1. Istoria creației, scopul

UNIX sa născut în laboratorul ATL Bell Labs cu peste 30 de ani în urmă. La acea vreme, Bell Labs a dezvoltat un sistem multi-utilizator de diviziune a Multics.Apoi timp (Multiplexate Serviciul de Informații și Computing), în colaborare cu MIT si General Electric, dar sistemul nu a reușit. Bell Labs a refuzat să participe la proiectul MULTICS, ceea ce a făcut posibil ca unul dintre cercetătorii săi, Ken Thompson, să facă o cercetare în vederea îmbunătățirii mediului de operare al laboratoarelor Bell Labs. Thompson și Bell Labs Fellow Dennis Ritchie si multe altele au dezvoltat un nou sistem de fișiere, dintre care multe caracteristici au fost derivate din Multics.Gaseau. Pentru a verifica noul sistem de fișiere Thompson a scris kernel-ul și unele programe pentru calculator GE-645, care se execută o separare a sistemului multiprogramming Gecos timp. Ken Thompson a avut jocul "Space Travel" scris de el în zilele de lucru pe MULTICS. A executat-o ​​pe un computer GE-645, dar nu a funcționat bine din cauza eficienței reduse a partajării timpului. În plus, timpul mașinii GE-645 a fost prea scump. Ca rezultat, Thompson și Ritchie au decis să se mute jocul la mașină PDP-7, compania având decembrie 4096 cuvinte de 18 biți, TTY și un afișaj grafic bun. Dar PDP-7 avea programe neimportante, iar după finalizarea transferului jocului, Thompson a decis să implementeze pe PDP-7 sistemul de fișiere pe care a lucrat la GE-645. Din această lucrare a apărut prima versiune a UNIX. Chiar și atunci, ea a inclus o caracteristică a sistemului modern de fișiere UNIX, bazat pe Inodes inode, a avut procese subsistemul de control și de memorie, și permite doi utilizatori să lucreze într-un mod de partajare a timpului. Sistemul a fost scris în asamblare. Numele UNIX (Uniplex Information and Computing Services) i-a fost dat de un angajat al Bell Labs, Brian Kernigan,

Primii utilizatori ai UNIX'a au devenit angajații departamentului de brevete al Bell Labs, care au găsit un mediu convenabil pentru crearea de texte. O mare influență asupra soarta UNIX a fost recensământul său în limba C de nivel înalt, dezvoltat de Denis Ritchie în mod special în acest scop. Acest lucru sa întâmplat în 1973, UNIX avea deja 25 de instalații și un grup special de suport UNIX a fost creat în Bell Labs.

După descrierea sistemului de către Thompson și Ritchie în jurnalul de computer CACM în 1974, UNIX a devenit pe scară largă. Sistemul de operare a fost solicitat la universități, deoarece pentru ei a fost livrat gratuit împreună cu codurile sursă în C. Răspândirea largă a compilatoarelor C eficiente a făcut UNIX unic pentru acel moment OS, din cauza posibilității de a fi transferat pe diferite computere. Universitățile au contribuit în mod semnificativ la îmbunătățirea UNIX și la popularizarea sa ulterioară. Un alt pas spre recunoașterea UNIX ca mediu standardizat a fost dezvoltarea de către Denis Ritchie a bibliotecii I / O stdio. Datorită utilizării acestei biblioteci pentru compilatorul C, programele UNIX sunt ușor de portabil.

Sistemul de operare UNIX este un sistem de operare interactiv, este în mod tradițional un sistem de operare de rețea.

2. Caracteristicile funcționale

Funcțiile principale ale kernelului UNIX sunt următoarele:

1) Inițializarea sistemului - funcția de pornire și rotire. Kernelul sistemului oferă o bootstrap care asigură că întregul kernel este încărcat în memoria calculatorului și pornește kernel-ul.

2) Gestionarea proceselor și a firelor este o funcție de a crea, completa și urmări procesele și firele existente ("procese" care rulează în memoria virtuală partajată). Deoarece sistemul de operare UNIX este un sistem de operare cu mai multe procese, kernelul oferă separarea între procesele de procesare în timp (sau procesoarele din sistemele multiprocesor) și alte resurse de computer pentru a crea o senzație externă că procesele funcționează în paralel.

3) Gestionarea memoriei este o funcție de afișare a memoriei virtuale virtual nelimitate a proceselor în memoria RAM fizică a unui calculator care are o dimensiune limitată. Componenta corespunzătoare a kernel-ului oferă o utilizare partajată a acelorași zone RAM prin mai multe procese care utilizează memorie externă.

4) Managementul fișierelor - o funcție care implementează abstractizarea sistemului de fișiere, - ierarhia directoarelor și a fișierelor. Sistemele de fișiere UNIX acceptă mai multe tipuri de fișiere. Unele fișiere pot conține date în format ASCII, altele vor corespunde dispozitivelor externe. Sistemul de fișiere stochează fișiere obiect, fișiere executabile și așa mai departe. Fișierele sunt de obicei stocate pe dispozitive de memorie externe; Accesul la ele este furnizat de kernel. În lumea UNIX, există mai multe tipuri de organizare a sistemelor de fișiere. Versiunile moderne ale sistemului UNIX suportă simultan majoritatea tipurilor de sisteme de fișiere.

5) Instrumentele de comunicare reprezintă o funcție care permite schimbul de date între procesele care rulează într-un singur computer (IPC - Inter-Process Communications), între procesele care rulează pe diferite noduri ale unei rețele de date locale sau globale și între procesele și driverele dispozitivelor externe.

6) Interfața programului este o funcție care oferă acces la capacitățile nucleului din procesele utilizatorului pe baza mecanismului de apel sistem, care este conceput ca o bibliotecă de funcții.

3. Caracteristici ale arhitecturii OSUNIX

Arhitectura sistemului de operare UNIX este multi-nivel (figura 1). La nivelul inferior, direct deasupra echipamentului, rulează kernel-ul sistemului de operare. Funcțiile kernel-ului sunt disponibile prin interfața de apeluri sistem, care formează al doilea nivel. La nivelul următor, există instrucțiuni de interpretare de comandă, comenzi și administrare de sistem, drivere de comunicații și protocoale, tot ceea ce se numește de obicei software-ul de sistem. În cele din urmă, stratul extern este format din programe de aplicații pentru utilizatori, rețele și alte servicii de comunicații, SGBD și utilități.

4. Modalități de gestionare a proceselor și resurselor







Fișierele și procesele sunt conceptele centrale ale modelului sistemului de operare UNIX. Figura 1.2 este o diagramă bloc a nucleului sistemului, care reflectă compoziția modulelor care alcătuiesc miezul și relațiile dintre ele. În partea stângă există un subsistem de fișiere, iar în partea dreaptă, subsistemul de control al procesului este cele două componente principale ale kernelului.

Nivel Core Hardware

Figura 1.1.2 Diagrama bloc a kernelului sistemului de operare

Apelurile la sistemul de operare arată la fel ca și apelurile obișnuite ale funcțiilor în programele C, iar bibliotecile cartografiază corespondența dintre aceste apeluri de funcții și operațiile elementare ale sistemului. În acest caz, programele din asamblare pot accesa direct sistemul de operare, fără a utiliza biblioteca de apeluri sistem. Programele accesează adesea alte biblioteci, cum ar fi biblioteca de rutine I / O standard, realizând astfel o utilizare mai completă a serviciilor de sistem. Pentru aceasta, bibliotecile sunt asociate cu programe la momentul compilării și sunt parțial incluse în programul de utilizator. Setul de apeluri către sistemul de operare este împărțit în cele care interacționează cu subsistemul de gestionare a fișierelor și cele care interacționează cu subsistemul de control al procesului. Sistemul de fișiere gestionează fișierele, înregistrează intrările de fișiere, gestionează spațiul liber, accesează fișierele și prelucrează datele pentru utilizatori. Procesele interacționează cu subsistemul de gestionare a fișierelor, folosind un set de apeluri speciale către sistemul de operare, cum ar fi deschis (pentru a deschide fișierul pentru citire sau scriere), închide, citi, scrie, stat (atribuiți atributele fișierului), chown cu informații despre proprietarul fișierului) și chmod (modificați permisiunile pentru fișier).

Subsistemul de gestionare a fișierelor accesează datele stocate într-un fișier utilizând un mecanism de tampon care controlează fluxul de date între kernel și dispozitive de memorie externă. Mecanismul tampon, care interacționează cu driverele dispozitivelor I / O în blocuri, inițiază transferul de date către miez și spate. Driverele de dispozitive sunt astfel de module din nucleul care controlează funcționarea dispozitivelor periferice. Dispozitivele I / O de blocuri includ programe de utilizator pentru tipul de memorie cu acces aleatoriu; driverele lor sunt construite astfel încât toate celelalte componente ale sistemului să perceapă aceste dispozitive ca amintiri cu acces aleatoriu. De exemplu, un driver de bandă permite ca kernelul sistemului să trateze acest dispozitiv ca o memorie cu acces aleatoriu. Subsistemul de gestionare a fișierelor interacționează, de asemenea, direct cu driverele dispozitivelor I / O "nestructurate", fără intervenția mecanismului tampon. Dispozitivele I / O nestructurate, denumite uneori dispozitive de caractere I / O (bazate pe text), sunt alte dispozitive decât dispozitivele I / O în blocuri.

Subsistemul de control al procesului este responsabil pentru sincronizarea proceselor, comunicarea proceselor, alocarea memoriei și planificarea execuției proceselor. subsistem de gestionare a fișierelor și un subsistem de control proces interacționează unele cu altele, atunci când fișierul este încărcat în memorie pentru execuție: subsistemul de control al procesului citește în memorie fișiere executabile înainte de a le efectua.

Exemple de trimiteri la utilizate în procesele sistemului de operare, poate servi ca furcă (creând un nou proces), Exec (imagine software suprapunere pe procesul de rulare), de ieșire (finalizarea procesului), așteptați (sincronizare continua executarea procesului principal din cuplul de ieșire al procesului de copil ), brk (controlul dimensiunii memoriei alocate procesului) și semnal (controlul reacției procesului la apariția evenimentelor extraordinare.

Modulul de alocare a memoriei controlează alocarea memoriei proceselor. Dacă la un moment dat, sistemul îi lipsește în memoria fizică pentru a rula toate procesele, nucleul trimite procesul între memoria principală și externă, astfel încât toate procesele au avut posibilitatea de a rula. Există două moduri de a gestiona alocarea memoriei: încărcare (paging) și înlocuirea paginii. Programul de paginare este uneori numit un programator, deoarece acesta "planifică" alocarea memoriei proceselor și are un impact asupra activității programatorului CPU. „Scheduler“ intenționează să acorde prioritate punerii în aplicare a proceselor, atât timp cât acestea nu eliberează în mod voluntar CPU, de așteptare pentru alocarea unei resurse, sau până când kernel-ul nu le poate descărca după timpul lor de execuție depășește un interval de timp prestabilit. Planificatorul alege să execute un proces gata de rulare cu cea mai mare prioritate; executarea procesului anterior (suspendat) va fi continuat atunci când prioritatea sa este cea mai mare dintre prioritățile tuturor proceselor gata de execuție. Există mai multe forme de interacțiune între procese, de la schimbul asincron de semnale despre evenimente la mesageria sincronă.

În cele din urmă, controlul hardware este responsabil pentru manipularea întreruperilor și pentru comunicarea cu mașina. Dispozitivele precum discurile și terminalele pot întrerupe funcționarea procesorului central în timpul executării procesului. În acest caz, kernel-ul sistemului după procesarea întreruperii poate relua execuția procesului întrerupt. Întreruperile sunt manipulate nu de procesele propriu-zise, ​​ci de funcțiile speciale ale kernel-ului sistemului enumerate în contextul procesului de execuție.

5. Condiții de funcționare

UNIX este un sistem de operare pentru mai mulți utilizatori. Utilizatorii implicați în activități comune pot fi grupați împreună. Fiecare utilizator trebuie să aparțină uneia sau mai multor grupuri. Toate comenzile sunt executate în numele unui anumit utilizator care aparține grupului specificat în momentul execuției.

În sistemele cu mai mulți utilizatori, este necesar să se protejeze obiectele (fișierele, procesele) aparținând unui singur utilizator de toate celelalte. Sistemul de operare UNIX oferă o protecție de bază și de partajare bazată pe monitorizarea fișierelor utilizatorilor și grupurilor dintr-un fișier, cele trei niveluri de acces (utilizator, proprietar, proprietar al grupului de utilizator, precum și toți ceilalți utilizatori) și trei permisiuni de fișiere de bază (pe citiți, scrieți și executați). Instrumentele de bază pentru protecția proceselor se bazează pe urmărirea proprietății proceselor pentru utilizatori.

Pentru a urmări proprietarii de procese și fișierele, se utilizează identificatori numerici. ID-ul utilizatorului și al grupului este un număr întreg (de obicei) în intervalul de la 0 la 65535. Atribuirea unui ID utilizator unic este efectuată atunci când administratorul de sistem înregistrează un nou nume de conectare. Valorile ID-ului utilizator și al grupului nu sunt doar numere care identifică utilizatorul, ci și proprietarii de fișiere și procese. Printre utilizatorii sistemului este alocat un utilizator - administrator de sistem sau superuser, care are drepturi complete de utilizare și configurare a sistemului. Acesta este un utilizator cu ID 0 și numele de root.

Când prezentați informații unei persoane, este mai convenabil să utilizați numele simbolic în locul identificatorilor corespunzători - numele de conectare al utilizatorului și numele grupului. Corespondența identificatorilor și a denumirilor simbolice, precum și alte informații despre utilizatori și grupuri din sistem (conturi), precum cele mai multe informații despre configurația sistemului UNIX, sunt reprezentate în mod tradițional ca fișiere text. Aceste fișiere sunt / etc / passwd, / etc / group și / etc / shadow.

6. Demnități și dezavantaje

Utilizarea pe scară largă a UNIX a ridicat problema incompatibilității versiunilor sale multiple. Pentru utilizator, este foarte neplăcut faptul că un pachet achiziționat pentru o versiune UNIX refuză să lucreze la o altă versiune de UNIX. Periodic, au fost făcute încercări și sunt făcute pentru a standardiza UNIX, dar acestea au încă un succes limitat. Procesul de convergență a diferitelor versiuni de UNIX și diferențele lor este ciclic. Confruntându-se cu o nouă amenințare de la orice alți producători de sisteme de operare au diferite versiuni ale UNIX-trage împreună produsele lor, dar apoi competiția le forțează să facă versiunile originale și îmbunătățite diverg din nou. În acest proces, există o latură pozitivă - apariția unor noi idei și mijloace de îmbunătățire ca UNIX și multe alte sisteme de operare, ca să-l adopte pentru mulți ani de existență o mulțime de informații utile. Cele mai comune sunt două linii incompatibile de versiuni UNIX: linia ATT-UNIX System V și linia Universității Berkeley-BSD. Multe companii pe baza acestor versiuni s-au dezvoltat și să mențină propriile lor versiuni de UNIX: SunOS și Solaris firmei Sun Microsystems, UX compania Hewlett-Packard, firma Xenix Microsoft, AIX compania IBM, Novell compania UnixWare (comercializat acum compania SCO), iar lista poate fi lung continua.

Cel mai mare impact asupra unificării versiunilor UNIX a fost furnizat de standardele SVID ale ATT, POSIX, create sub egida IEEE și XPG4 a consorțiului X / Open. Aceste standarde formulează cerințele pentru o interfață între aplicații și sistemul de operare, ceea ce face posibil ca aplicațiile să ruleze cu succes în diferite versiuni de UNIX.

Unul dintre principalele avantaje ale unei familii de sisteme de operare de tip UNIX, și a apărut pe baza abordării lor de a standardiza interfețele de sistem de operare (o parte importantă a abordării globale a sistemelor deschise), este faptul că acestea oferă un mediu comun de operare pe o arhitectură diferită de calculator.

Sistemul de operare UNIX, care este primul din istoria sistemului de operare mobil, oferind un mediu fiabil pentru dezvoltarea și utilizarea sistemelor de aplicații mobile, reprezintă simultan o bază practică pentru construirea de sisteme și complexe software și hardware deschise. Este introducerea pe scară largă a sistemului de operare UNIX în practică care ne-a permis să trecem de la sloganul Open Systems la dezvoltarea practică a acestui concept. O contribuție majoră la dezvoltarea Directivei privind sistemele deschise a fost standardizarea interfețelor UNIX OS.

Mai multe ramuri ale sistemului de operare UNIX se pot distinge, diferindu-se nu doar în implementare, ci uneori și în interfețe și semantică (deși, odată cu evoluția procesului de standardizare, aceste diferențe devin mai puțin semnificative). Astăzi, o nouă versiune disponibilă a sistemului de operare UNIX, numită FreeBSD, este populară. Lucrăm la versiuni mai avansate ale BSDNet.

Lista literaturii utilizate







Articole similare

Trimiteți-le prietenilor: