Sisteme de operare, medii și shell-uri. Arhitectura, scopul și funcțiile sistemelor de operare

În ce constă orice sistem de calcul? Din ceea ce se numește în mod obișnuit hardware în țările vorbitoare de engleză, sau suport tehnic: procesor, memorie, monitor, dispozitive de disc etc., unite printr-o conexiune backbone numită magistrală.


Distribuiți-vă munca pe rețelele sociale

Dacă această lucrare nu vă convine, în partea de jos a paginii există o listă cu lucrări similare. De asemenea, puteți utiliza butonul de căutare


Secțiunea 1 Sisteme de operare, medii și shell-uri p. 18 din 18

Cursul 1

Cursul 1 Introducere la OS definiția, scopul și istoria dezvoltării.

Ce este un sistem de operare

Structura sistemului de calcul

Ce este OS

Sistem de operare ca o mașină virtuală

Sistem de operare ca manager de resurse

Sistemul de operare ca protector al utilizatorilor și al programelor

Sistem de operare ca un nucleu care rulează constant

Poveste scurta evoluţie sisteme de calcul

Prima perioadă (1945-1955). Mașini cu lampă. Fara sisteme de operare

A doua perioadă (1955–începutul anilor '60). Calculatoare pe bază de tranzistori. Sisteme de operare pe lot

A treia perioadă (începutul anilor 60 1980). Calculatoare bazate pe circuite integrate. Primul sistem de operare multitasking

A patra perioadă (din 1980 până în prezent). Calculatoare personale. Clasic, de rețea și sisteme distribuite

Concepte de bază, concepte OS

Apeluri de sistem

întreruperi

Situații excepționale

Fișiere

Procese, fire

Caracteristicile arhitecturale ale sistemului de operare

Miez monolitic

Sisteme stratificate

Mașini virtuale

Arhitectura microkernel

Sisteme mixte

Clasificarea OS

Implementarea multitasking-ului

Suport multi-utilizator

Multiprocesare

Sisteme în timp real

Concluzie

Anexa 1.

Câteva informații despre arhitectura computerului

Interacţiune dispozitiv periferic

  1. Cursul 1 Introducere în definirea sistemelor de operare, scopul și istoria dezvoltării.
  2. Ce este un sistem de operare
    1. Structura sistemului informatic

În ce constă orice sistem de calcul? În primul rând, din ceea ce în țările vorbitoare de limbă engleză este de obicei numit cuvântul hardware sau suport tehnic: CPU , memorie, monitor, dispozitive de disc etc., unite printr-o conexiune de coloană vertebrală numită magistrală.

În al doilea rând, un sistem de calcul este format din software. Tot software-ul este de obicei împărțit în două părți: aplicație și sistem. Software-ul de aplicație include de obicei o varietate de programe bancare și alte programe de afaceri, jocuri, procesoare de text etc. Software-ul de sistem se referă de obicei la programe care facilitează operarea și dezvoltarea programelor de aplicație. Trebuie spus că împărțirea în software de aplicație și de sistem este parțial arbitrară și depinde de cine face împărțirea. Asa de, utilizator obișnuit O persoană fără experiență în programare poate considera Microsoft Word ca fiind un program de sistem, dar din punctul de vedere al unui programator, este o aplicație. Compilatorul limbajului C pentru un programator obișnuit este un program de sistem, iar pentru un programator de sistem este un program de aplicație. În ciuda acestei margini neclare, această situație poate fi afișată ca o secvență de straturi (vezi Fig. 1.1), evidențiind separat cea mai comună parte a software-ului de sistem - sistemul de operare:

Orez. 1.1. Straturi de software sistem informatic

  1. Ce este OS

Majoritatea utilizatorilor au experiență de operaresisteme de operare, dar cu toate acestea le va fi greu să dea acestui concept o definiție exactă. Să aruncăm o privire rapidă la punctele de vedere principale.

  1. Sistem de operare ca o mașină virtuală

Când dezvoltați un sistem de operare abstracția este utilizată pe scară largă, care este o metodă importantă de simplificare și vă permite să vă concentrați asupra interacțiunii componentelor de nivel înalt ale sistemului, ignorând detaliile implementării lor. In acest sens OS reprezintă interfața dintre utilizator și computer.

Arhitectura majorității calculatoarelor la nivel de instrucțiuni ale mașinii este foarte incomod pentru utilizare de către programele de aplicație. De exemplu, lucrul cu un disc necesită cunoștințe structura interna controlerul său de componentă electronică pentru introducerea comenzilor pentru rotirea discului, căutarea și formatarea pistelor, sectoarele de citire și scriere etc.

Este clar că programatorul mediu nu este capabil să ia în considerare toate caracteristicile echipamentului (în terminologia modernă, să dezvolte drivere de dispozitiv), ci trebuie să aibă o simplă abstractizare la nivel înalt, să zicem, reprezentând spațiu informațional disc ca un set de fișiere. Fișierul poate fi deschis pentru citire sau scriere, folosit pentru a prelua sau reseta informații și apoi închis. Acest lucru este conceptual mai simplu decât să vă faceți griji cu privire la detaliile mișcării capetelor de disc sau organizarea funcționării unui motor. În mod similar, cu ajutorul abstracțiilor simple și clare, toate detaliile inutile ale organizației sunt ascunse de programatorîntrerupe , funcționarea temporizatorului, gestionarea memoriei etc. Mai mult, pe sistemele de calcul moderne puteți crea iluzia de dimensiune nelimitată memorie de operare si numere procesoare . Face toate asteasistem de operare. Prin urmare, sistem de operareapare utilizatoruluimașină virtuală, care este mai ușor de tratat decât direct cu hardware-ul computerului.

  1. Sistem de operare ca manager de resurse

sistem de operareconceput pentru a controla toate părțile unei arhitecturi computerizate extrem de complexe. Luați în considerare, de exemplu, ce s-ar întâmpla dacă mai multe programe care rulează pe același computer ar încerca să iasă la o imprimantă în același timp. Am ajunge la un amestec de rânduri și pagini produse de diferite programe.sistem de operareprevine acest tip de haos punând în tampon informațiile imprimabile pe disc și punându-le în coadă pentru imprimare. Pentru computerele multi-utilizator, necesitatea de a gestiona și proteja resursele este și mai evidentă. Prin urmare, sistem de operare, Cum manager de resurse, efectuează o distribuție ordonată și controlată procesoare , memorie și alte resurse între diferite programe.

  1. Sistemul de operare ca protector al utilizatorilor și al programelor

Dacă sistemul de calcul permite lucrand impreuna mai mulți utilizatori, atunci se pune problema organizării activităților lor în siguranță. Este necesar să se asigure siguranța informațiilor de pe disc, astfel încât nimeni să nu poată șterge sau deteriora fișierele altor persoane. Programele unui utilizator nu trebuie să aibă voie să interfereze în mod arbitrar cu funcționarea programelor altor utilizatori. Este necesar să opriți încercările de utilizare neautorizată a sistemului informatic. Toate aceste activități se desfășoarăsistem de operareca organizator al funcționării în siguranță a utilizatorilor și a programelor acestora.Din acest punct de vederesistem de operarepare a fi un sistem de securitate de stat, căruia îi sunt încredințate funcții de poliție și contrainformații.

  1. Sistem de operare ca un nucleu care rulează constant

În sfârșit, putem da următoarea definiție:sistem de operare – Acesta este un program care rulează constant pe computer și interacționează cu toată lumeaprograme de aplicație. S-ar părea că asta este absolut definiție corectă, dar, după cum vom vedea mai târziu, în multe modernesisteme de operareDoar o parte funcționează constant pe computersistem de operarecare se numește de obicei ea miez.

După cum putem vedea, există multe puncte de vedere asupra a ceea ce estesistem de operare. Este imposibil să-i oferim o definiție strictă adecvată. E mai ușor să spui că nu există nimicsistem de operare, de ce este nevoie și ce face? . Pentru a clarifica această problemă, luați în considerare istoria dezvoltării sistemelor de calcul.

  1. O scurtă istorie a evoluției sistemelor de calcul

Vom lua în considerare istoria dezvoltării computerului, și nusisteme de operaredeoarece hardware-ul și software-ul au evoluat împreună, influențându-se reciproc. Apariția noului capabilități tehnice a condus la o descoperire în crearea de programe convenabile, eficiente și sigure, iar ideile proaspete în domeniul software au stimulat căutarea de noi soluții tehnice. Aceste criterii – confort, eficiență și securitate – au jucat rolul factorilor de selecție naturală în evoluția sistemelor de calcul.

  1. Prima perioadă (1945-1955). Mașini cu lampă. Fără sisteme de operare

Vom începe studiul nostru despre dezvoltarea sistemelor informatice odată cu apariția sistemelor electronice de calcul (omițând istoria dispozitivelor mecanice și electromecanice).

Primii pași în dezvoltarea computerelor electronice au fost făcuți la sfârșitul celui de-al Doilea Război Mondial. La mijlocul anilor 1940, au fost create primele dispozitive de calcul cu tuburi și a apărut principiul unui program stocat în memoria unei mașini (John Von Neumann, iunie 1945). La acel moment, același grup de oameni a participat la proiectarea, operarea și programarea computerului. A fost mai mult o muncă de cercetare în domeniul tehnologiei computerelor, mai degrabă decât utilizarea regulată a computerelor ca instrument pentru rezolvarea oricăror probleme practice din alte domenii aplicate. Programarea s-a realizat exclusiv în limbajul mașinii. Despresisteme de operarenu a fost nicio îndoială, toate sarcinile de organizare a procesului de calcul au fost rezolvate manual de fiecare programator din panoul de control. Doar un utilizator ar putea fi la telecomandă. Programul a fost încărcat în memoria aparatului, în cel mai bun caz, dintr-un pachet de cărți perforate și, de obicei, folosind un panou de comutatoare.

Sistemul de calcul a efectuat o singură operație la un moment dat (input-output sau calcule efective). Depanarea programelor a fost efectuată din panoul de control prin studierea stării memoriei și a registrelor mașinii. La sfarsitul acestei perioade apare primul software de sistem: in 1951-1952. Au apărut prototipurile primelor compilatoare din limbaje simbolice (Fortran etc.), iar în 1954 Nat Rochester a dezvoltat un asamblator pentru IBM-701.

O parte semnificativă a timpului a fost petrecută pregătindu-se pentru lansarea programului, iar programele în sine au fost executate strict secvenţial. Acest mod de operare este numitprocesare secvenţialădate. În general, prima perioadă se caracterizează prin costul extrem de ridicat al sistemelor de calcul, numărul lor mic și eficiența redusă de utilizare.

  1. A doua perioadă (1955–începutul anilor '60). Calculatoare pe bază de tranzistori. Sisteme de operare pe lot

De la mijlocul anilor 50, a început următoarea perioadă de evoluție a tehnologiei informatice, asociată cu apariția unei noi baze tehnice - elementele semiconductoare. Aplicație tranzistoare în loc de electronice ars frecvent lămpile a dus la creșterea fiabilității computerului. Mașinile pot funcționa acum în mod continuu suficient de mult încât să poată fi alocate pentru a îndeplini sarcini practic importante. Consumul de energie electrică de către computere este redus și sistemele de răcire sunt îmbunătățite. Dimensiunile computerelor s-au micșorat. Costul de operare și întreținere a echipamentelor informatice a scăzut. A început utilizarea computerelor de către firmele comerciale. În același timp, există o dezvoltare rapidă a limbajelor algoritmice (LISP, COBOL, ALGOL-60, PL-1 etc.). Apar primele compilatoare reale, editori de linkuri, biblioteci de rutine matematice și utilitare. Procesul de programare este simplificat. Nu este nevoie să împovărăm aceiași oameni cu întregul proces de dezvoltare și utilizare a computerelor. În această perioadă personalul a fost împărțit în programatori și operatori, specialiști în operațiuni și dezvoltatori de computere.

Procesul de rulare a programelor în sine se schimbă. Acum utilizatorul aduce programul cu date de intrare sub forma unui pachet de cărți perforate și indică resursele necesare. Acest pachet se numește sarcină. Operatorul încarcă sarcina în memoria mașinii și o pornește pentru execuție. Datele rezultate sunt tipărite pe imprimantă, iar utilizatorul le primește înapoi după un timp (destul de lung).

Modificarea resurselor solicitate duce la suspendarea executării programului, ca urmare CPU adesea inactiv. Pentru a îmbunătăți eficiența utilizării computerului, locurile de muncă cu resurse similare încep să fie colectate împreună, creând un lot de locuri de muncă.

Apar primelesisteme de procesare în loturi, care pur și simplu automatizează lansarea unui program dintr-un pachet după altul și, prin urmare, măresc factorul de încărcare procesor La implementare sisteme de procesare în loturia fost dezvoltat un limbaj oficial de control al sarcinilor, cu ajutorul căruia programatorul a informat sistemul și operatorul ce lucrare dorea să efectueze pe computer.Sisteme de procesare în loturidevenit prototipul modernuluisisteme de operare, au fost primele programe de sistem concepute pentru a controla procesul de calcul.

  1. A treia perioadă (începutul anilor 60 - 1980). Calculatoare bazate pe circuite integrate. Primul sistem de operare multitasking

Următoarea perioadă importantă în dezvoltarea computerelor datează de la începutul anilor 60 și 1980. În acest moment, a avut loc o tranziție în baza tehnică de la elementele semiconductoare individuale de acest tip tranzistoare la circuite integrate. Tehnologia informatică devine din ce în ce mai fiabilă și mai ieftină. Complexitatea și numărul de probleme rezolvate de computere este în creștere. Productivitate crescuta procesoare

Îmbunătățirea eficienței utilizării timpului CPU viteza mica funcționarea dispozitivelor mecanice de intrare/ieșire (un cititor rapid de carduri perforate ar putea procesa 1200 de carduri perforate pe minut, imprimantele imprimau până la 600 de linii pe minut). În loc să citească direct un pachet de sarcini de pe carduri perforate în memorie, ei încep să folosească înregistrarea preliminară a acestuia, mai întâi pe bandă magnetică și apoi pe disc. Când este necesară introducerea datelor în timpul unei lucrări, acestea sunt citite de pe disc. În mod similar, informațiile de ieșire sunt mai întâi copiate în memoria tampon de sistem și scrise pe bandă sau disc și tipărite numai după ce lucrarea este finalizată. La început, operațiunile efective de I/O au fost efectuate off-line, adică folosind altele, mai simple, separat calculatoare în picioare. Ulterior, acestea încep să fie executate pe același computer care efectuează calculele, adică în modul on-line. Această tehnică se numește spooling (prescurtare de la Funcționare simultană a perifericelor on-line) sau pompare/pompare de date. Introducerea tehnologiei pompă-pompă însisteme de loturia făcut posibilă combinarea operațiunilor reale de intrare-ieșire ale unei sarcini cu executarea unei alte sarcini, dar a necesitat dezvoltarea unui dispozitivîntrerupe pentru a anunța procesorul despre finalizarea acestor operațiuni.

Benzile magnetice erau dispozitive acces secvenţial, adică informațiile au fost citite de la ei în ordinea în care au fost scrise. Apariția unui disc magnetic, pentru care nu este importantă ordinea în care sunt citite informațiile, adică un dispozitiv de acces direct, a dus la dezvoltarea în continuare a sistemelor de calcul. La procesarea unui lot de joburi pe bandă magnetică, ordinea în care au fost lansate joburile era determinată de ordinea în care au fost introduse. La procesarea unui lot de sarcini pe un disc magnetic, a devenit posibilă selectarea următoarei sarcini de efectuat.Sisteme de loturiîncepe să programezi sarcini: în funcție de disponibilitatea resurselor solicitate, de urgența calculelor etc. una sau alta sarcină este selectată pentru cont.

Creștere suplimentară a eficienței utilizării procesor a fost realizat prin multiprogramare. Ideea din spatele programării multiple este că, în timp ce un program efectuează o operație I/O, CPU nu stă inactiv, așa cum sa întâmplat în modul cu un singur program, ci execută un alt program. Când operațiunea I/O se termină, CPU revine la execuția primului program. Această idee amintește de comportamentul unui profesor și al elevilor în timpul unui examen. În timp ce un elev (program) se gândește la răspunsul la o întrebare (operație de intrare/ieșire), profesorul ( CPU ) ascultă răspunsul altui elev (calcule). Desigur, această situație necesită mai mulți studenți în sală. La fel, multiprogramarea necesită a avea mai multe programe în memorie în același timp. În acest caz, fiecare program este încărcat în propria sa secțiune de RAM, numită partiție, și nu ar trebui să afecteze execuția altui program.

Apariția multiprogramării a necesitat o adevărată revoluție în structura sistemului de calcul.Suportul hardware joacă un rol special aici.(multe inovații hardware au apărut în etapa anterioară de evoluție), ale căror caracteristici cele mai semnificative sunt enumerate mai jos:

  • Implementarea mecanismelor de protecție. Programele nu ar trebui să aibă acces independent la alocarea resurselor, ceea ce duce la apariția comenzilor privilegiate și neprivilegiate. Comenzile privilegiate, cum ar fi comenzile I/O, pot fi executate numaisistem de operare. Se spune că rulează în modul privilegiat. Transferul controlului de la programul de aplicație la OS însoţită de o schimbare controlată de regim. În plus, este protecția memoriei, permițând izolarea programelor utilizatorilor concurente unele de altele și OS din programele utilizatorului.
  • Prezența întreruperilor. Întreruperile externe notifică sistemul de operare despre ceea ce s-a întâmplat asincron eveniment, cum ar fi o operație I/O finalizată.întreruperi interne (azi se numescsituatii exceptionale) apar atunci când execuția programului a dus la o situație care necesită intervenție OS , cum ar fi împărțirea la zero sau încercarea de a încălca securitatea.
  • Dezvoltarea paralelismului în arhitectură . Accesul direct la memorie și organizarea canalelor I/O au făcut posibilă eliberarea centrală CPU din operațiunile de rutină.

Nu mai puțin important în organizații cu multiprogramare rol sistem de operare. Ea este responsabilă de următoarele operațiuni:

  • Organizarea interfeței dintre programul de aplicație și Utilizarea sistemului de operare apeluri de sistem .
  • Așezare în coadă de locuri de muncă în memorie și alocare procesor una dintre sarcinile solicitate planificarea utilizării procesor
  • Trecerea de la un job la altul necesită păstrarea conținutului registrelor și structurilor de date necesare pentru a finaliza jobul, cu alte cuvinte, contextul pentru a asigura că calculul continuă corect.
  • Deoarece memoria este o resursă limitată, sunt necesare strategii de gestionare a memoriei, adică este necesară eficientizarea proceselor de plasare, înlocuire și preluare a informațiilor din memorie.
  • Organizarea stocării informațiilor pe medii externe sub formă de fișiere și asigurarea accesului la fisier specific numai anumitor categorii de utilizatori.
  • Deoarece programele ar putea avea nevoie să efectueze schimburi de date autorizate, este necesar să le furnizeze mijloace de comunicare.
  • Pentru schimbul corect de date, trebuie să permiteți situatii conflictuale problemele care apar atunci când se lucrează cu diverse resurse și asigură coordonarea prin programe a acțiunilor acestora, de ex. furnizarea sistemului cu instrumente de sincronizare.

Sistemele de multiprogramare au făcut posibilă mai mult utilizare eficientă resurse de sistem(De exemplu, procesor , memorie, dispozitive periferice), dar au rămas mult timp lot . Utilizatorul nu putea interacționa direct cu sarcina și trebuia să prevadă toate situațiile posibile folosind carduri de control. Programele de depanare erau încă consumatoare de timp și necesitau examinarea tipăririlor de mai multe pagini ale conținutului memoriei și al registrelor sau utilizarea tipăririi de depanare.

Apariția afișajelor cu raze catodice și o regândire a utilizării tastaturilor a adus o soluție la această problemă. Extensia logică a sistemelor de multiprogramare a fost sisteme de partajare a timpului sau sisteme de partajare a timpului. Au procesor comută între sarcini nu numai în timpul operațiunilor I/O, ci și pur și simplu după ce a trecut un anumit timp. Aceste comutatoare apar atât de frecvent încât utilizatorii pot interacționa cu programele lor în timp ce rulează, adică interactiv. Ca rezultat, devine posibil ca mai mulți utilizatori să lucreze simultan pe un singur sistem computer. Pentru aceasta, fiecare utilizator trebuie să aibă cel puțin un program în memorie. Pentru a reduce restricțiile privind numărul de utilizatori care lucrează, a fost introdusă ideea de a nu rezida complet programul executabil în RAM. Partea principală a programului este localizată pe disc, iar fragmentul care trebuie executat în acest moment poate fi încărcat în RAM, iar cel inutil poate fi descărcat înapoi pe disc. Acest lucru este implementat folosind un mecanism de memorie virtuală. Principalul avantaj al unui astfel de mecanism este crearea iluziei de RAM nelimitată a computerului.

ÎN sisteme de separare timp utilizatorul a putut să depaneze eficient programul în modul interactiv și să scrie informații pe disc fără a utiliza carduri perforate, ci direct de la tastatură. Apariția fișierelor on-line a condus la necesitatea dezvoltării unor sisteme de fișiere avansate.

În paralel cu evoluția internă a sistemelor de calcul s-a produs și evoluția externă a acestora. Înainte de începutul acestei perioade, sistemele de calcul erau, de regulă, incompatibile. Fiecare avea a lui sistem de operare, propriul sistem de comandă etc. Drept urmare, un program care a rulat cu succes pe un tip de mașină a trebuit să fie complet rescris și re-depanat pentru a rula pe un alt tip de computer. La începutul celei de-a treia perioade a apărut ideea de a crea familii de mașini compatibile cu software-ul care funcționează sub același control.sistem de operare. Prima familie de computere compatibile cu software construităcircuite integrate, a devenit seria de mașini IBM/360. Dezvoltată la începutul anilor 60, această familie a fost semnificativ superioară mașinilor din a doua generație în ceea ce privește prețul/performanța. A fost urmată de linia de calculatoare PDP, incompatibilă cu linia IBM, iar modelul de top din această linie a fost PDP-11.

Puterea „o familie” a fost și slăbiciunea ei. Gamă largă de posibilități acest concept (prezența tuturor modelelor: de la mini-calculatoare la mașini gigantice; o abundență de diverse periferice; medii diferite; diverși utilizatori) a generat o complexă şi greoaiesistem de operare. Milioane de linii de limbaj Asamblare, scrise de mii de programatori, conțineau multe erori, care au provocat un flux constant de publicații despre acestea și încercări de a le corecta. Doar insistem de operareOS/360 conținea peste 1000 de erori cunoscute. Cu toate acestea, ideea de standardizaresisteme de operarea fost introdus pe scară largă în mintea utilizatorilor și ulterior a primit o dezvoltare activă.

  1. A patra perioadă (din 1980 până în prezent). Calculatoare personale. Sisteme clasice, de rețea și distribuite

Următoarea perioadă în evoluția sistemelor de calcul este asociată cu apariția marilorcircuite integrate(BIS). Acești ani au înregistrat o creștere bruscă a gradului de integrare și o scădere a costului microcircuitelor. Un computer care nu diferă ca arhitectură de PDP-11, în ceea ce privește prețul și ușurința de utilizare, a devenit accesibil unui individ, și nu unui departament al unei întreprinderi sau universități. Era computerelor personale a sosit. Inițial, computerele personale erau destinate să fie utilizate de către un utilizator într-un mod cu un singur program, ceea ce a dus la degradarea arhitecturii acestor computere și a acestora.sisteme de operare(în special, nu este nevoie să protejați fișierele și memoria, să programați sarcini etc.).

Calculatoarele au început să fie folosite nu numai de specialiști, ceea ce a necesitat dezvoltarea unui software „prietenos”.

Cu toate acestea, complexitatea și diversitatea crescândă a problemelor rezolvate în calculatoare personale, nevoia de a îmbunătăți fiabilitatea muncii lor a dus la o revigorareaproape toate trăsăturile caracteristice arhitecturii sistemelor de calcul mari.

La mijlocul anilor '80, rețelele de calculatoare, inclusiv computerele personale, rulau sub controlul rețea sau sisteme de operare distribuite.

ÎN sisteme de operare în rețeaUtilizatorii pot accesa resursele unui alt computer din rețea doar ei trebuie să fie conștienți de disponibilitatea lor și să poată face acest lucru. Fiecare mașină din rețea rulează sub propriul localsistem de operare, diferit desistem de operare calculator de sine stătător disponibilitatea instrumentelor suplimentare (suport software pentru dispozitivele de interfață de rețea și acces la resurse de la distanță), dar aceste completări nu schimbă structurasistem de operare.

Sistem distribuit, dimpotriva, pare normal sistem autonom. Utilizatorul nu știe și nu ar trebui să știe unde sunt stocate fișierele sale pe o mașină locală sau la distanță și unde sunt executate programele sale. Poate că nici măcar nu știe dacă computerul său este conectat la rețea. Structura internasistem de operare distribuitprezintă diferenţe semnificative faţă de sistemele autonome.

Pe viitor, autonomOSle vom numi clasicesisteme de operare.

După ce am analizat etapele dezvoltării sistemelor de calcul, putem identifica șase funcții principale care au fost îndeplinite deOSîn proces de evoluție:

  • Programați locuri de muncă și utilizare procesor
  • Furnizarea programelor cu mijloace de comunicare și sincronizare.
  • Gestionarea memoriei.
  • Gestionarea sistemului de fișiere.
  • management I/O.
  • Securitate

Fiecare dintre funcțiile de mai sus este de obicei implementată ca subsistem, care este o componentă structurală OS. În fiecare sistem de operareaceste funcții, desigur, au fost implementate în felul lor, în diferite grade. Ele nu au fost proiectate inițial ca componentesisteme de operare, dar a apărut în procesul de dezvoltare, pe măsură ce sistemele de calcul au devenit mai convenabile, mai eficiente și mai sigure. Evoluția sistemelor de calcul create de om a urmat această cale, dar nimeni nu a dovedit încă că aceasta este singura cale posibilă pentru dezvoltarea lor.OSexistă pentru că, în prezent, existența lor este o modalitate rezonabilă de a utiliza sistemele de calcul. Luarea în considerare a principiilor generale și a algoritmilor pentru implementarea funcțiilor acestora constituie conținutul majorității cursului nostru, în care subsistemele enumerate vor fi descrise în mod consecvent.

  1. Concepte de bază, concepte OS

În procesul de evoluție au apărutmai multe concepte importante, care au devenit parte integrantă a teoriei și practicii OS . Acoperit în această secțiune concepte vor fi întâlnite și explicate pe parcursul cursului. Mai jos este o scurtă descriere a acestora.

  1. Apeluri de sistem

La orice sistem de operareacceptă un mecanism care permite programelor utilizatorului să acceseze serviciile kernelului OS. ÎN sisteme de operarecel mai faimos computer sovietic BESM-6, mijloacele corespunzătoare de „comunicare” cu nucleul au fost numite extracoduri, însisteme de operareIBM le-a numit macrocomenzi de sistem etc. ÎN OS Unix astfel de instrumente sunt numiteapeluri de sistem.

Apeluri de sistem(apeluri de sistem ) aceasta este interfața dintresistem de operareși programul utilizatorului. Ei creează, șterg și folosesc diverse obiecte, principalele fiind procesele și fișierele.

Programul utilizator solicită un serviciu de lasistem de operare prin efectuarea unui apel de sistem. Există biblioteci de proceduri care încarcă registrele mașinii cu anumiți parametri și le realizeazăîntrerupere CPU , după care controlul este transferat responsabilului cu acesta apel , incluse în nucleusistem de operare. Scopul unor astfel de biblioteci este de a face apel de sistem similar cu normalul apel de subrutină.

Principala diferență este că atunci cândapel de sistemSarcina intră în modul privilegiat sau modul kernel. De aceeaapeluri de sistemnumit uneori șiîntreruperi software, spre deosebire de întreruperile hardware care mai des sunt numite simpluîntreruperi

Codul nucleului rulează în acest modsistem de operare, și se execută în spațiul de adrese și încontextul sarcinii care a determinat-o. Deci miezulsistem de operareAre acces completîn memoria programului utilizatorului și cândapel de sistemeste suficient să treci adresele uneia sau mai multor zone de memorie cu parametri apel și adresele uneia sau mai multor zone de memorie pentru rezultate apel

In majoritate Apelul sistemului de operarerealizat de echipa de softwareîntrerupe (INT). Întreruperea software-ului acesta este un eveniment sincron care poate fi repetat la executarea aceluiași cod de program.

  1. întreruperi

Întreruperea hardware ) acesta este un eveniment generat extern (față de procesor ) dispozitiv. Prin hardwareîntrerupe echipamentul fie informează centrala CPU indică faptul că a avut loc un eveniment care necesită un răspuns imediat (de exemplu, utilizatorul a apăsat o tastă) sau raportează finalizarea unei operațiuni I/O asincrone (de exemplu, datele s-au terminat de citit de pe disc în memoria principală). Tip important de hardwareîntrerupe întreruperi temporizatoare care sunt generate periodic după o perioadă fixă ​​de timp.întreruperi sunt folosite cronometresistem de operarela planificarea proceselor. Fiecare tip de hardwareîntrerupe Are propriul număr, care identifică în mod unic sursaîntrerupe Întreruperea hardware acesta este un eveniment asincron, adică are loc indiferent de codul care este executat procesor În acest moment. Procesare hardwareîntrerupe nu ar trebui să ia în considerare ce proces este curent.

  1. Situații excepționale

Situație excepțională(excepție) un eveniment care apare ca urmare a unei încercări a unui program de a executa o comandă care, din anumite motive, nu poate fi finalizată până la finalizare. Exemple de astfel de comenzi includ încercarea de a accesa o resursă fără privilegii suficiente sau accesarea unei pagini de memorie lipsă.

Situații excepționale, precum și apeluri de sistem, sunt evenimente sincrone, apărute în contextul sarcinii curente.Situații excepționalepot fi împărțite în corectabile și incorigibile. Cele corectabile includ:situatii exceptionale, ca lipsa informațiilor necesare în RAM. După eliminarea cauzei, este corectabilăsituatie exceptionalaprogramul poate continua să ruleze. Apariția în timpul lucruluisistem de operare corectabil situatii exceptionaleconsiderat normal. Incorigibilsituatii exceptionalecel mai adesea apar ca urmare a erorilor din programe (de exemplu, împărțirea la zero). De obicei, în astfel de cazurisistem de operarereacţionează prin terminarea programului care l-a numitsituatie exceptionala.

  1. Fișiere

Fișierele sunt destinate stocării informațiilor pe medii externe, adică se acceptă ca informațiile înregistrate, de exemplu, pe un disc, să fie localizate în interiorul fișierului. De obicei, un fișier este înțeles ca o porțiune numită de spațiu pe un mediu de stocare.

sarcina principală Sistemul de fișiere (Sistemul de fișiere ) ascunde caracteristicile I/O și oferă programatorului un model abstract simplu de fișiere independente de dispozitiv.

Există, de asemenea, o categorie extinsă pentru citirea, crearea, ștergerea, scrierea, deschiderea și închiderea fișierelorapeluri de sistem(crearea, ștergerea, deschiderea, închiderea, citirea etc.). Utilizatorii sunt familiarizați cu conceptele de organizare a sistemului de fișiere, cum ar fi directorul, directorul curent, directorul rădăcină și calea.Pentru a manipula aceste obiecte însistem de operare disponibil apeluri de sistem.

  1. Procese, fire

Conceptul de proces în OS una dintre cele maifundamental. Legate de ele sunt conceptele de fire sau procese ușoare.

  1. Caracteristicile arhitecturale ale sistemului de operare

Până acum s-a spus că eu fac t OS. Este necesar să ne imaginăm cum fac acest lucru și cum sunt din interior, ce abordări există pentru construcția lor.

  1. Miez monolitic

De fapt, sistem de operareacest program regulat, deci logic ar fi să-l organizăm în același mod în care sunt organizate majoritatea programelor, adică compuse din proceduri și funcții. În acest caz componentelesistem de operarenu sunt module independente, A componente unu program mare. Această structurăsistem de operare numit miez monolitic(miez monolitic). Miez monolitic este un set de proceduri, fiecare dintre acestea putând apela fiecare. Toate procedurile rulează în modul privilegiat.

Astfel, un miez monolitic aceasta este o astfel de schemăsistem de operare, în care toate componentele sale sunt componente ale unui program, utilizați structuri generale date și interacționează între ele apelând direct proceduri. Pentru monolitic sistem de operaremiezul coincide cu întregul sistem.

In multe sisteme de operare Cu miez monolitic asamblarea nucleului, adică compilarea acestuia , se realizează separat pentru fiecare computer pe care este instalatsistem de operare. În acest caz, puteți selecta o listă de protocoale hardware și software, suport pentru care va fi inclus în kernel. Deoarece nucleul este un singur program, recompilarea este singura modalitate de a adăuga noi componente la el sau de a le elimina pe cele neutilizate. Trebuie remarcat faptul că prezența componentelor inutile în miez este extrem de nedorită, deoarece ca miezul întotdeauna complet localizat în RAM. În plus, eliminarea componentelor inutile îmbunătățește fiabilitateasistem de operareîn general.

Miez monolitic – cea mai veche cale organizatiisisteme de operare. Exemplu de sisteme cumiez monoliticeste majoritatea sistemelor Unix.

Chiar și în sistemele monolitice, se poate discerne o anumită structură. Așa cum într-un bloc de beton se pot discerne incluziuni de piatră zdrobită, la fel și în miez monolitic proceduri de service intercalate corespunzătoareapeluri de sistem. Procedurile de service sunt executate în modul privilegiat, în timp ce programele utilizator sunt executate în modul non-privilegiat. Pentru a trece de la un nivel de privilegii la altul, uneori se poate folosi un program utilitar principal pentru a determina care dintre ele apel de sistem a fost făcut, corectitudinea datelor de intrare pentru aceasta apel și transferarea controlului către procedura de service corespunzătoare cu o tranziție la modul de operare privilegiat. Uneori există și un set de utilitare software care ajută la efectuarea procedurilor de service.

  1. Sisteme stratificate

Continuând structurarea, este posibil să spargeți întregul sistem de calcul într-un număr de niveluri mai mici cu bun anumite conexiuniîntre ele, astfel încât obiectele de nivel N pot apela doar obiecte de nivel N-1. Cel mai scăzut nivel în astfel de sisteme este de obicei hardware, nivel superior interfața cu utilizatorul. Cu cât nivelul este mai scăzut, cu atât mai multe comenzi și acțiuni privilegiate poate efectua un modul situat la acest nivel. Această abordare a fost aplicată pentru prima dată la crearea sistemului THE (Technishe Hogeschool Eindhoven) de către Dijkstra și studenții săi în 1968. Acest sistem avea următoarele niveluri:

Orez. 1.2. Sistemul de straturi

Sistemele stratificate sunt bine implementate. Când utilizați operațiuni de nivel inferior, nu trebuie să știți cum sunt implementate, trebuie doar să înțelegeți ce fac. Sistemele stratificate sunt bine testate. Depanarea începe de la stratul inferior și se realizează strat cu strat. Când apare o eroare, putem fi siguri că se află în stratul testat. Sistemele stratificate sunt ușor modificate. Dacă este necesar, puteți înlocui doar un strat fără a atinge celelalte. Dar sistemele stratificate sunt greu de dezvoltat: este dificil să se determine corect ordinea straturilor și ce aparține cărui strat. Sistemele stratificate sunt mai puțin eficiente decât cele monolitice. Deci, de exemplu, pentru a efectua operațiuni I/O, programul utilizatorului va trebui să treacă succesiv prin toate straturile de sus în jos.

  1. Mașini virtuale

La începutul prelegerii am vorbit despre a privisistem de operare Cum mașină virtualăcând utilizatorul nu are nevoie să cunoască detaliile structurii interne a computerului. Functioneaza cu pile, nu cu capete magnetice si motor; funcționează cu memorie RAM virtuală uriașă, mai degrabă decât cu memorie RAM reală limitată; nu-i pasă prea mult dacă este singurul utilizator de pe mașină sau nu. Să luăm în considerare o abordare puțin diferită. Lăsa sistem de operare unelte mașină virtualăpentru fiecare utilizator, dar fără a-i face viața mai ușoară, ci, dimpotrivă, complicând-o. Fiecare este așamașină virtualăI se pare utilizatorului ca o copie a întregului hardware din sistemul informatic, inclusiv CPU , comenzi privilegiate și neprivilegiate, dispozitive de intrare/ieșire,întrerupe etc. Și el rămâne singur cu acest fier de călcat. Când încercați să accesați un astfel de hardware virtual la nivel de comandă privilegiat, ceea ce se întâmplă de fapt este apel de sistem real sistem de operare, care efectuează toate acțiunile necesare. Această abordare permite fiecărui utilizator să-și încarce propriilesistem de operare pe mașină virtualăși fă cu ea orice dorește inima ta

Orez. 1.3. Opțiune mașină virtuală

Primul sistem real Acest tip de sistem a fost CP/CMS sau VM/370, așa cum se numește acum, pentru familia de mașini IBM/370.

Dezavantajul unui astfel desisteme de operareeste o scădere a eficiențeimașini virtualecomparativ cu un computer real și tind să fie foarte voluminoase. Avantajul constă în utilizarea pe un sistem computerizat a programelor scrise pentru diferitesisteme de operare.

  1. Arhitectura microkernel

Tendința actuală în dezvoltaresisteme de operareconstă în transferul unei părți semnificative a codului de sistem la nivelul utilizatorului și, simultan, în minimizarea nucleului.Vorbim despre o abordare a construirii unui nucleu numitarhitectura microkernel(arhitectura microkernel) sistem de operare, când majoritatea componentelor sale sunt programe independente. În acest caz, interacțiunea dintre ele este asigurată de un modul special de kernel numit microkernel . Microkernel-ul funcționează în modul privilegiat și asigură interacțiunea între programe și programarea utilizării procesor , prelucrare primarăîntrerupe , operațiuni I/O și controale de bază memorie.

Orez. 1.4. Arhitectura sistemului de operare Microkernel

Componentele rămase ale sistemului comunică între ele prin transmiterea mesajelor prin microkernel.

Avantajul principalarhitectura microkernelgrad ridicat de modularitate de bazăsistem de operare. Acest lucru face mult mai ușor să adăugați componente noi la acesta. În microkernelsistem de operareputeți, fără a întrerupe funcționarea acestuia, să încărcați și să descărcați noi drivere, sisteme de fișiere etc. Procesul de depanare a componentelor nucleului este mult simplificat, deoarece o nouă versiune a driverului poate fi încărcată fără a reporni întregulsistem de operare. Componentele kerneluluisistem de operarenu sunt fundamental diferite de programele utilizatorului, așa că puteți folosi instrumente obișnuite pentru a le depana.Arhitectura microkernelcrește fiabilitatea sistemului deoarece o defecțiune la nivel de program neprivilegiat este mai puțin periculoasă decât o defecțiune la nivelul modului kernel.

În același timp arhitectura sistemului de operare microkernelintroduce o suprasarcină suplimentară asociată cu transmiterea mesajelor, care are un impact semnificativ asupra performanței. Pentru microkernelsistem de operarenu era mai prejos ca vitezăsisteme de operare pe bază miez monolitic, trebuie să proiectați foarte atent împărțirea sistemului în componente, încercând să minimizați interacțiunea dintre ele. Astfel, principala dificultate în crearea microkernel-urilorsisteme de operarenecesitatea unui design foarte atent.

  1. Sisteme mixte

Toate abordările considerate ale construcțieisisteme de operareau avantajele și dezavantajele lor. În majoritatea cazurilor modernOSutilizare diverse combinatii aceste abordări. Deci, de exemplu, nucleulsistem de operareLinux este un sistem monolitic cu elementearhitectura microkernel. La compilarea nucleului, puteți activa încărcarea și descărcarea dinamică a multor componente ale nucleului, numite module. Când un modul este încărcat, codul său este încărcat la nivel de sistem și legat de restul nucleului. Orice funcții exportate de kernel pot fi utilizate în interiorul unui modul.

Un alt exemplu de abordare mixtă ar fi capacitatea de lansaresistem de operare Cu miez monoliticcontrolat de un microkernel. Așa sunt proiectate 4.4BSD și MkLinux, bazate pe microkernel-ul Mach. Microkernel-ul oferă gestionarea memoriei virtuale și drivere de nivel scăzut. Toate celelalte funcții, inclusiv interacțiunea cu programele aplicației, sunt efectuatemiez monolitic. Această abordare format ca urmare a încercărilor de a profita dearhitectura microkernel, păstrând codul cât mai bine depanat posibilmiez monolitic.

Cel mai apropiat elementearhitectura microkernelși elemente miez monoliticîmpletite în nucleul Windows NT. Deși Windows NT este adesea numit microkernelsistem de operare, acest lucru nu este în întregime adevărat. Microkernel-ul NT este prea mare (mai mult de 1 MB) pentru a purta prefixul „micro”. Componente Kernel-urile Windows NT sunt localizate în memoria preemptibilă și interacționează între ele prin transmiterea de mesaje, așa cum era de așteptat în microkernelsisteme de operare. În același timp, toate componentele kernelului funcționează în același spațiu de adrese și utilizează în mod activ structuri de date comune, ceea ce este tipicsisteme de operare Cu miez monolitic. Potrivit experților Microsoft, motivul este simplu: un design pur microkernel este neprofitabil din punct de vedere comercial, deoarece este ineficient.

Astfel, Windows NT poate fi numit pe bună dreptate hibridsistem de operare

  1. Clasificarea OS

Există mai multe scheme de clasificaresisteme de operare. Mai jos este o clasificare bazată pe unele caracteristici din punctul de vedere al utilizatorului.

  1. Implementarea multitasking-ului

După numărul de sarcini efectuate simultanOSpoate fi împărțit în două clase:

  • multitasking (Unix, OS/2, Windows);
  • cu o singură sarcină (de exemplu, MS-DOS).

Sistem de operare multitasking, rezolvând problemele de alocare a resurselor și concurență, implementează pe deplin modul multi-program în conformitate cu cerințele secțiunii „Concepte de bază, concepte OS”.

Multitasking-ul, care întruchipează ideea de partajare a timpului, se numește preemptiv. Fiecărui program i se alocă un cuantum procesor timp după care controlul este transferat către alt program. Ei spun că primul program va fi înlocuit. Majoritatea programelor comerciale de utilizator funcționează în modul preventiv. OS.

Pe unele sisteme de operare (Windows 3.11, de exemplu) un program de utilizator poate monopoliza CPU , adică lucrează într-un mod fără deplasare. De regulă, în majoritatea sistemelor codul în sine nu este supus preempționării. OS . De asemenea, programele critice, în special sarcinile în timp real, nu sunt anticipate. Acest lucru este discutat mai detaliat în prelegerea despre planificarea muncii procesor

Pe baza exemplelor date, se poate aprecia natura aproximativă a clasificării. Deci, în OS MS-DOS poate organiza lansarea unei sarcini copil și prezența a două sau mai multe sarcini în memorie în același timp. Cu toate acestea, aceasta OS considerată în mod tradițional a fi o singură sarcină, în principal din cauza lipsei mecanismelor de apărare și a capacităților de comunicare.

  1. Suport multi-utilizator

După numărul de utilizatori concurenți OS poate fi împărțit în:

  • utilizator unic (MS-DOS, Windows 3.x);
  • multi utilizator(Windows NT, Unix).

Cea mai semnificativă diferență între acestea OS se află în prezenţa luisisteme multi-utilizatormecanisme de protejare a datelor personale ale fiecărui utilizator.

  1. Multiprocesare

Până de curând, sistemele de calcul aveau o centrală procesor . Ca urmare a cererii de creștere a productivității,sisteme multiprocesor, format din două sau mai multe procesoare scop general, efectuarea executării în paralel a comenzilor. Suportul pentru multiprocesare este o caracteristică importantă OS și duce la complicarea tuturor algoritmilor de management al resurselor. Multiprocesarea este implementată în astfel de OS , cum ar fi Linux, Solaris, Windows NT și multe altele.

Sistem de operare multiprocesorîmpărțite în simetrice și asimetrice. În simetric OS pe fiecare procesor aceleași funcții de bază, iar sarcina poate fi executată pe oricare procesor , adică procesarea este complet descentralizată. În același timp, fiecare dintre procesoare toată memoria este disponibilă.

În procesoarele OS asimetrice inegal. Există de obicei un principal CPU (stăpân) și subordonați (sclav), volumul de muncă și natura cărora este determinată de stăpân procesor .

  1. Sisteme în timp real

În grad sistem de operare multitasking, împreună cu sisteme de pacheteȘi sisteme de partajare a timpului, sunt de asemenea inclusesisteme în timp real, care nu au fost menționate până acum.

Sunt folosite pentru a controla diverse obiecte tehnice sau procese tehnologice. Astfel de sisteme se caracterizează printr-un timp de răspuns maxim admis la un eveniment extern, timp în care programul care controlează obiectul trebuie să fie executat. Sistemul trebuie să proceseze datele primite mai repede decât poate ajunge și din mai multe surse simultan.

Astfel de restricții stricte afectează arhitecturasisteme în timp real, de exemplu, pot lipsi memorie virtuala, al cărui suport provoacă întârzieri imprevizibile în execuția programului. (Consultați și secțiunile legate de programarea proceselor și implementarea memoriei virtuale.)

Clasificarea dată OS nu este exhaustivă. Mai detaliat, caracteristicile utilizării moderne OS sunt revizuite în Olifer, 2001].

