Softver računara i programski jezici

Download Report

Transcript Softver računara i programski jezici

Softver računara i programski
jezici
Ciljevi
1. Podjela softvera na tri osnovne kategorije i njihov
odnos
2. Odnos između algoritama i softvera
3. Faktori koji čine primjenu računara korisnim alatom
4. Uloga operativnog sistema u savremenim računarskim
sistemima
5. Pregled evolucije korisničkog interfejsa od ranih
mašinskih jezika programiranja do futurističkih
interfejsa tipa virtuelne realnosti
6. Pregled programskih jezika
Podjela softvera
• Program (softver):
 set instrukcija, nalazi se u memoriji
 promenjom programa računar može da mijenja posao koji
obavlja sa istim hardverom
Podjela softvera (2)
• Osnovne kategorije programa (softvera):
– Sistemski softver
 Upravlja resursima računara: hardver, memorija,
adrese, ...
 Preko interfejsa korisniku omogućava pristup
resursima
– Aplikativni softver
 Alat za pomoć računarskim korisnicima u rješavanju
problema iz realnog svijeta
– Kompajleri i drugi programi za prevođenje
 Omogućavaju programerima kreiranje novog softvera
Operativni sistemi
•
•
•
•
Šta je operativni sistem (OS)?
Zašto postoje OS?
Šta su osnovni zadaci i funkcije OS?
Šta sve obuhvata OS?
Operativni sistemi (2)
User 1
User 2
User n
Sistem i aplikacioni programi
Operativni sistem
Hardver
• OS je skup programa koji služi kao posrednik
između korisnika, odnosno njegovih programa, i
računarskog hardvera
Zašto postoje OS?
• OS postoje jer su oni razuman način da se riješi
problem izgradnje upotrebljivog računarskog
sistema
• Aplikativni programi obuhvataju neke zajedničke
operacije, kao što su operacije sa U/I uređajima
• Upravo te zajedničke operacije upravljanja
hardverskim resursima računara skupljene na
jedno mjesto i pogodne za upotrebu od strane
više programa čine OS
Šta radi OS?
•
Upravlja CPU aktivnostima
•
Upravlja memorijom (realnom i virtuelnom)
•
Kontroliše ulaz i izlaz podataka
•
Obezbjeđuje interfejse sa magistralom i
periferijskim uređajima
•
Obezbjeđuje interfejs sa fajl sistemom
Osnovni zadaci OS
– Učiniti računarski sistem pogodnim za upotrebu:
lakše sa njim nego bez njega
– Postići efikasnost računarskog sistema: posebno
važno za velike, serverske sisteme koje dijeli
mnogo korisnika
– Kontrola i alokacija (zauzeće) memorije, prioritetni
sistemski pozivi, kontrola ulazno/izlaznih uređaja,
podrška umrežavanju, upravljanje fajlovima itd...
– Zaštita računarskih resursa od nepravilne
upotrebe ili zloupotrebe
Šta sve obuhvata OS?
• Različita shvatanja opsega operativnih sistema:
– Tradicionalno shvatanje:
• kernel (jezgro) – program koji obavlja osnovne funkcije OS i uvijek
se nalazi u memoriji
• skup uslužnih sistemskih programa
• shell (školjka) – komandni ili grafički korisnički interfejs (GUI)
prema funkcijama OS
– Moderno shvatanje – sve ovo i još:
•
•
•
•
luksuzan GUI
skup uslužnih aplikativnih programa
programi za Internet usluge
...
– “Sve što proizvođač isporuči pod tim nazivom”.
• Primjer: Microsoft Windows
Ko ima OS?
• Personalni računari, Internet serveri, mobilni
telefoni, muzički player-i, ruteri, svičevi, wireless
access points, konzole za igru, digitalne kamere, ...
Interakcija sa OS
Interaktivnost korisnika sa OS obezbjeđuje:
– Interfejs iz komandne linije (DOS)
– Grafički interfejs – GUI (Windows Desktop
PC)
Korisnički interfejs
• Disk operativni sistemi
– MS-DOS - u kome se
interakcija korisnika obavlja
karakternim znacima
(slovima, brojevima,
simbolima)
– Interfejs preko komandne
linije (komande se
ukucavaju)
– Interfejsi u formi menija komande se biraju iz lista
prikazanih na ekranu (menu
driven interface)
Grafički korisnički interfejs
• (GUI – Graphical User Interface)
– Operativni sistem u kome korisnik vrši interakciju sa
računarom pomoću miša
– Mac OS, Windows
Pregled operativnih sistema
•
•
•
•
•
•
MS-DOS
Windows 3.1(?)/3.11/95/98
Windows NT 3.51/4.0
Windows 2000/XP/Vista
Unix/Linux
Macintosh
DOS
•
•
•
•
•
•
•
•
•
1981. – v 1.0
1982. – v 1.25
1983. – v 2.0
1984. – v 3.0 za PC & v3.1 za mreže
1988. – v 4.0
1991. – v 5.0
1993. – v 6.0 & v 6.2
1994. – v 6.21 & v 6.22
1995. – pokrenuo rane Windows OS
Windows NT
– Objavljen 1994.
– Dodato više bezbjednosnih karakteristika
– Microsoft-ov izbor za visoko-zahtjevne krajnje sisteme
– Mnogo elastičnije i lakše se oporavlja fajl sistem
– Isti GUI kao Windows 3.1 i 3.11
– Na bazi novog kernela
– Nije imao potrebu za instaliranim DOS
Windows NT (2)
Windows XP
• Objavljen oktobra 2001.
–
–
–
–
–
–
Zamijenio Windows 9x i NT
Zasnovan na NT kernelu
Proizveden u Home i Professional verzijama
Profesionalna verzija podržava EFS – Encrypting File Sistem
64-bitna verzija na raspolaganju
Specijalizovane verzije
• Media Center, Tablet PC
– Poboljšana bezbjednost
• Ugrađen Firewall
Microsoft Vista
– Novi GUI (Aero)
• 3D izgled i osjećaj
– 5 (pet) “verzija”
• Home Basic, Home Premium,
Business, Enterprise, Ultimate
– Značajne bezbjednosne
karakteristike
• BitLocker i Drive Encryption
(samo Ultimate verzija)
– može se šifrovati cijeli
disk, osim za bootloader
– kombinacija hardvera i
softvera
– Cijeli disk može potpuno
da se posveti glavnoj ploči
Windows Server 2003
• Objavljen aprila 2003.
– Standard, Enterprise, Datacenter, Web, Small
Business Server verzije
– Ugradio karakteristike XP
– Mnogo bezbjedniji, podrazumijevano
– Baza Microsoft-ove filozofije “povjerljivog
računara”
Windows CE/Pocket PC
• Windows embedded
• Namijenjen za tržište džepnih
i priručnih računara
• Ima izgled i osjećaj 95 i NT
• V1.0 objavljena novembra
1996.
• V2.0 objavljena rane 1998.
• V3.0 objavljena juna 2000.
• Poznat kao Pocket PC –
septembra 2001.
Unix
• Primarno se nalazio u naučnom ili
istraživačkom okruženju
• Postoje brojne popularne verzije
• Ovo je više-korisnički (multiuser) OS za više
istovremenih zadataka (multitasking)
Unix (2)
• Multitasking
– Više poslova (procesa) dijele isti resurs za obradu
(kao što je CPU)
– Raspoređivač – dispečer (sheduler) vremena za
izvršenje jednog posla
– Red čekanja na izvršenje, sa prioritetom
– Privid paralelizma
Unix GUI
Linux
•
•
•
•
•
softver sa otvorenim kodom
Linus Torvalds - autor Linux operativnog sistema
OS – osnovni skup programa koji upravljaju
radom računara
Linux OS je jedan od najpoznatijih softvera sa
otvorenim kodom (open source software)
GPL – General Public Licence
Danas Linux pokreće Web servere, filmske i
animacione radne stanice, superkompjutere itd.
Linux (2)
– Postoje brojne verzije tzv. “distribucije”
– Verzije:
•
•
•
•
Redhat
Debian
Susse
Mandrak i mnoge druge
– Komandna linija sa različitim GUI koji ih prekrivaju
– Ranije verzije nisu lake za prosječnog korisnika
Linux (3)
• Prednosti
–
–
–
–
–
Niska cijena i velika stabilnost
Jeftiniji zahtijevani hardver
Imun na većinu virusa, trojanaca i Windows ranjivosti
Radi na velikom broju različitih CPU-a
Čita većinu fajl sistema i može ih instalirati kao “samo za
čitanje” (read only)
• Nedostaci
–
–
–
–
Teži za korišćenje za prosječne korisnike
Manje softverskih aplikacija na raspolaganju
Manje sistemskih eksperata i administratora
Nije univerzalno podržan od glavnih snabdjevača
Apple Macintosh
•
•
•
–
–
Objavljen u januaru 1980.
User-friendly alternativa
100% čisti GUI:
Nema komandi za pamćenje
Koristi miša za usmjeri-i-klikni
operaciju
– Brojni OS ažurirani tokom proteklih
godina
– Tekući OS (OS X) baziran na
Unix/Linux
Apple Machintosh (2)
Osnovna ideja
•Neki računari posjeduju OS u potpunosti u ROM-u
•Drugi računari samo jednim dijelom imaju OS u ROM-u
– Ostatak operativnog sistema se učitava u memoriju kroz
proces koji se zove booting, koji se dešava svaki put kada se
računar uključi (firmware software)
Više OS
Više butabilni OS:
– Omogućavaju korisniku da imaju više od jednog
OS na istom računaru
– Kod startovanja, operater selektuje koji instalirani
OS će koristiti
– Samo jedan OS u isto vrijeme može raditi osim u
sistemu virtuelnih mašina
– USLOV: svaki OS na posebnoj particiji!!
Funkcije OS
• Operativni sistem obavlja:
– Komunikaciju sa periferijama
– Koordinira konkurentsko procesiranje poslova multitasking
– Monitorisanje resursa, evidencija i bezbjednost
– Upravljanje programima i podacima
– Koordinira mrežnu komunikaciju
Funkcije OS (2)
– Upravljanje memorijom i virtual memory:
 virtualna ekstenzija RAM
 kada se RAM napuni, podaci se prenose “swapped” na
