Szoftver
Szoftvernek nevezzük a számítógépre írt programokat (operációs rendszer, szövegszerkesztő, böngésző, stb.) és az ezekhez mellékelt írásos dokumentációkat. A szoftvereket programozók készítik, szellemi termékek, kézzel nem megfoghatóak (csupán a szoftvereket hordozó eszközöket – CD, DVD tudjuk megfogni). A szoftver a számítógépen futó programok összefoglaló neve, a hardver egységeket működtető-, és vezérlő programok összessége.
A program olyan egyszerű utasítások, műveletek logikus sorozata, amelyekkel a számítógépet irányítjuk. A program az utasításokat is és az adatokat is kettes számrendszerben leírt számokkal ábrázolja. Meghatározza, hogy a számítógép milyen módon végezzen el egy adott feladatot. A programokat háttértárolón tároljuk, ha éppen nem futnak. Ha egy programot elindítunk, az operációs rendszer a háttértárolóról betölti a programot a memóriába. A CPU számára átadja a program kezdetének címét, majd a program ezután átveszi a számítógép vezérlését és futni, működni kezd.
A szoftver teszi használhatóvá a számítógépet, biztosítják a hardver-egységek együttes működését, valamint a felhasználó kiszolgálását. Szoftvernek nevezzük azokat a szellemi termékeket, programokat, amelyek az adatfeldolgozó berendezések működtetéséhez szükségesek.
1. Rendszerszoftver: más néven operációs rendszer. Feladata a felhasználó és a hardver közötti kapcsolat megteremtése, a háttértárak, perifériák kezelése. Pl. DOS, Windows, Mac OS, NetWare.
2. Rendszerközeli szoftver: az operációs rendszer működését segítő programok. Az ún. segédprogramok körébe tartoznak a vírusirtók, tömörítők, lemezkarbantartó programok. Programfejlesztő eszközök a programozási nyelvek (Pascal, C), a programozási nyelvek fordítói, értelmezői és a hozzájuk kacsolódó fejlesztői környezet (Delphi).
3. Felhasználói szoftver: vannak általános célú szoftverek, mint például az Office programcsomag szoftverei, és készítenek egyedi célú szoftvereket is.
Az operációs rendszer olyan programok összessége, amelyek vezérlik az alkalmazásokat, elosztják, ütemezik az erőforrásokat, kezelik a hardvert és biztosítják a felhasználó és a számítógéprendszer közti kommunikációt.
RISC (Reduced Instruction Set Computer): A teljesítőképesség növelése érdekében a '80-as évek kezdetétől, az utasításkészlet egyszerűsítésével (kevés, viszonylag egyszerű címzési lehetőséggel rendelkező utasítás használatával) a számítógépek architektúráját is egyszerűsíteni lehetett, melynek következtében teljesítőképességük nőtt. Ezek az ún. csökkentett utasítás-készletű számítógépek.
1. Egyfelhasználós, egyfeladatos: az első operációs rendszerek (DOS).
2. Többfeladatos rendszer: egy vagy több felhasználó több feladatának végrehajtására képes egy időben (Windows). Ha egy felhasználó feladatait végzi egyszerre, akkor multitaskingról beszélünk. Amennyiben több felhasználó adatát képes látszólag egyszerre elvégezni, akkor multiprogramozásról van szó. Ez esetben a központi egységet valamilyen ütemezési stratégia szerint ciklikusan rendelik hozzá a programokhoz.
3. Kötegelt (batch) feldolgozású rendszerek: egymástól független munkák végrehajtásai igényeit fogadják. Ezekből parancskötegek (batch) hozhatók létre, melyek egymás után hajtódnak végre.
4. Valós idejű (real time) rendszerek: folyamatvezérlési feladatokra fejlesztették ki. A feladat elvégzését szigorú időkorlát köti.
1. Rendszermag (kernel): feladata a hardver minél jobb kihasználása, az alkalmazói alrendszer kiszolgálása, a kért program futtatása.
2. Alkalmazói programozási interfész (API): illesztési felület a kernel és az alkalmazási alrendszer között. Olyan szabályokat tartalmaz, melyek megadják, hogyan kell kérni a kerneltől szolgáltatásokat, illetve hogyan kaphatjuk meg a választ. Használja a rendszerhéj és a szervizprogramok is.
3. Rendszerhéj (shell): biztosítja az operációs rendszer és a felhasználó kapcsolatát. Grafikus (GUI) vagy parancssoros lehet.
4. Szervizprogramok (utility): adminisztratív, információs és üzemeltetési feladatokat végeznek el.
1. Folyamat (process): az operációs rendszer felügyelete alatt futó program.
2. Szál (thread): a folyamat önállóan végrehajtható része.
3. Feladat (task): felhasználói folyamatok - megkülönböztetve a rendszerfolyamatoktól.
4. Ütemező (sheduler): a rendszermag alkotóeleme, feladata a CPU folyamatokhoz rendelése, használatának ütemezése.
5. Preemptív (előjoggal rendelkező): szabadon gazdálkodhat a CPU-val az ütemező.
6. Többszálú operációs rendszer: ütemezője a folyamatok helyett szálakat kezel.
7. Eszközkezelők (driverek): általában az eszköz gyártója készíti el, telepítést igényelnek. Ennek során feljegyzés készül róluk egy rendszerállományba, melynek segítségével a rendszermagba épülnek be.
8. Plug&Play: a rendszer automatikusan felismeri az illesztett perifériát, és az illesztőprogram a kernelbe épül.
9. Broadcast: egy folyamatszál egyszerre több másiknak üzen.
10. Aszinkron üzenet-feldolgozás: a pufferbe helyezett üzenetek feldolgozása aszinkron, mert miután a küldő feladta, magára hagyja. A címzett a forgalomtól függően valamikor megkapja és válaszol rá, ha kell.
11. Szinkron üzenet-feldolgozás: a küldő ilyenkor felfüggeszti a futását, amíg a választ meg nem kapja.
12. Holtpont: ha két küldő egyszerre küld egymásnak szinkron üzenetet