Mediul de operare este un set de programe de sistem, al căror scop principal este de a oferi utilizatorului o interfață cu utilizatorul ( UI ) și interfața software ( API ), semnificativ superioare în capacitățile lor față de interfețele similare furnizate de sistemul de operare. Trăsătură distinctivă Mediul de operare este că este construit pe deasupra sistemului de operare existent, adică funcționarea sa este imposibilă fără acest sistem de operare.

Operating shell este un set de programe de sistem care oferă o interfață ușor de utilizat ( UI ) cu un sistem de operare care este superior într-un fel sau altul (de obicei la nivelul de non-proceduralitate și proximitate față de limba activității profesionale a utilizatorului) instrumente similare de interfață cu utilizatorul furnizate de sistemul de operare însuși.

  1. Concluzie

Ne-am uitat la diferite puncte de vedere asupra a ceea ce estesistem de operare; a studiat istoria dezvoltăriisisteme de operare; a aflat ce funcții îndeplinesc de obiceiOS; în cele din urmă și-am dat seama ce abordări ale clădirii existăsisteme de operare. Vom dedica următoarea prelegere clarificării conceptului de „proces” și problemelor de planificare a proceselor.

  1. Anexa 1.
    1. Câteva informații despre arhitectura computerului

Principalele componente hardware ale unui calculator sunt: ​​memoria principală, centrală CPU și dispozitive periferice. Pentru a face schimb de date între ele, aceste componente sunt conectate printr-un grup de fire numite coloană vertebrală (vezi Fig. Fig.1.5).

