Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Operációs rendszerek PMB1206 Dr. Bajalinov Erik NyE MII 2016-201* (ahol *=7,8,9) Félévi tematika Hét 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Dr. Bajalinov Erik
Előadás Bevezetés, történet, fajták, strukturák Processzusok, Szálak, IPC Ütemezés Deadlock es algoritmusok Memória kezelés 1 Memória kezelés 2 Input Output 1 Input Output 2 File rendszerek felépítése 1 File rendszerek felépítése 2 Biztonság, Registry Miltiprocesszoros rendszerek Op. rendszer Online frissítése Egyéb operációs rendszerek
Gyakorlat MS-DOS alapok MS-DOS parancsok jogosultságrendszer, chmod, attr fájlműveletek, bat-programozás I. fájlműveletek, bat-programozás II. fájlműveletek, bat-programozás III. MSVS- DLL technológia Zh1 s/w ismertetés: shed, XVI32 s/w ismertetés: awk, Cygwin, MSVS – Registry kezelés s/w ismertetés: vi, WinVi MSVS – állományok Web-ről Zh2
Operációs rendszerek (PMB1206)
1
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Javasolt irodalom 1. Andrew S. Tanenbaum, Albert S. Woodhull Operációs rendszerek - Tervezés és implementáció CD melléklet, Panem Könyvkiadó, 2007 2. Andrew S. Tanenbaum, Albert S. Woodhull Operating Systems Design and Implementation (3rd Edition) 3rd Edition Upper Saddle River, New Jersey 2006 3. Andrew S. Tanenbaum, Herbert Bos, Modern Operating Systems (4th Edition) Pearson, 2014 4. Mary S. Gorman, Stubbs Operációs rendszerek, Panem Könyvkiadó, 2003 5. William Stallings, Operating Systems: Internals and Design Principles (7th or 8th Edition), Prentice Hall;, 2011, 2014
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
2
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Bevezetés 1. Mi az operációs rendszer? 2. Korai rendszerek. 3. A kötegelt feldolgozás egyszerű rendszerei. (Simple Batch) 4. A kötegelt feldolgozás multiprogramozott rendszerei.
(Multiprogramming Batched Systems) 5. Időosztásos (time-sharing) rendszerek. 6. Személyi számítógépes rendszerek. 7. Párhuzamos rendszerek. 8. Elosztott rendszerek. 9. Valós idejű rendszerek.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
3
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Mi az operációs rendszer (English: operating system, OS)? Operációs rendszer: Egy program (rendszer), amely közvetítő szerepet játszik a számítógép felhasználója és a számítógép hardver között. (https://hu.wikipedia.org/wiki/Operációs_rendszer)
Operációs rendszer célok: 1. Felhasználói programok végrehajtása, a felhasználói feladatmegoldás megkönnyítése. 2. A számítógép rendszer használatának kényelmesebbé tétele. 3. A számítógép hardver kihasználásának hatékonyabbá tétele.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
4
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Hány operációs rendszer létezik? Nem teljes lista (csak nyilvános, nem „speciális” jellegűek): https://hu.wikipedia.org/wiki/Operációs_rendszerek_listá1ja https://en.wikipedia.org/wiki/List_of_operating_systems https://en.wikipedia.org/wiki/History_of_IBM_mainframe_operating_systems (+ Kylin, Gun data computer, Battery Computer System, Army Secure Operating System – ASOS, РАФОС, ДУБНА, Эльбрус, Агат, stb.)
Fő elemei Az operációs rendszerek alapvetően három részre bonthatók:
1. a felhasználói felület (a shell, amely lehet egy grafikus felület,vagy egy szöveges), 2. alacsony szintű segédprogramok és 3. a kernel (mag), amely közvetlenül a hardverrel áll kapcsolatban.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
5
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Számítógép rendszerek komponensei (séma) 1. Hardver – az alapvető számítási erőforrásokat nyújtja (CPU, operatív memória, I/O berendezések). 2. Operációs rendszer – koordinálja és vezérli a hardver erőforrások különböző felhasználók különböző alkalmazói programjai által történő használatát. 3. Alkalmazói programok – definiálják azt a módot, ahogyan az egyes rendszer-erőforrásokat a felhasználók számítási problémáinak megoldásához föl kell használni (fordítók, adatbázis kezelők, videó játékok, ügyviteli programok). 4. Felhasználók (emberek, gépek, más számítógépek).
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
6
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Számítógép rendszerek komponensei (séma)
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
7
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Vagy másképpen, részletesebben
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
8
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
A számítógép funkcionális felépítése
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
9
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
A számítógép funkcionális struktúrája
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
10
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Operációs rendszer definíciók (nézetfüggő) 1.Erőforrás allokáló/kiosztó – menedzseli és kiosztja a hardver erőforrásokat. 2.Felügyelő program – felügyeli a felhasználói programok végrehajtását, az I/O berendezések működését. 3.Kernel (mag) – az egyetlen program, amelyik "állandóan fut" (minden más program alkalmazói program).
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
11
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Korai rendszerek – "pucér" gépek (1945-1955), operációs rendszerek nélkül. MARK I. Hardver – relék, kommutációs panelek. A számítógépes rendszerek fejlődését erősen befolyásolta a második világháború (rakéták pályájának kiszámítása, kódolt szövegek megfejtése, stb.)
1939 ABC - az első digitális számítógép. Dr. John Astanasoff tervezte.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
12
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
1944 Mark I - az első amerikai általános célú számítógép, amelyet programok vezéreltek (Relékkel működött). A Harvard egyetemen tizenöt évig használták. 1945 MARK II - az első "bug". A Mark II fejlesztése közben a számítógép egyik reléje elromlott, és a kutatók egy agyonütött molylepkét találtak az érintkezői között. Azt tartják, hogy ez az eredete az angol "bug" (bogár, apró programhiba) és a debugging (hibakeresés) szakkifejezéseknek. 1945 ENIAC - Electronic Numeric Integrator and Computer. 30 tonna, 18 ezer rádiócső, programozáshoz 6000 kapcsolót kellett átállítani.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
13
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Tranzisztor alapú gépek (1955-1965), kötegelt feldolgozás (Simple Batch) I. Szerkezeti jellemzők
a nagyméretű gépet a konzolról irányítják, egy felhasználós rendszer, a programozó egyben operátor is, lyukszalagos és/vagy lyukkártyás adatbevitel és kivitel.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
14
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
EC-1020 (Szovjetunió)
IBM-360 (USA)
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
15
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Korai szoftver
assemblerek, betöltők (loader-ek), kapcsolat szerkesztők (linkage editor), közös szubrutin-könyvtárak, fordítók (compiler-ek), I/O berendezés kezelő rutinok (device driver-ek).
Biztonság - ? Drága erőforrások rossz hatékonyságú kihasználása alacsony CPU kihasználtság, jelentős mennyiségű "beállítási idő" (setup time).
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
16
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
A kötegelt feldolgozás rendszerei (Simple Batch) II. Professzionális operátor. Felhasználó saját alkalmazást készít és átadja operátornak. Rendszer rendelkezik egy/több kártyaolvasóval. Automatikus soros munka végrehajtása (job sequencing): a vezérlés egyik job-ról (a job vége után) automatikusan kerül át a következőre.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
17
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Az első elemi operációs rendszer megjelenése. Rezidens monitor (felügyelőprogram, schedular) működési elve: kezdetben a vezérlés a monitornál van, a vezérlés átadódik a job-nak, ha a job befejeződött a vezérlés vissza kerül a monitorhoz.
Egy tipikus job szerkezete és a számítógépes problémamegoldás folyamata, job-lépés (jobstep). Problémák: 1. Hogyan szerezhet a monitor tudomást az adott job természetéről (pl. FORTRAN vagy ASSEMBLY nyelvű-e?), vagy melyik programot kell végrehajtani? 2. Hogyan tudja a monitor megkülönböztetni egyik job-ot a másiktól? az adatot a programtól?
Megoldás: Vezérlő kártyák, pozicionálás, JCL-nyelv (Job Controlling Language) Speciális kártyák, amelyek megmondják a monitornak, mely programot kell futtatni ($JOB, $FTN, $RUN, $DATA, $END) Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
18
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Speciális karakterek különböztetik meg az adat és program kártyákat. (//, $, stb.)
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
19
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
A kötegelt feldolgozás rendszerei (Simple Batch) III. A rezidens monitor funkcionális részei Vezérlő kártya interpreter (értelmező) – felelős a vezérlőkártyák beolvasásáért és értelmezéséért. Betöltő (loader) – háttértárból betölti az egyes rendszer és felhasználói programokat az operatív memóriába. Készülék meghajtó programok (device drivers) – ismerik a rendszer az egyes I/O berendezéseinek tulajdonságait és működtetésük logikáját. Előny: csökken a beállítási idő (setup time)! Probléma: Alacsony teljesítmény – mivel az I/O és a CPU műveletek nem fedhetik át egymást (párhuzamosság!) és a kártyaolvasó nagyon lassú! Megoldás: Off-line elő- és utófeldolgozás – a job-okat egy másik (olcsóbb, egyszerűbb) gép segítségével szalagra másoljuk, ill. az eredményeket (mágneses) szalagra írjuk, majd a főgépen (mainframe) a több job-ból összeállított csomagot (batch) futatjuk.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
20
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
A kötegelt feldolgozás rendszerei (Simple Batch) IV. Még jobb megoldás: Spooling (SPOOL - Simultaneous Peripheral Operation On Line) IBM704, 1960.
Mialatt egy job végrehajtódik, az operációs rendszer: 1. beolvassa a következő job-ot a kártyaolvasóról a lemezre (job queue) 2. egy előző job által nyomtatni szánt adatokat lemezről printerre továbbítja, Ennek következtében drasztikusan növekszik a CPU kihasználtsága! Job pool – olyan adatszerkezet, amelynek segítségével az operációs rendszer kiválaszthatja a lemezről a következő job-ot. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
21
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
A kötegelt feldolgozás multiprogramozott rendszerei. (Multiprogramming Batched Systems) Alapelv néhány job (step) futtatható kódja állandóan az operatív memóriában helyezkedik el és készen áll arra, hogy „utasításokkal lássa el” a CPU-t. Vigyázat Nem „párhuzamosan futó” programokról van szó! Az operációs rendszer valamilyen stratégia szerint adja oda a CPU-t a sorban álló futásra kész programoknak.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
22
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
A multiprogramozás által az operációs rendszerekkel szemben támasztott követelmények: Az I/O-nak az operációs rendszer részéről történő teljes körű felügyelete. (adat- és programkód-védelem!) Az I/O-t az operációs rendszer nem egyszerűen támogatja, hanem végrehajtásához elkerülhetetlen. Hardver feltételek (kernel/supervisor mode, privileged operations) Memória gazdálkodás – a rendszernek fel kell osztania a memóriát a futó job-ok között. Hardver feltételek (kernel/supervisor mode, privileged operations, segmentation) CPU ütemezés – a rendszernek választani kell tudni a futásra kész job-ok között. Eszközökhöz való hozzárendelés. Nem „jut” minden job-nak printer, lemez, stb.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
23
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Időosztásos (TS - time-sharing) rendszerek – interaktivitás CTSS – Compatible Time Sharing System A kötegelt rendszerek hátránya: nincs interaktivitás! TS esetén a CPU váltakozva áll olyan job-oknak a rendelkezésére, amelyek a memóriában, vagy lemezen találhatók. (Természetesen a CPU-t csak olyan job kaphatja meg, amely éppen a memóriában van.) Egy job a lemezről a memóriába, ill. a memóriából a lemezre betölthető vagy kimenthető az ütemezési stratégiának (időosztás!) megfelelően. Új fogalom: folyam (process)! A rendszer és a felhasználó között on-line kommunikációt tételezünk fel; ha az operációs rendszer befejezi egy parancs végrehajtását, a következő „vezérlő utasítás”-t nem a kártyaolvasóról, hanem a felhasználó klaviatúrájáról várja. Egy – adatokat és utasításkódokat tároló – on-line fájl-rendszer (file system) kell, hogy a felhasználók rendelkezésére álljon.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
24
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Személyi számítógépes rendszerek. Személyi számítógépek (PC- Personal Computer) – a teljes számítógép rendszer egy egyszerű felhasználónak kizárólagos rendelkezésére áll. Tipikus konfigurációjú I/O berendezések – klaviatúra (keyboard), egér (mouse), képernyő kijelző (monitor, screen), kis(ebb) teljesítményű nyomtató (printer). Előtérben a felhasználó (személy) kényelme és felelőssége. Több esetben adaptál eredetileg nagygépes operációs rendszerekre kidolgozott információ technológiai megoldásokat (rendszer migráció). Példa: MULTICS (MIT,1965-70) → UNIX (Bell Labs, 1970) → POSIX szabvány (IEEE), ahol MILTICS – MULTiplexed Infromation and Computing Service, IEEE- Institute of Electrical and Electronics Engineers, UNIX- eredetileg UNICS, azaz UNIplexed Information and Computing System.
A felhasználó személy sokszor a számítógép kizárólagos tulajdonosa, felhasználója, és így nincs szüksége fejlett CPU kiszolgáló és adatvédő szolgáltatásokra. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
25
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Párhuzamos rendszerek / multiprocesszoros rendszerek. Egynél több (szoros kommunikációs kapcsolatban levő) CPU-val.
Szorosan kapcsolt/csatolt rendszerek – a processzorok közösen használják a memóriát és a rendszer órát. A kommunikáció a közös memória segítségével történik. Párhuzamos rendszerek előnyei:
Megnövelt átbocsátó képesség, magasabb teljesítmény Gazdaságosság Növekvő megbízhatóság
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
26
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Szimmetrikus multiprocesszálás Minden egyes processzor az operációs rendszer azonos változatát (másolatát) futtatja. Ezek egymással szükség szerint kommunikálhatnak. Sok processz futhat egyszerre teljesítménycsökkenés nélkül (I/O problémák, ütemezés)
Aszimmetrikus multiprocesszálás (master-slave modell) Minden egyes processzor a hozzárendelt specifikus feladatot (task) oldja meg. A futtatandó feladatot a mester határozza meg! Ezek a taskok egymással szükség szerint kommunikálhatnak. Nagyon nagy rendszerekben elterjedtebb megoldás.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
27
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Elosztott rendszerek – a számításokat több processzor között osztják meg. Lazán kapcsolt/csatolt rendszerek – a processzorok saját lokális memóriát és rendszer órát használnak. A kommunikáció nagy kapacitású adatvonalak (korábban telefonvonalak) segítségével történik. Új fogalmak: LAN (Local Area Network), site (hely, telek), node (csomópont).
Elosztott rendszerek előnyei: Erőforrás megosztás (printerek, adattárolók, stb.), Számítási teljesítmény növelés, Túlterhelés védelem (load sharing), Növekvő megbízhatóság, Kommunikáció (e-Mail, Web-alkalmazások, stb.)
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
28
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Valós idejű (real-time) rendszerek Gyakran úgy jelenik meg, mint valamilyen dedikált alkalmazás (pl. tudományos kísérlet támogatása, orvosi képfeldolgozás, ipari kontroll, kijelző rendszerek, forgalomirányítás, stb.) irányító-felügyelő rendszere. A „kiszolgálás” azonnal megkezdődik! Jól definiált, rögzített idejű korlátozások.
„Hard” ("merev" valós idejű) rendszerek. A másodlagos tár korlátozott, vagy teljesen hiányzik; az adatokat az operatív memóriában (RAM), vagy akár ROM-ban tárolják. Példa: robotizált gyártás (hegesztés, festés, szerelés).
„Szoft” ("puha" valós idejű) rendszerek. Korlátozott szolgáltató programok az ipari kontroll, a robotika területén. A fejlett operációs rendszer szolgáltatásokat igénylő alkalmazásoknál igen hasznosak. Példa: VxWorks, QNX multimédiás operációs rendszerek. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
29
Nyíregyházi Egyetem Matematika és Informatika Intézete
01
Beépített (built-in) rendszerek Korlátozott képességű speciális feladatok végrehajtására fejlesztett rendszerek. Sokszor JVM (Java Virtual Machine) és Java applet (kis program) alapúak. Területek: PDA – Personal Digital Assistant, GPS – Global Positioning System, Mobil telefonok / kommunikátorok / SMART eszközök, Videó- és fényképezőgépek, bankkártyák, iPOD/iPAD- féle eszközök, stb. Példák: PalmOS, Windows CE (Consumer Electronics), Android, stb.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
30