- Stahuj zápisky z přednášek a ostatní studijní materiály
- Zapisuj si jen kvalitní vyučující (obsáhlá databáze referencí)
- Nastav si své předměty a buď stále v obraze
- Zapoj se svojí aktivitou do soutěže o ceny
- Založ si svůj profil, aby tě tví spolužáci mohli najít
- Najdi své přátele podle místa kde bydlíš nebo školy kterou studuješ
- Diskutuj ve skupinách o tématech, které tě zajímají
Studijní materiály
Zjednodušená ukázka:
Stáhnout celý tento materiálného priestoru procesu
môže byť poskytnutý page-table length register, ktorý „odreže“ nepoužité stránky z tabuľky
užitočný, ak proces využíva veľmi malú časť z adresného priestoru. Segmentácia Princíp
pohľad užívateľa na pamäť – segmenty s variabilnou dĺžkou obr. 8.21
Logický adresný priestor je sada segmentov.
Každý segment má dĺžku a veľkosť.
Logická adresa pozostáva z čísla segmentu a posuvu v segmente:
Keď sa program prekladá, prekladač automaticky vytvára segmenty:
globálne premenné, zásobník pre volania podprogramov a pre uloženie parametrov a návratových adries, kódy procedúr a funkcií a lokálne premenné každej procedúry a funkcie. HW podpora pri segmentácii Implementácia tabuľky segmentov Mapovanie logických adries - cez tabuľku segmentov
Tabuľka segmentov sa môže umiestniť
do rýchlych registrov - dá sa spracovať veľmi rýchlo
do pamäte – v prípade väčšieho počtu segmentov
HW podpora
Register začiatku tabuľky segmentov (STBR - Segment-Table Base Register)
register dĺžky tabuľky segmentov (STLR - Segment-Table Length Register)
Pre urýchlenie prístupu do ST - sady asociatívnych registrov, ktoré uchovávajú posledne používané položky z tabuľky segmentov.
môže zredukovať čas pre prístup k pamäti tak, že ten nebude o viac ako 10 až 15 % väčší ako nemapovaný prístup.
Ochrana a zdieľanie Ochrana
ku každému segmentu, read, write, execute
Zdieľanie obr. 8.24
na úrovni segmentov
Problémy pri zdieľaní
kódové segmenty obsahujú odkazy sami na seba
riešenie - register čísla segmentu
Fragmentácia
Segmentácia spôsobuje vonkajšiu fragmentáciu
Algoritmy pri prehľadavaní voľných úsekov
first-fit
best-fit.
Segmentácia so stránkovaním Najrozšírenejšia rady procesorov
Motorola 68000 -jednorozmerný adresný priestor t.j. stránkovanie
Intel 80X86 segmentácia
Stránkovanie so segmentáciou
navrhnuté pre GE 645 / Multics – obr.
Intel X86 používa segmentové registre na generovanie 32-bit logickú adresu, ktorá sa transformuje na fyzickú ( prípadne aj viacúrovňové stránkovanie )- obrázok
Správa periférnych zariadení Klasifikácia vstupno/výstupných zariadení
Z hľadiska možnosti ich zdieľania medzi procesmi
Zdieľateľné zariadenia - môže ich používať viac procesov naraz.
Nezdieľateľné zariadenia - tieto zariadenia nemôžu slúžiť viacerým procesom naraz
Problém prideľovania nezdieľateľných zariadení – riešenie dvomi technikami
výlučné pridelenie
virtualizácia nezdieľateľných zariadení – spooling u tlačiarni Klasifikácia V/V zariadení Z hľadiska smeru dát
vstupné – klávesnica, myš, svetelné pero, čítač čiarového kódu
výstupné – disk, tlačiareň, obrazovka terminálu, páska
Podľa spôsobu prenosu a prístupu k dátam
blokové zariadenia - disk, D-ROM, floppy disk, páska
znakové zariadenia - terminály, tlačiarne a iné
iné zariadenia – nie sú ani blokové ani znakové. Napr. časovač a mnoho iných Štruktúra V/V zariadení Radič ( adaptér ) zariadenia
doska v počítači.
Mechanická časť zariadenia –
samotné zariadenie.
OS skoro vždy komunikuje s radičom
Radič
Niekoľko registrov, napr. stavový register, príkazový register, dátový register, adresný register a iné.
Niektoré systémy rezervujú pre registre V/V zariadení časť pamäte (PDP-11, VAX/VMS).
Iné systémy používajú pre V/V špeciálny adresný priestor.
Sálove počítače –
kanály – špecializované procesory, ktoré preberajú riadenie periférnych zariadení (fólia IBM 370) Spolupráca OS s ovládačom Operačný systém
Odovzdáva príkazy do ovládača zariadenia a ten nastavuje registre radiča.
Procesor vykonáva inú prácu
Keď periférna operácia skončí, radič upozorní OS na to pomocou prerušenia. Priamy prístup k pamäti (DMA) Obvod DMA - špecializovaný procesor
riadi prenos dát medzi operačnou pamäťou a radičom bez účasti procesora.
zrýchľuje prenos dát - dáva možnosť preniesť väčšie množstvo dát naraz.
Bez DMA prenos prebieha tak,
že radič najskôr zaistí prečítanie bloku do svojej vyrovnávacej pamäte,
skontroluje prenos pomocou kontrolnej sumy a
potom preruší.
OS odštartuje prenos dát a v slučke sa byte po byte prenáša z vyrovnávacej pamäte radiča do operačnej pamäte. Priamy prístup k pamäti (DMA) Pri DMA (fólia DMA)
DMA radič má kanály(8 ), každý kanál má adresný register a register pre počet bajtov
procesor zadá obvodu DMA adresu v pamäti, kde sa majú zapísať dáta, a počet byte-ov, ktoré sa majú preniesť.
DMA prenesie zadaný počet byte-ov
po ukončení prenosu upozorní prerušením
prenos neriadi procesor, ale obvod DMA, takže procesor sa môže venovať inej práci.
DMA vidí iba fyzickú pamäť (dolnú časť) Organizácia programového vybavenia pre správu periférnych zariadení (fólia) V/V operácie na užívateľskej úrovni Vykonávajú sa ako systémové volania
Neprebiehajú v privilegovanom režime
Typické operácie
Operácie so zariadeniami:
Žiadosť o pridelenie zariadenia a uvoľnenie zariadenia.
Čítanie, zápis, nastavenie pozície.
Zistenie a nastavenie atribútov zariadenia.
Logické pripojenie a odpojenie zariadenia.: V/V operácie na užívateľskej úrovni pokr. Operácie pre prácu so súbormi:
Tvorba a zrušenie súboru.
Otvorenie a uzatvorenie súboru.
Čítanie a zápis do súboru.
Zistenie a nastavenie atribútov súboru.
Formátovanie.
vykonávajú systémové volania, ako knižničné procedúry, t.j. prebiehajú v užívateľskom režime.
zaisťujú napr. prevod reťazcov na binárne hodnoty a naopak Programové vybavenie, nezávislé od zariadenia Spoločné pre všetky periférne zariadenia
Poskytuje jednotné rozhranie pre užívateľský software
Napr. na základe tohoto rozhrania,
práca so súborom, ktorý je na disku alebo na floppy disku alebo na tlačiarni neprináša potrebu modifikovať program
Hlavné funkcie tejto vrstvi:
Jednotné pomenovanie zariadení
Ochrana zariadenia
Veľkosť bloku, nezávislá od zariadenia
Obsluha využitia vyrovnávacích pamäti
Správa voľného priestoru blokových zariadení.
Obsluha chýb. Príklady Pomenovanie v Unixe
/dev/tty* terminals
/dev/fd* floppy fisk
/dev/mt* magnetic tape
/dev/st* streaming tape
/dev/mouse mouse
Formátovanie
printf("the value of %s is %d",str, n)
spracováva sa následovne:
Scanuje reťazec pre prvý argument.
Ak je tam špeciálna postupnosť začínajúca znak ``%'', určí typ očakávaného argumentu (int, string, ...).
Nájde hodnotu odpovedajúceho parametera
Konvertuje ho na reťazec
Vytvorí nový reťazec so všetkými substutuovanými parametrami
Zapíše reťazec Ovládače periférnych zariadení Ovládač (driver) je program, ktorý
preberá od programovej vrstvy nezávislej od zariadenia požiadavky na vykonanie určitých operácií
odovzdáva ich zariadeniu vo forme jemu zrozumiteľných príkazov.
obyčajne obsluhuje jeden typ zariadení ( triedu príbuzných zariadení)
v ovládači sú zabudované konkrétne údaje o zariadení
napr. koľko a akých registrov má radič zariadenia, aké príkazy rešpektuje a ešte celý rad údajov Skupina služieb, ktoré OS požaduje od periférnych zariadení Inicializácia zariadenia
Príprava a spustenie prenosu - pripravuje V/V požiadavku, formátuje dáta, prideľuje systémové bufre, nastavuje registre zariadenia, spúšťa operáciu a ukončuje prenos
Vytvorenie a zrušenie kanálu (open, close), najčastejšie u komunikačných zariadení
Nastavenie pozície pre čítanie dát (seek)
Riadiace služby - závislé od zariadenia, napr. odstránkovanie, previnutie magnetickej pásky a iné,
Obsluha prerušení zo zariadenia
Obsluha chybových stavov
Ukončenie prenosu Ovládače Služby ovládača
implementované v jeho vyššej vrstve
nižšia vrstva obsluhuje prerušenia, ktoré pochádzajú zo zariadenia.
Operačný systém požiada ovládač o službu
odovzdáva povel na štart činnost,
parametre požadovanej činnosti a dáta
Periférna operácia môže prebiehať
synchrónne
asynchrónne Synchrónny ovládač Prenos dát prebieha synchrónne z hľadiska procesu
proces požiada o prenos dát a kým sa tento ukončí, čaká.
návrat z ovládača až potom, keď sa príslušná periférna operácia ukončí.
Synchrónna koncepcia ovládačov sa hodne používa,
pretože sémantika funkcií, ktoré užívateľský program používa pre periférne operácie, je veľmi jednoduchá.
často v tele ovládača sa využívajú asynchrónne operácie, aj keď ovládač je synchrónny,
pretože asynchrónne operácie dávajú možnosť paralelnej práce procesora a periférií.
Synchrónne ovládače sú napr. v operačných systémoch MS-DOS a Unix. Asynchrónny ovládač Umožňuje programom požiadať o prenos v predstihu
kým periférna operácia prebieha, vykonávať inú prácu.
program musí mať možnosť čakať na dokončenie operácie.
Čakanie sa dá realizovať:
pomocou procedúry ovládača ,
určením dokončovacieho procesu, ktorý preberie riadenie po ukončení operácie. Dokončovací proces sa deklaruje pred zahájením operácie. Môže to byť len obsluha prerušenia.
Koniec operácie sa oznámi
nastavením príznaku v stavovom registri radiča
prerušením
Príklad asynchrónneho ovládača z Windows NT (fólia) Využitie vyrovnávacích pamäti Urýchľujú asynchrónne operácie
aplikáciu klasickej synchronizačnej úlohy producent - konzument
Napr. pri sekvenčnom čítaní dát z disku sa dáta môžu načítať dopredu do vyrovnávacej pamäte
Pri použití jednej vyrovnávacej pamäte
Sekvenčné spracovanie jednotlivých činností: najskôr do pamäte zapíšeme, potom z nej čítame.
Paralelné vykonanie zápisu a čítania sa dá uskutočniť
pri použití minimálne dvoch vyrovnávacích pamätí - obr.11.8., alebo cyklický front 11.9 Ovládače jednotlivých zariadení Systémové hodiny
generujú prerušenia v pravidelných intervaloch
pre zdieľanie času v preemptívnom multitaskingu
pre „zobudenie“ procesov, ktoré volali systémovú službu na „uspanie“ procesu na určitú dobu.
Ovládače jednotlivých zariadení Obrazovka
ovládač obrazovky je netypický v tom, že nepotrebuje dolnú polovicu, pretože nemá zariadenie, od ktorého by mohol čakať prerušenie
Horná polovica ovládača zapíše dáta do videopamäte,
buď priamo
alebo do bufra.
Prístup do videopamäte zdržuje procesor
Ovládač - len preberie od procesu požiadavky na výstup a vo vhodnej chvíli ich zobrazuje, bez toho že by proces na to čakal.
Horná polovica ovládača zaisťuje virtualizáciu obrazovky
aby k nej mali prístup všetky procesy, ktoré potrebujú vypisovať svoje údaje.
dva spôsoby virtualizácie obrazovky
každý proces môže mať svoju vlastnú obrazovku
ovládač môže zaistiť rozdelenie obrazovky do jednotlivých okien a každý proces má svoje okno pochádza od Apple Macintosh, najrozšírenejši Klávesnica
zbiera kódy stlačených klávesov,
transformuje ich na príslušné kódy a odovzdávať ich programu.
podieľa sa na konečnej úprave odovzdávaných kódov,
- napr. odstrániť zmazané znaky, pridať konce riadkov atď.
spôsob generovania echa
- okamžite alebo ako odozvu na spracovanie v počítači.
niekedy vyžaduje rozšírenie pre
- vkladanie národných znakov
- priraďuje kódy jednotlivým klávesom
- zaisťuje funkciu kontrolných klávesov. Ovládače jednotlivých zariadení Ovládače jednotlivých zariadení Tlačiareň
pre virtualizáciu tlačiarne sa využíva metóda spooling
Disk
veľmi dôležité zariadenie
štandardný ovládač
služby na čítanie a zápis
obsluha prerušení
ukážka v skriprtach
Magnetická páska – príklad drivera z VAX/VMS
Súborový systém Organizuje periférne pamäte
disky, pásky, CDROM, atd.
Dáta užívateľa je množina súborov
súbor je abstraktný dátový typ, obsahujúci
logickú množinu dát
informáciu o súbore
Súbory sú zoskupené v adresároch
umožňujú identifikáciu a použitie súboru (čítanie, modifikácia) Štruktúra súboru Pozostáva z množiny záznamov (records)
záznam
je najmenšie „zrno“ pri prístupe k dátam
môže byť 1 bajt alebo zložitejšia štruktúra
Súbor je buď
postupnosť záznamov alebo
mapa kľúčov k záznamom Atribúty súboru Typicky sa používa pri prístupe k informáciám a pri identifikácií súborov
Meno
Typ: napr. vykonateľný modul, ASCII text, ...
Umiestnenie: ukazovateľ na uloženie dát súboru
Rozmer
Ochrana: napr. read/write prístup
Čas & dátum: napr. tvorby, poslednej modifikácie apod. ,
User: “Vlastník” súboru Operácie, podporované OS Create & Delete
prideliť-zrušiť pridelenie priestoru pre súbor
pridať-vyhodiť z adresára
Open & Close
Read & Write & Nastavenie pozície
Iné operácie
append pre existujúci súbor a
copy súboru
skrátenie súboru Open & Close ... sa poskytujú
aby zredukovali prehľadávanie adresárov
Open
lokalizuje súbor v adresárovej štruktúre
ukladá túto info do OS tabuľky súborov (file table)
vracia deskriptor súboru
použiteľný pri read, write, apod.
Close
odstráni položku z tabuľky súborov Read & Write Závisia od štruktúry súboru
Sekvenčné operácie
OS udržiava ukazovateľ pozície v súbore
pri čítaní sa číta z tejto pozície
pri zápise za začína zapisovať od tejto pozície
Prestavenie pozície
zmení hodnotu ukazovateľa pozície v súbore
(seek) Zdieľanie súborov Viacero procesov môže pristupovať k súboru súčasne
pre čítanie
pre zápis
Viac čitateľov nie je problém
každý čitateľ má svoj ukazovateľ
Súbežný zápis je problém
bežné riešenia
OS poskytuje operáciu lock
procesy obsluhujú samy uzamknutie a odomknutie Zdieľanie súborov v Unix-e Proces môže otvoriť súbor
ak má pridelené prístupové práva
Unix udržiava 1 položku v tabuľke otvorených súborov pre každý otvorený súbor
udržiava počet odkazov, keď klesne na 0, odstráni položku
Procesy môžu zdieľať ukazovatele súborov
napr. po fork; používa sa v shelloch
udržiava počet odkazov, keď klesne na 0, odstráni položku PCBs File
Tables File Position
Tables Count Position File Open File
Table Príklad - Unix Súbory ako segmenty Súbory sa môžu mapovať do pamäte napr. OpenAsSegment (meno-súboru)
V systémoch s vitruálnou pamäťou
Niekoľko procesov môže zdieľať súbor
OS
udržiava 1 kópiu súboru a odkazy naň z rôznych procesov
to umožňuje aby ten istý súbor bol namapovaný do rôznych častí adresného priestoru procesov Typy súborov 3 možnosti
OS spracováva info o type súboru
napr. Unix executable to znamená, že je to binárny object modul
typ je označený v mene
typicky sa vyjadruje pomocou rozšírenia (napr. súbor.typ)
výhodné pre aplikácie
schované v súbore
napr. konvencia magických čísel (magic numbers) Média Pomocná pamäť
ukladá dáta po blokoch
sektory na disku
bloky obyčajne majú
pevnú dĺžku
OS je zodpovedný za
schovanie detailov o fyzickej štruktúre
pakovanie zánamov do blokov
obsluha záznamov, ktoré zaberajú viac ako 1 blok Prístup k súborom Viacej modelov
sekvenčný
napr. Unix seek (fid, offset, whence)
priamy
read/write (fid, record#, buf)
pomocou indexu
read/write (fid, record-key, buf) Kde sa robí mapovanie V OS
komplikuje OS
OS môže (eventuálne) byť efektívnejší
napr. v správe
Vloženo: 28.05.2009
Velikost: 1,03 MB
Komentáře
Tento materiál neobsahuje žádné komentáře.
Copyright 2025 unium.cz