Orez. 1.5. Unele componente ale calculatorului

Memoria principală este folosită pentru a stoca programe și date în formă binară și este organizată ca o matrice ordonată de celule, fiecare cu o adresă digitală unică. De obicei, dimensiunea celulei este de un octet. Operații tipice pe memoria principală: citirea și scrierea conținutului unei celule cu o anumită adresă.

Performanţă diverse operatii datele sunt gestionate de o parte izolată a computerului numită centrală procesor (CPU). CPU are, de asemenea, locații de stocare numite registre. Acestea sunt împărțite în registre de uz general și registre de specialitate. În calculatoarele moderne, capacitatea registrului este de obicei de 48 de octeți. Registrele de uz general sunt folosite pentru a stoca temporar date și rezultatele operațiunilor. Pentru a procesa informații, datele sunt de obicei transferate din celulele de memorie în registre de uz general, iar operația este efectuată de o centrală. procesor și transferarea rezultatelor operației în memoria principală.

Registrele specializate sunt folosite pentru a controla funcționarea procesor . Cele mai importante sunt: ​​contorul de programe, registrul de instrucțiuni și registrul care conține informații despre starea programului.

Programele sunt stocate ca o secvență de instrucțiuni ale mașinii care trebuie executate de o centrală CPU . Fiecare comandă constă dintr-un câmp de operație și câmpuri de operanzi, adică datele pe care se efectuează operația. Întregul set de instrucțiuni ale mașinii se numește limbaj mașină.