i sa HD sa specijalnim fajlom
 ova oblast HD naziva se swap fajl, ili page fajl
 veličinu, lokaciju itd., konfigurišu korisnici
Program
• Skup instrukcija koje upravljaju hardverom na način da se
obrade zahtjevi korisnika
• Program se piše (sastavlja) u koracima
– Svaki korak rješava po jedan deo problema
• Razvoj programa:
– Rješavanje problema kroz niz koraka (opis prirodnim jezikom)
– Pisanje programa u “pseudo” jeziku
– Implementacija na odgovarajućem programskom jeziku
• Agilne metode proizvodnje programa - samo sa osnovnim
funkcionalnostima
• Bugs – greške u softveru, zbog kojih program ne daje
očekivane izlaze (krpljenja - “pečovanja” u toku eksploatacije)
Program i algoritam
• Računar obavlja “jednostavne” aritmetičke i logičke operacije
nad podacima
• Navedene operacije se izvode brzo i tačno
• Program: skup instrukcija u čijoj osnovi su jednostavne
aritmetičke i logičke operacija
• Algoritam: skup procedura korak po korak kojima se rješava
određeni posao
• Posao programera:
–
–
–
–
Algoritam realizovati u nekom programskom jeziku
Dodati detalje, komentare i sl.
Definisati procedure testiranja
Ispraviti eventualne greške u softveru - debugging
Algoritam
Algoritam (2)
Jezik računara
• Mašinski jezik: numerički kodovi koji reprezentuju instrukcije
• Asembleri
– ADD, SUB, INC, MOV, AND, XOR, ...
• Jezici visokog nivoa: nalaze se između mašinskog jezika i
prirodnog ljudskog jezika C, C++, Java, Visual Basic, ...
• Kompajleri prevode jezik visokog nivoa u mašinski jezik
• Grafički programi, CASE alati, ... koriste se na jednostavan
način, da bi se zaobišla kompleksna sintaksa programskih
jezika
Jezik računara (2)
• Source code – napisan u nekom programskom
jeziku
• Izvršni (executable) program – dobija se
prevođenjem glavnog programa i linkovanjem
sa prevedenim drugim programima
• Programiranje - software development
• C source kôd:
Aplikativni softver
• Korisničke aplikacije
• Softver za vođenje računovodstva, grafički programi,
multimedijalni alati, edukacija, igre, ...
• Softverski proizvodi se razliku od drugih proizvoda:
•
•
•
•
•
•
Dokumentacija,
Upgrading (nadogradnja)
Kompatibilnost
Disclaimers (odricanje od odgovornosti)
Licenciranje
Distribucija
Dokumentacija
• Štampana dokumenta (instalaciju, uputstva itd.)
• Mnoge softverske kompanije su zamijenile štampana
dokumenta sa:
–
–
–
–
Tutorial manual
Reference manual
Help fajlovi
On-line helpovi
• Većina programa se lako koristi (standardi)
• Advanced features – zahtijevaju uputstva
Upgrading
• Proizvođači popravljaju svoje proizvode, uklanjaju
bagove i dodaju nove mogućnosti (karakteristike features)
• Novi programi svake godine
• Korisnici mogu transformisati dati program u novu
verziju (upgrade) plaćanjem odgovarajuće takse
proizvođaču datog softvera
• Manje izmjene se označavaju decimalnom tačkom
• Veće izmjene se označavaju sljedećim brojem
• Nestandardne oznake npr. kod Windows verzija OS
Kompatibilnost
– Obezbjeđuje da softver korektno radi na datom
hardveru, operativnom sistemu i periferijama
– Programi napisani za jednu vrstu računara mogu
da ne rade na drugom tipu računara
Odricanje od odgovornosti
• Proizvođači softvera ograničavaju svoju odgovornost
za moguće probleme u funkcionisanju softvera,
prodajući ga “kao što jeste”
Licenciranje
• Licenciranje: komercijalni softver je po pravilu zaštićen
autorskim pravima, usljed čega se zabranjuje nelegalno
kopiranje u cilju daljnje distribucije
– Ne kupuje se program već softverske licence
– Volume licence
• Copyright – zaštićen softver koji se ne smije nelegalno
kopirati
• Physically copy protection – zaštita diskova i uređaja od
nelegalnog korišćenja softvera
Distribucija
• Distribucija: softver se distribuira preko
– Direktne prodaje
– Maloprodajnih prodavnica
– Kataloških porudžbina poštom, demo verzije
– Web sajtova, ...
• Nisu svi softveri zaštićeni autorskim pravima
– Public domain software - free
– Shareware – dozvoljava se testiranje, vremenski
ograničeno, sa ograničenim mogućnostima i sl.
Primjena
• Zašto se koriste aplikacije – aplikativni programi?
• Najuspešniji aplikativni programi posjeduju dva svojstva:
• izgrađeni su oko vizuelnih metafora alata iz realnog svijeta
• proširuju ljudske mogućnosti u nekom pogledu
Programski paketi
• Integrisani softverski paketi:
• Obuhvataju više aplikacija dizajniranih tako da
rade zajedno
• Omogućavaju automatsko prebacivanje podataka
između pojedinih modula
• Cijena im je niža u odnosu na kupovinu
pojedinačnih aplikacija
• Koristi se isti tip komandi u svakom od modula
Primer: Microsoft Office 2003/7
Programski paketi (2)
• Popularni integrisani paketi, AppleWorks i Microsoft
Works, po pravilu uključuju:
• Procesiranje teksta
• Baze podataka
• Tabelarna obrada
• Grafika
• Telekomunikacije
• Moduli za upravljanje personalnim informacijama (Personal
information management - PIM)
Programski paketi (3)
• Paketi više aplikativnih softvera mogu se prodavati i
kao zasebni programi
• Microsoft Office System - najpopularniji aplikativni
paket obuhvata:
–
–
–
–
–
Word (program za obradu teksta)
Excel (tabelarni program)
PowerPoint (program za grafičke prezentacije)
Access (baze podataka)
Outlook (program za upravljanje personalnim
informacijama i e-mailom)
Specijalne primjene
• Vertikalno tržište i specijalizovani softver (custom
applications)
• Cijena ovog softvera je mnogo veća od aplikacija
namijenjenih masovnom tržištu
• Softver prilagođen datom poslu:
•
•
•
•
•
•
Medicinski računi
Bibliotečki katalozi
Softver za referenciranje u pravnim stvarima
Upravljanje restoranima
Softverske potrebe pojedinačnih klijenata
Sistemi za upravljanje sadržajem (CMS)....
Utility i drajveri
• Korisnički programi (Utility)
– Služe kao alati za održavanje sistema i ispravljanje svega
onoga šta operativni sistem nije automatski uradio
– Pomoć korisnicima:
• Kopira fajlove između memorijskih jedinica
• Popravlja oštećene fajlove na disku
• Prevodi fajlove u formu pogodnu za čitanje pomoću nekih drugih
programa
• Štiti od virusa i drugih potencijalno opasnih programa
• Komprimuje fajlove tako da zauzimaju manje prostora na disku
• Obavlja i druge važne zadatke
Drajveri
• Drajveri uređaja
– Mali programi koji omogućavaju ulazno-izlaznim
jedinicama, kao što su tastatura, miš, štampač itd,
da komuniciraju sa računarom
– Uključeni su ili u operativni sistem ili su pridodati
uz periferijske jedinice na disketi ili CD
Upravljanje datotekama
• Fajlovi mogu biti razbacani po sistemu, što upravljanje
čini teškim
• Jedno od rešenja je logička organizacija fajlova
• I Windows i Mac OS podržavaju pojam zajedničkih
sistemskih foldera sa samoobjašnjavajućim imenima:
– My Documents (Dokumenta)
– My Pictures (Slike)
– My Music (Muzika)