Professional Documents
Culture Documents
Sistemi Laboratorijska Vezba 1
Sistemi Laboratorijska Vezba 1
Nerecenzirani materijal
UVOD
Cilj prvog dela ove vebe je da se kroz niz primera obnovi znanje iz programskog jezika C kroz
okruenje Code::Blocks. Navedeno orkuenje se moe preuzeti (pri tome treba da se vodi rauna
da se preuzme verzija sa kompajlerom npr. codeblocks-16.01mingw-setup.exe) sa stranice
http://www.codeblocks.org/downloads/26
Osnove programskog jezika C su izloene u formi koda, u okviru Code::Blocks projekta OSLab01a
dok se prevod knjige Programski jezik C autora Dennis M. Ritchie Brian W. Keringhan (i samim
tim detaljna analiza programskog jezika C nalazi u okviru arhive
www.tfzr.uns.ac.rs/Content/files/1/skripta%20za%20vezbe.zip
Cilj drugog dela ove vebe je da se studenti upoznaju sa BAT skriptama i ostnovnom strukturom
istih. Bie razmotreni pozivi osnovnih komandi BAT fajlova kao to su skokovi na labele, echo,
korisniki unos i dr, kao i pozivi dijaloga Windows operativnog sistema. Bie oformljen
jednostavni BAT meni putem kojeg e se pozivati dijalozi koji se mogu pronai unutar Control
Panel-a Windows operativnog sistema stoga i naziv Very Basic Control Panel.
1. Nakon preuzimanja Code::Blocks razvojnog okruenja, instalacije istog i izbora GNU GCC
kao podrazumevajueg (default) kompajlera razvojno okruenje je potrebno pokrenuti.
2. Klikom na meni File, izabrati stavku New, i zatim stavku Project iz padajueg podmenija
kao to je navedeno prikazano na slici broj 1.
1
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
3. Pojavljuje se dijalog New from template gde se bira Console application kao vrsta
projekta izborom odgovarajue ikonice i klikom na taster Go. Navedeno je prikazano na
slici broj 2.
4. Zatim je potrebno izabrati jezik u kojem se pie konzolna C aplikacija. Poto se vebe iz
predmeta Operativni sistemi zasnivaju na strukturnom ANSI C programskom jeziku,
potrebno je odabrati C i kliknuti na taster Next. Navedeno je prikazano na slici broj 3.
2
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
5. U sledeem koraku potrebno je imenovati projekat. Kada se program kompajlira exe fajl
(izvrni fajl) e nositi navedeno ime. Ovde je, u formi test projekta, potrebno uneti
OSLab01 i kliknuti na taster Next. Navedeno je prikazano na slici broj 4.
3
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
5
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
#include <stdio.h>
#include <stdlib.h>
// Globalna promenljiva
int globalniInteger = 10;
int main()
{
// varijable - promenljive (podrazumeva se signed, osim ako se ne navede
unsigned)
// SVAKA promenljiva ima TIP i NAZIV
// OBNOVITI STANDARDNE TIPOVE PODATAKA - kako se zovu, domen, raspon vrednosti
itd
// Sledee promenljive su DEFINISANE
// DEFINISANE promenljive pored svog TIPA i IMENA imaju i VREDNOST
int celobrojnaVrednostDEF = 5;
double realniBrojDEF = 5.2;
char karakterDEF = 'a';
6
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
int *p;
p=&celobrojnaVrednostDEF;
// if - then grananje
if (celobrojnaVrednostDEF==5) printf("Da\n");
// if - then - else grananje
if (realniBrojDEF==5) printf("Da\n"); else printf("Ne\n");
// visestruko grananje
switch(celobrojnaVrednostDEF)
{
case 1:
{
printf("1");
break;
}
case 2:
{
printf("2");
break;
}
case 3:
{
printf("3");
break;
}
case 4:
{
printf("4");
break;
}
7
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
case 5:
{
printf("5");
break;
}
return 0;
}
Zadatak: Napisati program koji za unetu vrednost kilovat asova ispisuje u kojoj se zoni korisnik
nalazi. Ukoliko je potronja manja od 250KWH treba ispisati "Zelena", ako je potronja vea ili
jednaka 250 a manja od 500KWH treba ispisati "Zuta", dok za potronje koje su vee ili jednake
500 KWH treba ispisati "Crvena".
#include <stdio.h>
#include <stdlib.h>
int main()
{
// definicija promenljive
double kwh = 0;
printf("Unesite potrosnju u kwh: ");
// unos vrednosti
scanf("%lf",&kwh);
return 0;
}
Zadatak: Napisati program putem kojeg se unosi proizvoljni niz celih brojeva, zatim se taj niz
sortira od najmanjeg ka najveeg i ispisuje. Pre unosa proizvoljnog niza celih brojeva, korisnik
unosi dimenziju niza (broj elemenata).
8
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
#include <stdio.h>
#include <stdlib.h>
int main()
{
// definicija broja elemenata
int brojElemenata = 0;
// obavestenje korisniku
printf("Unesite broj elemenata: ");
// unos broja elemenata
scanf("%d",&brojElemenata);
// deklaracija niza
int nizBrojeva[brojElemenata];
int i,j = 0;
printf("\n");
// kroz petlju dodeliti vrednosti svim elementima niza
for (i = 0; i<=brojElemenata-1;i++)
{
// obavetenje korisniku
printf("Unesite %d elemenat: ", i+1);
// smestiti unetu vrednost za odreeni indeks elementa
// to su sve adrese, podsetiti se detaljno strukture niza
scanf("%d",&nizBrojeva[i]);
}
printf("%d, ",nizBrojeva[i]);
}
printf("\n");
return 0;
}
9
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
Zadatak: Napisati program koji u tekstualnu datoteku student.txt upisuje ime, prezime i broj
indeksa jedan ispod drugog. Omoguiti korisniku da navedene podatke unese.
#include <stdio.h>
#include <stdlib.h>
int main()
{
// deklaracije nizova karaktera - stringova
char ime[20];
char prezime[20];
char brojIndeksa[20];
// unos stringova sa tastature i obavetenja korisniku
printf("Unesite ime: ");
scanf("%s",&ime);
printf("Unesite prezime: ");
scanf("%s",&prezime);
printf("Unesite broj indeksa: ");
scanf("%s",&brojIndeksa);
// zatvaranje datoteke
fclose(outDat);
return 0;
}
10
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
Zadatak : Napisati program koji u binarnu datoteku student.bin upisuje ime, prezime i broj
putem strukture student koja sadri navedena polja. Omoguiti korisniku da navedene podatke
unese.
#include <stdio.h>
#include <stdlib.h>
// struktura student koja se definie kao novi (sloeni) tip podataka (typedef)
typedef struct student
{
char ime[20];
char prezime[20];
char brojIndeksa[20];
} student;
int main()
{
// deklaracija promenljive tipa student
student stud;
printf("Unesite ime: ");
// polju strukture se pristupa tako to se nakon naziva promenljive stavi taka
i navede naziv polja iz strukture
// ukoliko postoji pokaziva na strukturu polju se umesto take pristupa strelicom
( -> )
scanf("%s",&stud.ime);
printf("Unesite prezime: ");
scanf("%s",&stud.prezime);
printf("Unesite broj indeksa: ");
scanf("%s",&stud.brojIndeksa);
// zatvaranje datoteke
fclose(outDat);
return 0;
}
11
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
Napisati kratak program koji ita tekstualni fajl iz primera / zadatka OSLab01d i
prikazuje njegov sadraj.
Napisati kratak program koji ita binarni fajl iz primera / zadatka OSLab01e i prikazuje
njegov sadraj.
12
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
TA SU BAT FAJLOVI?
BAT (batch) fajl je vrsta skripte koja se, u formi najobinijeg tekstualnog fajla moe napisati i
izvravati u DOS i Windows okruenju. Sastoji se od niza komandi koje izvrava interpreter
komandne linije operativnih sistema iz navedenih porodica. Podrava uobiajene programerske
koncepte kao to su grananja, ciklusi (petlje), skokove i labele. Poto je prethodno navedeno
da je batch fajl po strukturi najobiniji tekstualni fajl, da bi isti mogao da se pokrene, potrebno je
da isti ima odgovarajuu ekstenziju. Najee ekstenzije batch fajlova su *.bat i *.cmd. Kada se
spomenuta skripta pokrene, shell program (COMMAND.COM ili CMD.exe) liniju po liniju
izvrava zadatu skriptu. Sam izraz batch ukazuje na redoslednu obradu bez interakcije korisnika,
meutim u batch skriptu mogue je dodati komande koje e od koristika traiti odreenu
interakciju.
U sledeem primeru oformljen je jednostavni meni koji predstavlja veoma oskudnu varijantu
Control Panel-a, stoga i naziv Very Basic Control Panel. BAT skripra je priloena dok je izgled
izvravanja spomenute skripte prikazan na slikama broj 7, 8 i 9.
13
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
@echo off
title Very Basic Control Panel
COLOR 4f
cls
:input
call:MainMenu
:prepareChoice
CHOICE /C:12345 /N /T:30 /D:5 /M:"Please select a menu item":
echo.
IF ERRORLEVEL == 5 call :ExitFunction
14
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
:MainMenu
cls
echo ***********************************************
echo * University of Novi Sad *
echo * Tehnical faculty "Mihajlo Pupin" *
echo * Zrenjanin *
echo ***********************************************
echo.
echo ***********************************************
echo * Operativni Sistemi 2016/2017 *
echo * Very Basic Control Panel *
echo * MSc Predrag Pecev *
echo ***********************************************
echo * *
echo * 1. Keyboard Properties *
echo * 2. Mouse Properties *
echo * 3. Sound Properties *
echo * 4. Display Properties *
echo * 5. Exit VBCP *
echo * *
echo ***********************************************
echo.
goto :prepareChoice
:OpenKeyboardProperties
echo ***********************************************
echo * This option will open Keyboard Properties *
echo ***********************************************
echo.
pause
start control keyboard
goto :input
:OpenMouseProperties
echo ***********************************************
echo * This option will open Mouse Properties *
echo ***********************************************
echo.
pause
start control mouse
goto :input
:OpenSoundProperties
echo ***********************************************
echo * This option will open Sound Properties *
echo ***********************************************
echo.
pause
start mmsys.cpl
goto :input
:OpenOnScreenKeyboard
15
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
echo ***********************************************
echo * This option will open Display Properties *
echo ***********************************************
echo.
pause
start desk.cpl
goto :input
:ExitFunction
echo ***********************************************
echo * Very Basic Control Panel Closing... *
echo ***********************************************
echo.
pause
exit
16
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
Modifikovati priloeni bat fajl tako da poziva druge komande. Listu dostupnih komandi /
programa / Control Panel dijaloga moete nai na sledeoj adresi
http://ss64.com/nt/run.html kao i na https://support.microsoft.com/en-us/kb/192806
Modifikovati priloeni bat fajl tako da podrava ugnjetene menije dok su stavke menija
proizvoljne. Npr odabirom stavke 1 se ulazi u podmeni koji ima 4 stavke. Odabirom
poslednje stavke se vraa u meni prethodnog nivoa.
Razmotriti da li je za programe tj. zadatke OSLab01b, OSLab01c i OSLab01d mogue
napraviti port u formi batch skripte. Ukoliko je mogue, na osnovu komadi koje se nalaze
na http://ss64.com/nt/ napisati traene skripte.
17
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
BONUS KOLIBRIOS
KolibriOS je mali, a izuzetno moan i brz operativni sistem. Napisan je u potpunosti u FASM (Flat
Assembler) asemblerskom jeziku i zahteva 8MB ram memorije kako bi funkcionisao. Navedeni
operativni sistem se moe besplatno preuzeti sa http://kolibrios.org/en/download Preporuuje
se LiveCD verzija poto se putem iste najlake moe izprobati navedeni sistem, a zatim, po
portrebi i instalirati.
Kako se ne bi koristili fiziki mediji, predlae se, da se radi testiranja navedenog operativnog
sistema, koristi Oracle Virtual Box program. Navedeni program preuzeti sa
https://www.virtualbox.org/wiki/Downloads i pri tome izabrati odgovarajuu distribuciju za
Va operativni sistem tj. platformu. Zatim formirati se virtuelni raunar relativno niskih
performansi (64mb ram memorije i 500MB hard disk je i vie nego dovoljan za KolibriOS). Na
slikama broj 10, 11 i 12 ukratko je prikazano formiranje VirtualBox raunara.
18
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
19
MSc Predrag Pecev - Operativni Sistemi Vebe 2016/2017 Revizija 2 Podlono izmeni
Nerecenzirani materijal
Nakon formiranja virtuelnog raunara, isti je potrebno pokrenuti u ubaciti LiveCD kolibri.iso disk
kako bi se KolibriOS uitao i pokrenuo. Podizanje spomenutog operativnog sistema kao i njegov
trenutni izgled moete pogledati na slikama broj 13 i 14.
20