Programul se execută după cum urmează. Instrucțiunea mașinii indicată de contorul de programe este citită din memorie și copiată în registrul de instrucțiuni. Aici este decodat și apoi executat. După ce comanda este executată, contorul programului indică următoarea comandă. Aceste acțiuni, numite ciclu de mașină, sunt apoi repetate.

  1. Interacțiunea cu dispozitivele periferice

Dispozitivele periferice sunt proiectate pentru a introduce și ieși informații. Fiecare dispozitiv include de obicei un computer specializat numit controler sau adaptor. Când controlerul este introdus în conector, pornit placa de baza, se conectează la magistrală și primește un număr unic (adresă). Controlerul monitorizează apoi semnalele de pe magistrală și răspunde la semnalele care îi sunt adresate.

Orice operație I/O implică un dialog între CPU și controlerul dispozitivului. Când procesor Când o comandă legată de I/O este întâlnită ca parte a unui program, aceasta o execută trimițând semnale către controlerul dispozitivului. Acesta este așa-numitul I/O programabil.

La rândul său, orice modificare a dispozitivelor externe are ca rezultat transmiterea semnalului de la dispozitiv la CPU. Din punctul de vedere al CPU, acesta este un eveniment asincron și necesită răspunsul acestuia. Pentru a detecta un astfel de eveniment, între ciclurile mașinii CPU solicită un registru special, care conține informații despre tipul de dispozitiv care a generat semnalul. Dacă semnalul este prezent, atunci CPU efectuează un anumit a acestui dispozitiv un program a cărui sarcină este să reacționeze la acest eveniment în mod corespunzător (de exemplu, să introducă un caracter introdus de la tastatură într-un buffer special). Un astfel de program se numește program de procesareîntrerupe, iar evenimentul în sine este o întrerupere , deoarece perturbă munca planificată procesor . După finalizarea procesăriiprocesorul se întreruperevine la execuția programului. Aceste acțiuni computerizate sunt numite input/output usingîntrerupe

