10. tétel
operációs rendszerek,
alkalmazói szoftverek,
fejlesztői rendszerek, integrált fejlesztői környezet
licenc, jogtiszta szoftver, shareware, freeware
Operációs rendszerek
Az operációs rendszer egy olyan programcsomag, amely segít kapcsolatot teremteni a gép és a felhasználók között, lehetővé teszi a programok írását, futtatását, és segít abban, hogy a gép erőforrásait (CPU, RAM, HDD, stb.) a lehető legjobban kihasználjuk..
Az első operációs rendszerek a számítógépek megjelenése után 20 évvel terjedtek el. Az első gépeken nem volt operációs rendszer, vagy nagyrészt hardver elemekből állt.
Feladatai:
Osztályozás:
Egyfelhasználós rendszerek:
Tipikus képviselője az MSDOS volt, de a régi 8 bites gépek operációs rendszere (C 64, ZX Spektrum) is ilyen volt.
A gépet egyidőben csak egy felhasználó tudja használni. A felhasználói interfész általában interaktív jellegű, a régebbi rendszerekre viszont a kötegelt feldolgozású volt.
Többfelhasználós rendszerek:
Olyan operációs rendszerek, amelyek lehetővé teszik azt, hogy ugyanazt a gépet több felhasználó használhassa, terminálokon keresztül. (terminál= képernyő + billentyűzet együttese)
A gépen tehát több program is fut egyidőben, ez a multiprogramozás.
Kötegelt feldolgozás
Már nagyon elavult feldolgozási módszer. A felhasználótól egy, a számítógépet működtető személy (az operátor) begyűjti az elvégzendő feladatokat (=kötegelés), majd ezeket egymás után, lefuttatja a gépen. A felhasználók egy későbbi időpontban megkapják az eredményeket.
Ennek a feldolgozási módnak egy automatizált maradványa az MS-DOS-ban batch fájl, amely operációs rendszer szintű parancsok feldolgozására való, továbbá a UNIX script fájljai is ilyen jellegűek.
Interaktív feldolgozás:
A felhasználó minden parancsra azonnali választ kap a rendszertől. Többfelhasználós rendszerekben ez az időosztásos üzemmódban jelent meg ez a lehetőség. A mai időosztásos rendszerek képesek a kötegelt feldolgozásra is.
Valósidejű feldolgozás
Speciális célokra fejlesztették ki. a valós idejű (real-time) operációs rendszereket. Az adatok a számítógépekbe érzékelőkön keresztül érkeznek. Az operációs rendszerek ezeknek az adatoknak a felhasználásával eldönti, hogy beavatkozik-e a rendszerbe, és ha igen, milyen módon.
Különböző ipari folyamatokban, pl. atomerőművekben, űrhajók irányítására alkalmaznak valós idejű rendszereket.
Monoprogramozás
Olyan operációs rendszer, amely egyidőben csak egy program futását teszi lehetővé.
Multiprogramozás
A program végrehajtása során gyakran szükség van valamelyik periféria közreműködésére. A legtöbb periféria intelligens vezérlőegységgel rendelkezik, pl. a lemezvezérlő egységnek saját processzora van, amely önállóan végzi a feladatát: a megfelelő sávra pozicionálja az író-olvasó fejet, vezérli az adatátvitelt a lemezegység tárolójába, stb.
A CPU lényegesen gyorsabb, mint bármelyik periféria. Ezért amíg a periféria dolgozna, a processzor tétlenül várakozna. Ennek a feloldására találták ki a multiprogramozást.
Multiprogramozás esetén általában több program is a memóriában van, közülük az aktívat, amelyik éppen fut, processznek nevezzük.
A multiprogramozás lényege: amikor a periféria dolgozik, a CPU nem várakozik tétlenül, hanem átkapcsolegy másik folyamat végrehajtására.
Az időosztásos rendszer:
Sok esetben igény van arra, hogy egyszerre több felhasználó párbeszédes kapcsolatban legyen a számítógéppel. Ennek megvalósítására találták ki az időosztásos rendszert. (time sharing).
Az operációs rendszer nagyon rövid, néhány századmásodperces időszeleteket oszt ki az egyes folyamatoknak.
A számítógép ennyi idő alatt nagyon sok műveletet képes elvégezni, így minden felhasználó úgy érzi, hogy a gép csak vele "foglalkozik". Ha a felhasználó beír egy parancsot, és úgy érzi, hogy a válasz azonnal megjelenik a képernyőn. Amíg a parancsot begépeli, a CPU az időszeletek százezreit osztja ki.
Ha egyidőben túl sok felhasználó dolgozik, a gép túlterheltté válik. Ilyenkor a válaszideje erősen megnőhet.
Prioritásos rendszer (prioritás=fontosság)
Ebben a rendszerben a feladatokat valamilyen szempont szerint fontossági sorrendbe kell állítani. Ezután a felállított sorrend szerint osztja szét a rendszer a CPU idejét az egyes folyamatok között. A fontosságot (prioritást) egy egész számmal jelöljük.
A prioritási szám függhet például a folyamat periféria- illetve számítási igényétől, a programozó személyétől (hogy mennyire nagy góré az illető), stb.
Ha érkezik egy magasabb prioritású folyamat az éppen futónál, akkor megszakítják a futó folyamatot, és az új, magasabb prioritású folyamat kapja meg a CPU-t.
Ha egy kevésbé fontos folyamatot túl sokáig várakoztatnak, mivel mindig fontosabb folyamatok érkeznek, akkor ez a folyamat sohase jutna a CPU-hoz.
Ennek elkerülésére vezették be az öregedés fogalmát. A sokáig várakozó program öregedési száma a várakozás miatt megnő, és a "nagyon öreg" folyamatok prioritási száma növekszik. Így egy idő után ez a folyamat is fontossá válik, és végre a CPU ezt is feldolgozza.
Ezután visszakapja az eredeti prioritási számát, és megint hosszú ideig várakozik, amíg rá kerül a sor...
A multitasking
Ez tulajdonképpen egy időosztásos rendszer, de itt az időszeleteket szintén több program között osztja szét a rendszer, de mindegyik programot ugyanaz a felhasználó indítja el, ugyanazon a terminálon! Az egyes programokat itt task-nak nevezik. (task=feladat).
Kétféle multitasking létezik:
Az Ms-DOS nem képes a multitaskingra.
A UNIX, Windows NT illetve a LINUX többfelhasználós, többfeladatos, időosztásos operációs rendszerek
Programfejlesztői környezetek.
Ez egy olyan szoftvercsomag, amely új szoftverek, programok fejlesztését, nyomkövetését, javítását, fordítását és tesztelését teszi lehetővé
A programfejlesztői környezeteket az operációs rendszerrel részeként vagy attól függetlenül, különálló szoftvercsomagként forgalmazzák. Például a UNIX részét képezi egy C nyelvet használó fejlesztői környezet. A régi MS-DOS operációs rendszer részét képezte egy BASIC nyelvű fejlesztői környezet, a Quick Basic
A CPU, vagyis a számítógép csak a gépi kódú programokat "érti meg", vagyis csak a gépi kódban megírt programot tudja azonnal végrehajtani.
A gépi kódban minden műveletet egy számkóddal jelölünk, így a gépi kódú program számok sorozatából áll.
Noha igen gyors programok írására alkalmas, a gépi kód a felhasználók számára igen nehezen átlátható, ezért igen sok hiba forrása lehet. A nehéz átláthatóság miatt a hibakeresés nagyon nehézkes.
Ezért kidolgoztak olyan köztes nyelveket, amelyek közelebb állnak az emberi nyelvhez, ugyanakkor nagyon pontos nyelvtanuk révén alkalmasak arra, hogy az ilyen nyelven kiadott utasításokat egyértelműen gépi kódra lehesssen lefordítani. Az ilyen nyelveket magasszintű programozási nyelveknek nevezzük. Példa magasszintű nyelvekre:
Egy programfejlesztői környezet a következő részekből áll:
Ezek a részek nem mindig választhatók külön egymástól, rendszerint egybe vannak építve. Példa: a Turbo Pascal vagy a Quick Basic fejlesztői környezet.
A modern fejlesztői környezetek előre megírt kódrészlet-gyűjteménnyel, úgynevezett programkönyvtárral rendelkeznek.
A felhasználónak ezért nem szükséges például egy ablak vagy egy nyomógomb viselkedését vezérlő programot megírni, mivel ezeket készen kapja. Csak azzal kell foglalkoznia, hogy milyen események történjenek az ablakban, illetve mi történjen az adott gomb lenyomásakor.
Az olyan fejlesztői környezeteket, amelyekben az egyes grafikus párbeszédeszközöket készen kapjuk (ablakok, legördülő listák, nyomógombok, rádiógombok, jelölönégyzetek, stb) negyedik generációs programfejlesztő eszközöknek nevezzük. Az ilyen környezetek általtámogatott programozási nyelvek a negyedik generációs programnyelvek . (rövidítés: 4GL= 4th generation languages).Ilyen fejlesztői környezetek a Delphi, Kylix, Visual Basic, C++Builder, stb.
Szoftverfelhasználással kapcsolatos tudnivalók:
A szoftver egy különleges helyzetben levő termék, amelynek a fejlesztése nem kis feladat. Éppen ezért, amennyiben nem ingyenesek, a szoftvereket nem szabad engedély vagy megvásárlás nélkül használni, lemásolni, az illegális másolatot terjeszteni , ebből kereskedelmi hasznot húzni.
Licencszerződés
Olyan megállapodás, amelyben a szerzői jogok tulajdonosa meghatározza a vársárlónak a szoftver használatára vonatkozó feltételeket.
Shareware
Egy nagyobb tudású szoftver időkorátozott, rendszerint lebutított változata. Ha megvásárolunk, megkapjuk a teljes értékű, időkorlát nélküli változatot.
Freeware
Olyan szoftver, amely szabadon felhasználható és terjeszthető, amennyiben elismerjük a gyártó céget mint a termék egyedüli létrehozóját. Ez azt jelenti, hogy a programot nem adhatjuk tovább, mint saját termékünket, és nem is változtathatjuk meg.A szerzői jogok a freeware-re is érvényesek. A freeware programok általában demo verziók.
Jogtiszta szoftver
Hivatalos forgalmazótól vásárolt szoftver, amelyet a licencszerződésben foglaltak szerint használunk fel. A jogtiszta szoftverre a gyártók garanciát vállalnak.
Update (frissítés)
A már megvásárolt szoftver új verziójának megvétele esetén kedvezményes áron jutunk a frissített változathoz, ami kiegészíti a korábbi verziót az újabb verzió képességeivel.