Calculatoarele moderne au și capacitatea de a comunica direct între controler și memoria principală, ocolind CPU-ul, așa-numitul mecanism de acces direct la memorie.

Întrebări

  1. Scopul sistemului de operare în calculatoare;
  2. O scurtă istorie a dezvoltării sistemelor de calcul și a sistemelor de operare;
  3. Definiții ale teoriei și practicii OS: apeluri de sistem, întreruperi, excepții, fișiere;
  4. Clasificarea OS

Alte lucrări similare care te-ar putea interesa.vshm>

13757. Crearea unui sistem de rețea pentru testarea suportului electronic al cursurilor Sisteme de operare (folosind exemplul instrumentului Joomla) 1,83 MB
Programul de compilare a testelor vă va permite să lucrați cu întrebări în formă electronică și să utilizați toate tipurile informatii digitale pentru a afișa conținutul întrebării. Scopul cursului este de a crea model modern serviciu web pentru testarea cunoștințelor folosind instrumente de dezvoltare web și implementare software pentru o muncă eficientă sistem de testare protecția împotriva copierii informațiilor și a înșelăciunii în timpul controlului cunoștințelor etc. Ultimele două înseamnă crearea condițiilor egale pentru toate controlul cunoștințelor de trecere, imposibilitatea trișării și...
6179. SISTEME DE OPERARE 13,01 KB
Pentru a lua în considerare funcțiile sistemului de operare, oamenii pot fi împărțiți în două grupuri: utilizatori și programatori, aici conceptul de utilizator este mai limitat decât înțelegerea unui utilizator ca orice persoană care comunică cu un computer. Un programator dintr-un sistem de operare necesită un set de instrumente care să-l ajute în dezvoltarea și depanarea produsului final al programelor. Linia de comandă este linia de ecran care începe cu promptul sistemului de operare.
9146. Introducere în sistemele de operare 11,94 KB
Sistem de operare. Definiție și scop. Funcțiile sistemelor de operare. Calitățile de bază ale sistemului de operare. Generații de sisteme de operare. Scurtă recenzie OS modern. Clasificarea sistemelor de operare în funcție de caracteristicile algoritmilor de gestionare a resurselor, caracteristicile platformelor hardware, caracteristicile domeniilor de utilizare.
10804. Leziuni alergice ale mucoasei bucale la copii 47,16 KB
Caracteristicile motivaționale ale temei lecției: ca urmare lectie practica stagiarii trebuie să dobândească următoarele abilități practice și teoretice: să învețe cele de bază și metode suplimentare studii ale copiilor cu leziuni alergice ale mucoasei bucale; pe baza datelor obținute și a anamnezei, să poată face un diagnostic preliminar; elaborează un plan de tratament ținând cont de vârsta copilului; cunoașteți indicațiile și contraindicațiile pentru utilizarea medicamentelor pentru această patologie. Se pare că asta se datorează poluării...
2622. Ecologia microorganismelor, mediile lor ecologice. Efectul factorilor de mediu fizici și chimici asupra microorganismelor 41,12 KB
Acțiunea factorilor fizici și chimici mediu inconjurator asupra microorganismelor Influenţa factorilor fizici asupra microorganismelor. Distribuția microorganismelor în natură În natură, microorganismele locuiesc aproape în orice mediu, sol, aer, apă și sunt distribuite mult mai larg decât alte ființe vii.
8621. Limbaje de programare. Sisteme de programare. Medii de proiectare vizuală 21,13 KB
Bsic este un limbaj care are atât compilatori, cât și interpreți, se află pe primul loc în lume ca popularitate. Această limbă ocupă locul al doilea ca popularitate după Bsic. Următoarele medii sunt în prezent cele mai populare programare vizuală pentru limbi...
16438. Analiza mediului de operare 39,84 KB
Toți acești indicatori sunt numiți indicatori privați de performanță unidimensionali. Tehnologii mai obiective pentru evaluarea eficacității sistemelor complexe au apărut abia în a doua jumătate a secolului al XX-lea. Utilizat în prezent pe scară largă în întreaga lume ca instrument de analiză a eficacității sistemelor socio-economice complexe, a marilor companii petroliere, bănci, firme de producție, locuințe și servicii comunale, universități, spitale și alte instituții comerciale și non-profit. În același timp, Farrell a identificat următoarele tipuri...
342. Medii de programare 14,75 KB
Mediile de programare a instrumentelor conțin, în primul rând, un editor de text care vă permite să construiți programe într-un anumit limbaj de programare instrumente care vă permit să compilați sau să interpretați programe în acest limbaj, precum și să testați și să depanați programele rezultate; Se disting următoarele clase de instrumente de programare, vezi: Instrumentele de programare de uz general conțin un set instrumente software sprijinirea dezvoltării de programe privind limbi diferite programare de exemplu...
561. Calitatea habitatului 5,35 KB
Calitatea habitatului Calitatea habitatului este gradul în care parametrii de mediu satisfac nevoile oamenilor și ale altor organisme vii. Cerințele lor pentru calitatea mediului de viață sunt destul de conservatoare, astfel încât calitatea tehnosferei nu ar trebui să difere semnificativ de mediul natural. Ca urmare a încărcărilor antropice semnificative, în majoritatea orașelor se produce degradarea vegetației, ceea ce înrăutățește starea mediului urban. Poluarea mediului cu substanțe nocive reduce constant calitatea alimentelor și a apei consumate...
522. Percepția mediului de viață. Analizoare 5,11 KB
Percepția mediului de viață. Analizori O persoană are nevoie de informații constante despre stare și schimbări Mediul externși prelucrarea acestor informații. Capacitatea de a obține informații despre mediu, capacitatea de a naviga în spațiu și de a evalua proprietățile mediului sunt furnizate de analizori. Informațiile provenite din mediul extern sunt analizate în cortexul cerebral, cel mai înalt nivel al sistemului nervos central.

Un computer modern este un sistem hardware și software complex. Scrierea de programe de calculator, depanarea lor și apoi executarea lor este o sarcină complexă, care necesită timp. Motivul principal pentru aceasta este diferența uriașă dintre ceea ce este convenabil pentru oameni și ceea ce este convenabil pentru computere. Un computer înțelege doar propriul limbaj de mașină (să-i spunem L0), dar pentru o persoană cel mai convenabil este limba vorbită sau cel puțin o limbă pentru descrierea algoritmilor - limbaj algoritmic. Problema poate fi rezolvată în două moduri. Ambele metode implică dezvoltarea unor comenzi care sunt mai prietenoase cu oamenii decât comenzile computerului încorporate. Aceste noi comenzi formează împreună un anumit limbaj, pe care îl vom numi L1.

Cele două metode menționate de rezolvare a problemei diferă prin modul în care computerul va executa programele scrise în limbajul L1. Prima metodă este înlocuirea fiecărei comenzi în limbajul L1 cu un set echivalent de comenzi în limbajul L0. În acest caz, computerul execută un nou program scris în L0 în locul programului scris în L1. Această tehnologie se numește difuzat.

A doua modalitate este de a scrie un program în L0 care preia programele scrise în L1 ca intrare, ia în considerare fiecare comandă pe rând și execută imediat un set echivalent de comenzi L0. Această tehnologie nu necesită compilare program nou la R0. Se numeste interpretare, iar programul care realizează interpretarea este numit interpret.

ÎN situație similară E mai ușor să-ți imaginezi existența unui computer ipotetic sau virtual mașină, pentru care limbajul mașină este L1, decât să ne gândim la traducere și interpretare. Să numim o astfel de mașină virtuală M1 și o mașină virtuală cu limbajul R0 - M0. Va fi posibil să scrieți programe pentru mașinile virtuale ca și cum acestea (mașinile) ar exista cu adevărat.

Evident, puteți merge mai departe - creați un alt set de comenzi care este mai orientat spre om și mai puțin orientat către computer decât L1. Acest set formează limbajul L2 și, în consecință, mașina virtuală M2. Putem continua astfel până ajungem la o limbă de nivel n care ni se potrivește.

Majoritatea computerelor moderne constau din două sau mai multe straturi. Nivelul 0 - Hardware mașini. Circuitele electronice la acest nivel execută programe scrise într-un limbaj de nivel 1. Următorul nivel este microarhitecturale nivel.

La acest nivel puteți vedea colecții de 8 sau 32 (uneori mai multe) registre care formează memoria locală și ALU ( unitate logică aritmetică). Registrele, împreună cu ALU, formează calea de date prin care ajung datele. Operația principală a acestei căi este următoarea. Sunt selectați unul sau două registre, ALU efectuează o operațiune asupra lor, iar rezultatul este plasat într-unul dintre aceste registre. Pe unele mașini, funcționarea căii este controlată de un program special numit firmware. În alte mașini, acest control este efectuat de hardware.

Următorul (al doilea) nivel este nivelul arhitectura setului de instrucțiuni. Instrucțiunile folosesc registre și alte caracteristici hardware. Instrucțiunile formează stratul ISA (Instruction Set Architecture), numit limbaj mașină. De obicei, limbajul mașinii conține de la 50 la 300 de instrucțiuni, utilizate în principal pentru a muta date în jurul computerului, a executa operatii aritmeticeși comparații de cantități.

Următorul (al treilea) nivel este de obicei hibrid. Majoritatea comenzilor din limbajul său sunt, de asemenea, la nivelul arhitecturii sistemului de comandă. Acest nivel are unele Caracteristici suplimentare: set de comenzi noi, altele organizarea memoriei, capacitatea de a executa două sau mai multe programe simultan și altele. De-a lungul timpului, gama de astfel de echipe s-a extins semnificativ. A introdus așa-numitele macrocomenzi ale sistemului de operare sau apeluri de supervizor, acum numite apeluri de sistem.

Caracteristicile noi introduse la al treilea nivel sunt executate de un interpret care rulează la al doilea nivel. Acest interpret a fost chemat cândva sistem de operare. Comenzile de nivel al treilea, identice cu comenzile de nivel al doilea, sunt executate de firmware sau hardware, dar nu de sistemul de operare. Cu alte cuvinte, o parte a comenzilor de al treilea nivel este interpretată de sistemul de operare, iar cealaltă parte este interpretată de firmware. Acesta este motivul pentru care acest strat al sistemului de operare este considerat hibrid.

sistem de operare a fost creat pentru a automatiza munca operatorului și a ascunde de utilizator dificultățile de comunicare cu echipamentul, oferindu-i mai multe sistem convenabil comenzi Cele trei niveluri inferioare (de la zero la secundă) nu sunt concepute pentru ca un programator obișnuit să lucreze cu ele. Au fost concepute inițial pentru a opera interpreți și traducători care acceptă niveluri superioare. Acești traducători și interpreți sunt compilați de programatori de sistem specializați în proiectarea și construirea de noi mașini virtuale.

Deasupra sistemului de operare (OS) sunt restul programe de sistem. Aici se află interpretul de comenzi (shell), compilatoarele, editorii etc. Programe similare nu fac parte din sistemul de operare (uneori utilizatorii consideră că shell-ul este sistemul de operare). Un sistem de operare înseamnă de obicei software, care rulează în modul kernel sau, cum se mai spune, modul supervizor. Este protejat de intervenția utilizatorului folosind hardware special.

Al patrulea nivel este forma simbolică a unuia dintre limbile de nivel scăzut (de obicei limbaj de asamblare). La acest nivel, programele pot fi scrise într-o formă care poate fi citită de om. Aceste programe sunt mai întâi traduse într-un limbaj de nivel 1, 2 sau 3 și apoi interpretate de mașina virtuală sau reală (fizică) corespunzătoare.

Nivelurile cinci și mai sus sunt destinate programatorilor de aplicații care rezolvă sarcini specificeîn limbaje de nivel înalt (C, C++, C#, VBA etc.). Compilatorii și editorii acestor niveluri rulează în modul utilizator. La niveluri și mai înalte se află programele de aplicații ale utilizatorului.

Majoritatea utilizatorilor de computere au cel puțin suficientă experiență cu un sistem de operare pentru a-și îndeplini sarcinile curente în mod eficient. Cu toate acestea, au dificultăți în încercarea de a defini un sistem de operare. Într-o anumită măsură, problema se datorează faptului că sistemele de operare îndeplinesc două funcții principale, dar practic fără legătură: extinderea capacităților computerului și gestionarea resurselor acestuia.

Din punctul de vedere al utilizatorului, sistemul de operare funcționează ca o mașină extinsă sau o mașină virtuală care este mai ușor de programat și de operat decât hardware-ul real care alcătuiește computerul real. sistem de operare Nu numai că elimină nevoia de a lucra direct cu discuri și oferă o interfață simplă, orientată pe fișiere, dar ascunde și o mare parte din munca urâtă cu întreruperi, contoare de timp, organizare a memoriei și alte componente de nivel scăzut.

Cu toate acestea, conceptul de vizualizare a sistemului de operare în primul rând ca o interfață ușor de utilizat este o vedere de sus în jos. O vedere alternativă, de jos în sus, oferă o idee despre sistemul de operare ca mecanism prezent în computer pentru a gestiona toate componentele acestui sistem extrem de complex. Conform acestei abordări, sarcina sistemului de operare este să asigure o distribuție organizată și controlată a procesoarelor, memoriei, discurilor, imprimantelor, dispozitivelor de intrare/ieșire, senzorilor de timp etc. între diferite programe concurând pentru dreptul de a le folosi.

1.2. Sistem de operare, mediu și shell de operare

Sistemele de operare (OS) în înțelegerea lor modernă (scopul și esența lor) au apărut mult mai târziu decât primele computere (deși, cel mai probabil, vor dispărea în această esență în computerele viitorului). De ce și când a apărut sistemul de operare? Numărări 1 Potrivit altor surse, primul computer a fost creat în Anglia în 1943 pentru a descifra codurile submarinelor germane. că primul computer digital ENIAC (Electronic Numerical Integrator and Computer) a fost creat în 1946 în cadrul proiectului Project PX al Departamentului de Apărare al SUA. Pentru proiect au fost cheltuiți 500 de mii de dolari. Computerul conținea 18.000 tuburi vid, o mulțime de tot felul de electronice, includea sumatoare de 12 biți, iar pentru a accelera unele operații aritmetice avea un multiplicator și un „divizor-extractor” rădăcină pătrată. Programare s-a rezumat la conectarea diferitelor blocuri cu fire. Desigur, nici un software, cu atât mai puțin sisteme de operare, nu exista în acel moment [,].

Creație intensă diverse modele Calculatorul datează de la începutul anilor 50 ai secolului trecut. În acești ani, aceleași grupuri de oameni au participat la proiectarea, crearea, programarea și operarea computerelor. Programare a fost realizat exclusiv în limbajul mașinii (și mai târziu în limbajul de asamblare), nu exista niciun software de sistem în afară de biblioteci de rutine matematice și utilitare. Sistemele de operare încă nu apăruseră, iar toate sarcinile de organizare a procesului de calcul au fost rezolvate manual de fiecare programator dintr-un panou de control al computerului primitiv.

Odată cu venirea elemente semiconductoare Capacitățile de calcul ale computerelor au crescut semnificativ. Alături de asta, se observă progresat progrese în programarea și organizarea automatizării munca de calcul. Limbaje algoritmice (Algol, Fortran, Cobol) și sistem software(traducători, editori de comunicare, încărcătoare etc.). Implementarea programelor a devenit mai complexă și a inclus următoarele acțiuni principale:

  • încărcarea traductorului necesar (instalarea ML-urilor necesare etc.);
  • lansarea traducătorului și obținerea programului în cod mașină;
  • conectarea programului cu rutinele bibliotecii;
  • încărcarea programului în RAM;
  • lansarea programului;
  • transmiterea rezultatelor programului către un dispozitiv de imprimare sau alt dispozitiv periferic.

Pentru organizarea eficientă a încărcării tuturor resurselor informatice, în personalul centrelor de calcul au fost introduse posturi de operatori special pregătiți, care au efectuat cu profesionalism munca de organizare a procesului de calcul pentru toți utilizatorii acestui centru. Cu toate acestea, indiferent cât de pregătit este operatorul, îi este dificil să concureze în productivitate cu munca dispozitivelor computerizate. Și, prin urmare, de cele mai multe ori, procesorul scump era inactiv și, prin urmare, utilizarea computerelor nu a fost eficientă.

Pentru a elimina timpul de nefuncționare, s-au încercat dezvoltarea de programe speciale - monitoare, prototipuri ale primelor sisteme de operare, care au efectuat tranziția automată de la sarcină la sarcină. Se crede că primul sistem de operare a fost creat în 1952 pentru computerele sale IBM-701 de către laboratorul de cercetare General Motors. În 1955, această companie și North American Aviation au dezvoltat împreună un sistem de operare pentru computerul IBM -704.

La sfârșitul anilor 50 ai secolului trecut, producătorii de top au furnizat sisteme de operare cu următoarele caracteristici:

  • procesarea în lot a unui flux de sarcini;
  • Disponibilitatea programelor standard de intrare/ieșire;
  • posibilitatea trecerii automate de la program la program;
  • instrumente de recuperare a erorilor care vă curăță automat computerul dacă prăbușire următoarea sarcină și vă permite să lansați următoarea sarcină cu intervenția minimă a operatorului;
  • limbi de gestionare a locurilor de muncă, permițând utilizatorilor să-și descrie sarcinile și resursele necesare pentru a le îndeplini.

Un pachet este un set (pachet) de cărți perforate, organizate într-un mod special (sarcină, programe, date). Pentru a accelera munca, ar putea fi transferat pe bandă magnetică sau pe disc. Acest lucru a făcut posibilă reducerea timpului de nefuncționare a echipamentelor scumpe. Trebuie spus că în prezent, datorită progresului tehnologiilor microelectronice și metodologiilor de programare, costul hardware-ului și software-ului de calculator a scăzut semnificativ. Prin urmare, acum se pune accent pe eficientizarea muncii utilizatorilor și programatorilor, deoarece costurile cu forța de muncă calificată reprezintă acum o pondere mult mai mare din costul total al sistemelor de calcul decât hardware-ul și software calculatoare.

Amplasarea sistemului de operare în structura ierarhică a software-ului și hardware Calculatorul poate fi reprezentat așa cum se arată în fig. 1.1.


Orez. 1.1.

Nivelul cel mai de jos conține diverse dispozitive informatice constând din microcircuite, conductori, surse de alimentare, tuburi catodice etc. Acest nivel poate fi împărțit în sub-niveluri, de exemplu controlerele dispozitivelor, iar apoi dispozitivele în sine. Este posibil să se împartă în mai multe niveluri. Mai sus este nivelul microarhitectural, unde dispozitivele fizice sunt tratate ca unități funcționale separate.

La nivel microarhitectural există registre interne procesor central(pot fi mai multe dintre ele) și dispozitive aritmetico-logice cu mijloace de control al acestora. La acest nivel este implementată execuția comenzilor mașinii. În procesul de execuție a instrucțiunilor, sunt utilizate registre ale procesorului și dispozitivelor, precum și alte capacități hardware. Comenzile vizibile pentru programatorul asamblator formează nivelul perioada de graţie accesează utilități pentru a îndeplini anumite funcții. Cel mai important dintre programele de sistem este sistem de operare, care eliberează programatorul de nevoia de cunoaștere aprofundată a structurii computerului și îi oferă o interfață convenabilă pentru utilizarea acesteia. sistem de operare acționează ca un intermediar, facilitând accesul programatorului, utilizatorilor și aplicațiilor software diverselor servicii și capabilități ale computerului.

Prin urmare, sistem de operare este un set de programe care controlează funcționarea programelor de aplicație și a aplicațiilor de sistem și acționează ca o interfață între utilizatori, programatori, programe de aplicație, aplicații de sistemși hardware de calculator.

În mod figurat, putem spune că hardware-ul computerului oferă putere de calcul „brută”, iar sarcina sistemului de operare este de a face utilizarea acestei puteri de calcul accesibilă și, dacă este posibil, convenabilă pentru utilizator. Este posibil ca programatorul să nu cunoască detaliile despre cum să gestioneze anumite resurse (cum ar fi discul) de pe computer și trebuie să facă apeluri adecvate către sistemul de operare pentru a obține servicii necesare si functii. Acest set de servicii și funcții reprezintă mediul de operare în care sunt executate programele de aplicație.

Prin urmare, Mediul de operare este un mediu software creat de un sistem de operare care definește o interfață de programare a aplicațiilor (API) ca un set funcțiile sistemuluiși servicii (apeluri de sistem) care sunt furnizate programelor de aplicație. Mediul de operare poate include mai multe interfețe de programare a aplicațiilor. Pe lângă mediul de operare principal, numit natural, se pot organiza prin emulare (simulare) medii software suplimentare pentru a permite executarea aplicațiilor care sunt concepute pentru alte sisteme de operare și chiar pentru alte computere.

Un alt concept important legat de sistemul de operare se referă la implementarea interfețelor utilizator. De regulă, orice sistem de operare oferă o experiență convenabilă pentru utilizator în detrimentul fondurilor interfața cu utilizatorul. Aceste instrumente pot fi o parte integrantă a mediului de operare (de exemplu, interfața grafică Windows sau interfața de linie de comandă text MS DOS) sau pot fi implementate de un program de sistem separat - shell-ul sistemului de operare (de exemplu, Comandantul Norton pentru MS DOS). În general, sub shell-ul sistemului de operare se referă la partea din mediul de operare care determină interfața cu utilizatorul, implementarea acesteia (text, grafic, etc.), capacitățile de comandă și service ale utilizatorului pentru a controla programele de aplicație și computerul.

Să trecem la considerarea evoluției sistemelor de operare.

Subiectul 1. Sistem de calcul. Compoziția sistemului de calcul

Una dintre sarcinile principale ale disciplinelor tehnice este selectarea mijloacelor și metodelor de mecanizare și automatizare a muncii. Automatizarea lucrului cu date are propriile sale caracteristici și sunt utilizate dispozitive speciale pentru implementarea acesteia.

Se numește un set de dispozitive concepute pentru prelucrarea automată sau automată a datelor tehnologia calculatoarelor .

Se numește un set specific de dispozitive și programe care interacționează, care este proiectat să deservească o zonă de lucru sistem de calcul . Dispozitivul central al majorității sistemelor de calcul este calculator . Este conceput pentru a automatiza crearea, stocarea, procesarea și transmiterea datelor.

Compoziția sistemului de calcul se numește configurație .

Luați în considerare separat configurație hardware sistemele de calcul și a acestora configurarea software-ului. Criteriile pentru alegerea unei soluții hardware sau software sunt performanța și eficiența.

Orez. 1. Compoziția sistemului de calcul

Hardware

Hardware-ul sistemului informatic include dispozitive și instrumente care formează o configurație hardware. Calculatoare moderne iar sistemele de calcul au un design bloc-modular - configurația hardware necesară pentru a efectua anumite tipuri de lucrări poate fi asamblată din unități și blocuri gata făcute.

Pe baza modului în care dispozitivele sunt amplasate în raport cu procesorul central, acestea sunt împărțite în internȘi extern dispozitive. Externe, de regulă, sunt majoritatea dispozitivelor de intrare/ieșire (numite și dispozitive periferice) și unele dispozitive concepute pentru stocarea de date pe termen lung.

Coordonarea între nodurile și blocurile individuale se realizează folosind dispozitive hardware-logice de tranziție numite interfețe hardware. Standardele pentru interfețele hardware sunt numite protocoale. Prin urmare, protocol- este o colecție specificatii tehnice, care trebuie furnizate de dezvoltatorii de dispozitive pentru a-și armoniza cu succes funcționarea cu alte dispozitive.

Numeroase interfețe prezente în arhitectura oricărui sistem de calcul pot fi împărțite în două grupuri mari: secvenţialȘi paralel .

1. Printr-o interfață serială, datele sunt transferate secvențial, bit cu bit, iar performanța acesteia este măsurată în biți pe secundă (bps, Kbps, Mbps).

2. Printr-o interfață paralelă, datele sunt transmise simultan în grupuri de biți. Se determină numărul de biți implicați într-un mesaj adâncimea de biți interfață, de exemplu, interfețele paralele pe opt biți transferă un octet (8 biți) pe ciclu. Interfețele paralele sunt de obicei mai complexe decât interfețele seriale, dar oferă performanțe mai mari. Sunt utilizate acolo unde viteza de transfer a datelor este importantă: pentru conectarea dispozitivelor de imprimare, a dispozitivelor de introducere a informațiilor grafice, a dispozitivelor de înregistrare a datelor pe medii externe etc. Performanța interfețelor paralele este măsurată în octeți pe secundă (octet/s; KB/s; MB/s).

Inițial, interfețele seriale au fost folosite pentru a conecta dispozitive „lente” (dispozitive de imprimare simple De calitate inferioară, dispozitive de intrare și ieșire a informațiilor de semn și semnal, senzori de control, dispozitive de comunicații cu performanțe reduse etc.), precum și în cazurile în care nu există restricții semnificative după durata schimbului de date.

Cu toate acestea, odată cu dezvoltarea tehnologiei, au apărut interfețe seriale noi, de mare viteză, care nu sunt inferioare celor paralele și, adesea, le depășesc în debit. Astăzi, interfețele seriale sunt folosite pentru a conecta orice tip de dispozitiv la un computer.

Software

Programe sunt secvențe ordonate de comenzi. Scopul final al oricărui program de calculator este controlul hardware-ului.

Compoziția software-ului sistemului informatic se numește configurarea software-ului. Există o relație între programe, precum și între nodurile fizice și blocuri - multe programe funcționează bazându-se pe alte programe de nivel inferior, adică putem vorbi despre program încrucișat interfata. Posibilitatea existenței unei astfel de interfețe se bazează și pe existența condițiilor tehnice și a protocoalelor de interacțiune, iar în practică este asigurată de distribuirea software-ului pe mai multe niveluri de interacțiune.

Straturile software sunt o structură piramidală. Fiecare Nivelul următor se bazează pe software de la nivelurile anterioare. Fiecare nivel superior crește funcționalitatea întregului sistem. De exemplu, un sistem informatic cu software de nivel de bază nu este capabil să îndeplinească majoritatea funcțiilor, dar permite instalarea software-ului de sistem.

Orez. 2. Structura software

1. Nivel de bază. Cel mai nivel scăzut software-ul reprezintă software-ul de bază. Este responsabil pentru interacțiunea cu hardware-ul de bază. De regulă, software-ul de bază este inclus direct în hardware-ul de bază și este stocat în cipuri speciale numite dispozitive de memorie read-only (ROM - ReadOnlyMemory, ROM). Programele și datele sunt scrise („flash”) în cipurile ROM în etapa de producție și nu pot fi modificate în timpul funcționării.

2. Nivel de sistem. Nivelul de sistem este tranzitoriu. Programele care funcționează la acest nivel asigură interacțiunea altor programe de sistem informatic cu programe de nivel de bază și direct cu hardware-ul, adică îndeplinesc funcții „intermediare”.

instrumente de interfață cu utilizatorul– datorită acestora, computerul are posibilitatea de a introduce date în sistemul de calcul, de a controla funcționarea acestuia și de a obține rezultatul într-o formă convenabilă pentru el însuși.

şoferii– extinde capacitățile sistemului de operare, permițându-i să lucreze cu unul sau altul dispozitiv conectat, învățându-i un nou protocol de schimb de date etc.

Colecția de software la nivel de sistem formează nucleul sistemului de operare al unui computer. Ne vom uita la conceptul complet al unui sistem de operare puțin mai târziu, dar aici vom reține doar că, dacă un computer este echipat cu software la nivel de sistem, atunci este deja pregătit pentru a instala mai multe programe. niveluri înalte, la interacțiunea software-ului cu hardware-ul și, cel mai important, la interacțiunea cu utilizatorul. Adică, prezența unui nucleu de sistem de operare este o condiție indispensabilă pentru posibilitate munca practica persoană cu un sistem de calcul.

3. Nivel de serviciu. Software-ul la acest nivel interacționează atât cu programele de bază, cât și cu cele de sistem. Scopul principal al programelor utilitare (se mai numesc și utilitare) este de a automatiza munca de verificare, configurare și configurare a unui sistem informatic. În multe cazuri, acestea sunt folosite pentru a extinde sau îmbunătăți funcționalitatea programelor de sistem. niste utilitati(de regulă, acestea sunt programe de întreținere) sunt incluse inițial în sistemul de operare, dar majoritatea programelor utilitare sunt externe sistemului de operare și servesc la extinderea funcțiilor acestuia.

Există două direcții alternative în dezvoltarea și funcționarea programelor utilitare:

a) integrarea cu sistemul de operare - programele utilitare pot modifica proprietățile de consum ale programelor de sistem, făcându-le mai convenabile pentru munca practică.

b) Funcționare autonomă - Utilitățile sunt ușor cuplate cu software-ul sistemului, dar oferă utilizatorului mai multe oportunități de a-și personaliza interacțiunea cu hardware-ul și software-ul.

4. Stratul de aplicare. Software-ul la nivel de aplicație este un set de programe de aplicație cu ajutorul cărora sunt efectuate sarcini specifice la un anumit loc de muncă.

Exemple de aplicații software

1. Editori de text.

Introducerea și editarea datelor text;

Automatizarea proceselor de introducere și editare.

Pentru operațiunile de intrare, ieșire și stocare, editorii de text apelează și folosesc software-ul de sistem (acest lucru este, de asemenea, tipic pentru toate celelalte tipuri de programe de aplicație)

2. Procesoare de text. Principala diferență dintre procesoarele de text și editori de text este că vă permit nu numai să introduceți și să editați text, ci și să îl formatați, adică să îl proiectați. În consecință, principalele instrumente ale procesoarelor de text includ instrumente pentru asigurarea interacțiunii textului, graficelor, tabelelor și a altor obiecte care alcătuiesc documentul final, iar instrumentele suplimentare includ instrumente pentru automatizarea procesului de formatare.

Stilul modern de lucru cu documente implică două abordări alternative - lucrul cu documente pe hârtie și lucrul cu documente electronice (folosind tehnologia fără hârtie). Prin urmare, procesoarele de text vă permit să efectuați 2 tipuri de formatare - formatarea documentelor destinate pentru imprimare, și formatarea documentelor electronice destinate pentru a se afișa pe ecran. Tehnicile și metodele în aceste cazuri diferă semnificativ. Procesoarele de text variază în consecință, deși mulți combină cu succes ambele abordări.

Ministerul Educației și Științei al Federației Ruse

„Cercetarea națională din Sankt Petersburg

AM APROBAT

Șeful Departamentului IS

„____“ ___________20___

NOTE DE CURS

Modul nr: _ 3 _ Teoria sistemelor de operare

Tema cursului: Teoria sistemelor de operare

Literatură :

Principal:

1. Stalings V. Sisteme de operare, ed. a IV-a. M.: „Williams”, 2004. – 848 p.

2. Tanenbaum E. Sisteme de operare moderne - Sankt Petersburg: Peter, 2003 - 992 p.

În sistemele de operare asimetrice, procesoarele sunt inegale. De obicei, există un procesor principal (master) și sclavi (sclavi), a căror sarcină și natura sunt determinate de procesorul principal.

Sisteme în timp real

Categoria sistemelor de operare multitasking, împreună cu sistemele batch și sistemele de partajare a timpului, include și sisteme în timp real care nu au fost menționate până acum.

Sunt folosite pentru a controla diverse obiecte tehnice sau procese tehnologice. Astfel de sisteme se caracterizează printr-un timp de răspuns maxim admis la un eveniment extern, timp în care programul care controlează obiectul trebuie să fie executat. Sistemul trebuie să proceseze datele primite mai repede decât poate ajunge și din mai multe surse simultan.

Astfel de restricții severe afectează arhitectura sistemelor în timp real, de exemplu, acestea pot lipsi de memorie virtuală, al cărei suport provoacă întârzieri imprevizibile în execuția programului;

Clasificarea OS dată nu este exhaustivă

Cursul 3

Definirea procesului

În general proces - Aceasta este o activitate asociată cu execuția unui program pe procesor.

La executarea programelor pe un procesor central, se disting cel mai adesea următoarele stări individuale caracteristice:

1. generaţie- sunt pregatite conditii pentru prima executie pe procesor

2. stare activă, sau starea „Cont” - programul este executat pe procesor

3. asteptare- programul nu este executat pe procesor din cauza aglomerației oricărei resurse necesare

4. pregătire- programul nu este executat, dar toate resursele necesare în prezent sunt prevăzute pentru execuție, cu excepția procesorului central

5. final- încetarea normală sau de urgență a execuției programului, după care procesorul și alte resurse nu îi sunt furnizate

Procesul rămâne în fiecare dintre stările sale valide pentru o perioadă de timp, după care trece la o altă stare validă. Compoziția stărilor admisibile, precum și tranzițiile admisibile de la stare la stare, sunt de obicei specificate sub forma unui grafic de existență a procesului.

Pentru sistemul de operare, un proces în această interpretare este considerat ca un obiect în legătură cu care este necesar să se asigure implementarea fiecăreia dintre stările permise, precum și tranzițiile permise de la stare la stare ca răspuns la evenimente care pot provoca astfel de tranziții. . Astfel de evenimente pot fi inițiate și de procesele în sine, care sunt capabile să solicite un procesor sau o altă resursă necesară pentru execuția programului.

Proprietăți și clasificare

Procesele sunt determinate de un număr de caracteristici de timp. La un moment dat, un proces poate fi generat (format), iar după un timp poate fi finalizat. Se numește intervalul dintre aceste momente interval de existență a procesului.

În momentul generării, succesiunea și durata de ședere a procesului în fiecare dintre stările sale (urma procesului) sunt în general imprevizibile. În consecință, durata intervalului de existență este și ea imprevizibilă. Cu toate acestea, anumite tipuri de procese necesită o astfel de planificare pentru a se asigura că procesul este finalizat înainte de un anumit moment în timp. Procesele din această clasă sunt numite procese în timp real. O altă clasă include procese a căror durată de viață nu trebuie să depășească intervalul de timp al unui răspuns acceptabil de computer la solicitările utilizatorilor. Procesele din această clasă sunt numite interactiv. Procesele care nu sunt incluse în aceste clase sunt numite lot.

În orice sistem de operare, la cererea unui proces existent sau existent, se lucrează pentru a genera procese. Procesul care definește această cerință, numit generatoareși creat la cerere - generate. Dacă un proces generat, în intervalul existenței sale, emite la rândul său o cerere pentru generarea unui alt proces, atunci el devine simultan unul generator.

În gestionarea proceselor, este important să se asigure reproductibilitatea rezultatelor fiecărui proces, să se țină cont și să se gestioneze situația care s-a dezvoltat pe parcursul desfășurării procesului. Prin urmare, este adesea important nu numai rezultatul calculului, ci și modul în care se obține acest rezultat. Din aceste poziții, sistemul de operare compară procesele după proprietăți dinamice, folosind conceptul de „urme” - ordinea și durata de ședere a procesului în stări acceptabile în timpul intervalului de existență.

Două procese care au același rezultat final al procesării acelorași date de intrare pentru același sau chiar diverse programe pe același procesor sau pe procesoare diferite se numește echivalent. În cazul general, urmele proceselor echivalente nu coincid. Dacă în fiecare dintre procesele echivalente prelucrarea datelor are loc conform aceluiași program, dar urmele în general nu coincid, atunci astfel de procese se numesc identic. Când urmele proceselor identice coincid, ele sunt numite egal. În toate celelalte cazuri, procesele sunt întotdeauna diferite.

Problema cu managementul proceselor este că în momentul în care procesele sunt generate, urmele lor sunt necunoscute. În plus, este necesar să se țină cont de modul în care intervalele de existență a proceselor se corelează în timp. Dacă intervalele a două procese nu se intersectează în timp, atunci se numesc astfel de două procese consistent unul față de celălalt. Dacă două procese există simultan în intervalul de timp luat în considerare, atunci în acest interval ele sunt paralel unul față de celălalt. Dacă în intervalul luat în considerare există cel puțin un punct în care există un proces, dar celălalt nu există și cel puțin un punct în care ambele procese există simultan, atunci astfel de două procese se numesc combinate.

În sistemul de operare, se obișnuiește să se distingă procesele nu numai în funcție de timp, ci și de locul dezvoltării lor, adică pe ce procesor este executat programul de proces. Punctul de plecare este considerat a fi procesorul central (procesoare), pe care procesele apelează software sau intern. Acest nume indică posibilitatea existenței în sistemul de procese numite extern. Acestea sunt procese a căror dezvoltare are loc sub controlul sau controlul SO pe alte procesoare decât cel central. Ele pot fi, de exemplu, procese de intrare-ieșire care se dezvoltă în canal. Activitatea oricărui utilizator de calculator care, într-o formă sau alta, introduce prin sistemul de operare informații necesare executării unuia sau mai multor programe, poate fi considerată și ca un proces extern.

Procesele software sunt de obicei împărțite în sistemicȘi personalizat. Când se dezvoltă un proces de sistem, este executat un program din sistemul de operare. Când se dezvoltă un proces utilizator, programul utilizator (aplicație) este executat.

Procesele, indiferent de tipul lor, pot fi interconectate sau izolat unul de altul. Două procese sunt interconectate dacă între ele se menține un fel de conexiune folosind un sistem de control al procesului: funcțional, spațiotemporal, de control, informațional etc. În caz contrar, sunt izolate (mai precis, procese cu conexiuni slabe, deoarece în absența unor conexiuni evidente). , ele pot fi conectate indirect și într-un anumit fel influențează reciproc dezvoltarea).

Dacă există o conexiune de control între procese, se stabilește o relație de forma „generator-generator”, discutată mai sus. Dacă două procese interconectate în timpul dezvoltării folosesc unele resurse împreună, dar nu sunt conectate informațional unul cu celălalt, adică nu fac schimb de informații, atunci astfel de procese se numesc independent de informaţie. Legătura dintre astfel de procese poate fi fie funcțională, fie spațiotemporală. În prezența link-uri de informațiiîntre două procese se numesc interacționând, iar schemele și, prin urmare, mecanismele de stabilire a unor astfel de conexiuni, pot fi diferite.

Specificitatea este, în primul rând, determinată de dinamica proceselor (adică dacă procesele care interacționează sunt secvențiale, paralele sau combinate); în al doilea rând, metoda aleasă de comunicare (explicită, folosind schimbul explicit de mesaje între procese, sau implicită, folosind structuri de date partajate). Când este necesar să se sublinieze legătura dintre procesele de resurse interconectate, acestea sunt numite concurând.

Sistemele de operare (OS) în înțelegerea lor modernă (scopul și esența lor) au apărut mult mai târziu decât primele computere (deși, cel mai probabil, vor dispărea în această esență în computerele viitorului). De ce și când a apărut sistemul de operare? Contează 1) că primul computer digital, ENIAC (Electronic Numerical Integrator and Computer), a fost creat în 1946 în cadrul proiectului Project PX al Departamentului de Apărare al SUA. Pentru proiect au fost cheltuiți 500 de mii de dolari. Calculatorul conținea 18.000 de tuburi vidate, o mulțime de electronice de tot felul, includea 12 sumatoare pe zece biți, iar pentru a accelera unele operații aritmetice avea un multiplicator și un divizor de rădăcină pătrată. Programarea s-a rezumat la conectarea diferitelor blocuri cu fire. Desigur, nici un software, cu atât mai puțin sisteme de operare, nu exista în acel moment.

Crearea intensivă a diferitelor modele de computer datează de la începutul anilor 50 ai secolului trecut. În acești ani, aceleași grupuri de oameni au participat la proiectarea, crearea, programarea și operarea computerelor. Programarea s-a făcut în întregime în limbaj mașină (și mai târziu în limbaj de asamblare) și nu exista niciun software de sistem în afară de biblioteci de rutine matematice și utilitare. Sistemele de operare încă nu apăruseră, iar toate sarcinile de organizare a procesului de calcul au fost rezolvate manual de fiecare programator dintr-un panou de control al computerului primitiv.

Odată cu apariția elementelor semiconductoare, capacitățile de calcul ale computerelor au crescut semnificativ. Odată cu aceasta, realizările în domeniul automatizării programării și organizării muncii de calcul au progresat considerabil. Au apărut limbaje algoritmice (Algol, Fortran, Cobol) și software de sistem (traducători, editori de comunicare, încărcătoare etc.). Implementarea programelor a devenit mai complexă și a inclus următoarele acțiuni principale:

· lansarea traducătorului și obținerea programului în cod mașină;

· conectarea programului cu rutinele bibliotecii;

· lansarea programului;

· scoateți rezultatele programului către un dispozitiv de imprimare sau alt dispozitiv periferic.

Pentru organizarea eficientă a încărcării tuturor resurselor informatice, în personalul centrelor de calcul au fost introduse posturi de operatori special pregătiți, care au efectuat cu profesionalism munca de organizare a procesului de calcul pentru toți utilizatorii acestui centru. Cu toate acestea, indiferent cât de pregătit este operatorul, îi este dificil să concureze în productivitate cu munca dispozitivelor computerizate. Și, prin urmare, de cele mai multe ori procesorul scump era inactiv și, prin urmare, utilizarea computerelor nu a fost eficientă.


Pentru a elimina timpul de nefuncționare, s-au încercat dezvoltarea de programe speciale - monitoare, prototipuri ale primelor sisteme de operare, care au efectuat tranziția automată de la sarcină la sarcină. Se crede că primul sistem de operare a fost creat în 1952 de către laboratorul de cercetare General Motors pentru computerele sale IBM-701. În 1955, această companie și North American Aviation au dezvoltat împreună sistemul de operare pentru computerul IBM-704.

La sfârșitul anilor 50 ai secolului trecut, producătorii de top au furnizat sisteme de operare cu următoarele caracteristici:

· procesarea în lot a unui flux de sarcini;

· Disponibilitatea programelor standard de intrare/ieșire;

· posibilitatea trecerii automate de la program la program;

· instrumente de recuperare a erorilor care asigură „curățarea” automată a computerului în cazul unei încetări de urgență a următoarei sarcini și vă permit să lansați următoarea sarcină cu intervenția minimă a operatorului;

· Limbi de gestionare a locurilor de muncă care oferă utilizatorilor posibilitatea de a-și descrie joburile și resursele necesare pentru a le finaliza.

Un pachet este un set (pachet) de cărți perforate, organizate într-un mod special (sarcină, programe, date). Pentru a accelera munca, ar putea fi transferat pe bandă magnetică sau pe disc. Acest lucru a făcut posibilă reducerea timpului de nefuncționare a echipamentelor scumpe. Trebuie spus că în prezent, datorită progresului tehnologiilor microelectronice și metodologiilor de programare, costul hardware-ului și software-ului de calculator a scăzut semnificativ. Prin urmare, acum se pune accent pe eficientizarea muncii utilizatorilor și programatorilor, deoarece costurile cu forța de muncă calificată reprezintă acum o pondere mult mai mare din costul total al sistemelor de calcul decât hardware-ul și software-ul computerelor.

Locația sistemului de operare în structura ierarhică a software-ului și hardware-ului computerului poate fi reprezentată așa cum se arată în Fig. 1.1.

Orez. 1.1. Structura ierarhică a hardware-ului și software-ului calculatorului

Nivelul cel mai de jos conține diverse dispozitive informatice constând din microcircuite, conductori, surse de alimentare, tuburi catodice etc. Acest strat poate fi împărțit în substraturi, cum ar fi controlerele dispozitivelor și apoi dispozitivele în sine. Este posibil să se împartă în mai multe niveluri. Mai sus este nivelul microarhitectural, unde dispozitivele fizice sunt tratate ca unități funcționale separate.

La nivel microarhitectural există registre interne ale procesorului central (pot fi mai multe) și dispozitive aritmetico-logice cu mijloace de control al acestora. La acest nivel este implementată execuția comenzilor mașinii. În procesul de execuție a instrucțiunilor, sunt utilizate registre ale procesorului și dispozitivelor, precum și alte capacități hardware. Instrucțiunile vizibile unui programator asamblator formează stratul ISA (Instruction Set Architecture), adesea numit limbaj mașină.

Sistemul de operare este conceput pentru a ascunde toate aceste complexități. Utilizator final de obicei nu sunt interesați de detaliile hardware-ului computerului. El vede computerul ca pe un set de aplicații. Aplicația poate fi scrisă de un programator în orice limbaj de programare. Pentru a simplifica această muncă, programatorul folosește un set de programe de sistem, dintre care unele sunt numite utilitare. Cu ajutorul lor, sunt implementate funcții utilizate frecvent care vă ajută să lucrați cu fișiere, să gestionați dispozitivele I/O etc. Programatorul folosește aceste instrumente atunci când dezvoltă programe, iar aplicațiile apelează la utilitare în timpul execuției pentru a îndeplini anumite funcții. Cel mai important dintre programele de sistem este sistemul de operare, care eliberează programatorul de nevoia de cunoaștere aprofundată a structurii computerului și îi oferă o interfață convenabilă pentru utilizarea acestuia. Sistemul de operare acționează ca un intermediar, facilitând programatorului, utilizatorilor și aplicațiilor software să acceseze diverse servicii și capabilități ale computerului.

Prin urmare, sistem de operare este un set de programe care controlează funcționarea programelor de aplicație și a aplicațiilor de sistem și acționează ca o interfață între utilizatori, programatori, programe de aplicație, aplicații de sistem și hardware-ul computerului.

În mod figurat, putem spune că hardware-ul computerului oferă putere de calcul „brută”, iar sarcina sistemului de operare este de a face utilizarea acestei puteri de calcul accesibilă și, dacă este posibil, convenabilă pentru utilizator. Este posibil ca programatorul să nu cunoască detaliile gestionării resurselor specifice (de exemplu, disc) ale computerului și trebuie să facă apeluri adecvate către sistemul de operare pentru a obține serviciile și funcțiile necesare de la acesta. Acest set de servicii și funcții reprezintă mediul de operare în care sunt executate programele de aplicație.

Prin urmare, Mediul de operare este un mediu software creat de un sistem de operare care definește o interfață de programare a aplicațiilor (API) ca un set de funcții și servicii de sistem (apeluri de sistem) care sunt furnizate programelor de aplicație. Mediul de operare poate include mai multe interfețe de programare a aplicațiilor. Pe lângă mediul de operare principal, numit natural, mediile software suplimentare pot fi organizate prin emulare (modelare), permițându-vă să rulați aplicații care sunt concepute pentru alte sisteme de operare și chiar pentru alte computere.

Un alt concept important legat de sistemul de operare se referă la implementarea interfețelor utilizator. De regulă, orice sistem de operare oferă o experiență convenabilă pentru utilizator prin instrumentele de interfață cu utilizatorul. Aceste instrumente pot fi o parte integrantă a mediului de operare (de exemplu, interfața grafică Windows sau interfața de linie de comandă text MS DOS) sau pot fi implementate printr-un program de sistem separat - shell-ul sistemului de operare (de exemplu, Norton Commander). pentru MS DOS). În general, sub shell-ul sistemului de operare se referă la partea din mediul de operare care determină interfața cu utilizatorul, implementarea acesteia (text, grafic, etc.), capacitățile de comandă și service ale utilizatorului pentru a controla programele de aplicație și computerul.

Să trecem la considerarea evoluției sistemelor de operare.