Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Слични документи
Funkcije predavač: Nadežda Jakšić

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

P11.3 Analiza zivotnog veka, Graf smetnji

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

Programiranje za UNIX Okruženje unix procesa

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Računarski praktikum I - Vježbe 09 - this, static

P9.1 Dodela resursa, Bojenje grafa

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Uvod u računarstvo 2+2

Logicko projektovanje racunarskih sistema I

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Uvod u računarstvo 2+2

Funkcije predavač: Nadežda Jakšić

Microsoft Word - 11 Pokazivaci

RAČUNALO

Microsoft PowerPoint - C-4-1

Generated by Foxit PDF Creator Foxit Software For evaluation only. Operativni sistem U računarstvu, operativni sistem (OS

Uvod u računarstvo 2+2

PROMENLJIVE, TIPOVI PROMENLJIVIH

Microsoft PowerPoint - 12-Funkcije_1.ppt [Compatibility Mode]

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Uvod u računarstvo 2+2

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

PowerPoint Presentation

PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji

Programski jezik C

PowerPoint Presentation

Tutoring System for Distance Learning of Java Programming Language

UVOD - OD JAVE DO C# ELEMENTARNE RAZLIKE Veliki broj Java/C# razlika su uglavnom preimenovane ključne reči i razlike u konvencijama imenovanja. Neke o

070-ALIP2-udzbenik.indb

Zbirka resenih zadataka iz arhitekture racunara

Zadatak T=5: Jedinica WBSD propušta vred Potiče iz polja Rwb.LMD Signal Rwb.WRLMD izaziva propuštanje ove vrednosti 2. Vrednost 0000

RAČUNARSKI SISTEM Ne postoji jedinstvena definicija pojma računarski sistem. Računarski sistem predstavlja skup mašina i pridruženih metoda (realizova

P1.0 Uvod

Podela ra~unarskih sredtava

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Računarski praktikum I - Vježbe 01 - Uvod

MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU

Uvod u takmičarsko programiranje

3.Kontrlne (upravlja~ke) strukture u Javi

P1.2 Projektovanje asemblera

Algoritmi i arhitekture DSP I

Postavka 2: Osnovni graf algoritmi 1 DISTRIBUIRANI ALGORITMI I SISTEMI Iz kursa CSCE 668 Proleće 2014 Autor izvorne prezentacije: Prof. Jennifer Welch

07_PJISP_II_Predavanja

Microsoft Word - EksperimentIzmenePrograma.doc

Dijagrami sekvenci

PowerPoint Presentation

Повезивање са интернетом

Microsoft PowerPoint - Strukturni dijagrami, Gantogram - Planiranje [Compatibility Mode]

PowerPoint Presentation

Microsoft PowerPoint - LB7-2_WCCF_2010.ppt

Inženjering informacionih sistema

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU BEOGRAD, Ispit iz Programiranja 2 Ispit traje 135 minuta Napomene: a) Pažljivo proučite U

РАСПОРЕД ИСПИТА У ИСПИТНОМ РОКУ ЈАНУАР 1 ШКОЛСКЕ 2016/2017. ГОДИНЕ (последња измена ) Прва година: ПРВА ГОДИНА - сви сем информатике Име пр

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

Microsoft PowerPoint - Datoteke [Compatibility Mode]

P2.1 Projektovanje paralelnih algoritama 1

IV Spekulativno I predikatsko izvršavanje

PowerPoint Presentation

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj

Slide 1

Pages from 5527 lite guick guide from PDF - prevod_IO_FC - Serbian.doc

Grananje u programu predavač: Nadežda Jakšić

P11.2 Izbor instrukcija, IBURG

Računarski softver Da bi računarski sistem mogao da radi, pored hardvera mora biti opremljen i odgovarajućim programima koji će njime upravljati.ova k

2015_k2_z12.dvi

Projektovanje informacionih sistema i baze podataka

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

Vezbe_AOR1_2014_V1.0

Drveta odlucivanja - algoritmi

Elektrotehnički fakultet Univerziteta u Beogradu Relejna zaštita laboratorijske vežbe Vežba 3: ISPITIVANJE ELEKTRONSKOG FREKVENCIJSKOG RELEJA RFN-30 U

Datoteke predavač: Nadežda Jakšić

Slide 1

PowerPoint Presentation

Писање и превођење модула

Tutoring System for Distance Learning of Java Programming Language

Microsoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode]

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Microsoft PowerPoint - Topic02 - Serbian.ppt

` 1.Врсте меморије На основу начина чувања података делимо их на меморије које привремено чувају податке (док је рачунар укључен) и меморије које трај

Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007

Microsoft PowerPoint - Topic02 - Serbian.ppt

PowerPoint Presentation

RACUNARSKA ELEKTRONIKA – VEŽBE 3

IV Spekulativno I predikatsko izvršavanje

Programski jezik C

Strukture predavač: Nadežda Jakšić

JEZGRO OPERATIVNOG SISTEMA I UPRAVLJANJE PROCESIMA 1. Šta je jezgro, a šta proces? Jezgro (nukleus ili kernel) je osnovni deo svakog operativnog siste

Oblikovanje i analiza algoritama 5. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 5. pr

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

Microsoft PowerPoint - LB7-2_WCCF_2012.ppt

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Увод у организацију и архитектуру рачунара 1

Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

Primenjeno programiranje - vezbe GUI i baze podataka

Транскрипт:

Организација извршног програма (Марић, Јаничић: Програмирање 1, 9.3.3)

Извршавање програма После успешног превођења (претпроцесирања, компилације, повезивања) програм може да се изврши Извршавање се захтева од оперативног система Извршни програм се учитава из спољне меморије (нпр. диска) у радну RAM У фази извршавања: могуће грешке 2/13

Извршавање програма Пре дистрибуције: тестирање Помоћ: програми дибагери Захтева се посебан начин превођења Извршна верзија треба да садржи информације о изворном коду (za gcc опција -g) Тзв. дибаг верзија Кориснику се испоручује тзв. рилиз (engl. release) верзија извршног програма 3/13

Организација меморије извршног програма Зависи од оперативног система Меморија која се додељује програму при извршавању организована је у неколико тзв. сегмената или зона: сегмент кода (енгл. code segment или text segment) сегмент података (енгл. data segment) стек сегмент (енгл. stack segment) хип сегмент (енгл. heap segment) 4/13

Сегменти меморије - сегмент програма (кода) извршни код програма (може да буде заједнички и за више покренутих инстанци програма) - сегмент података променљиве заједничке за цео програм - променљиве статичког животног века глобалне променљиве статичке локалне променљиве константни подаци константне ниске свака инстанца (ако их је више) сопствени сегмент података - хип сегмент динамички алоцирани подаци 5

Сегменти меморије - стек сегмент или програмски стек позива (енгл. call stack)) За сваку позвану функцију, стек оквир: Аргументи функције Локалне променљиве функције Међурезултати израчунавања Адреса повратка из функције Адреса стек оквира функције позиваоца 6

Сегменти меморије Величина стек сегмента је обично ограничена па треба избегавати велике податке на стеку, на пример: Стек сегмент: int main() { int a[1000000];... Сегмент података: int a[1000000]; int main() {... 7

Стек сегмент Стек позива је структура типа LIFO ("last in - first out") Стек оквир се додаје на врх стека и са стека се уклања оквир који је на врху Стек оквир за инстанцу функције креира се када функција треба да се изврши и ослобађа се када се заврши извршавање функције 8

Стек сегмент Ако извршавање програма почиње извршавањем функције main, први стек оквир се креира за ту Ако функција main позива функцију f, на врху стека, изнад стек оквира функције main, креира се нови стек оквир за ову функцију Ако функција f позива функцију f1, онда ће за њу бити креиран стек оквир на новом врху стека Када се заврши извршавање функције f1 (односно f), врх стека се враћа на претходно стање и простор који је заузимао стек оквир за f1 (f) се сматра слободним 9

Стек сегмент, пример Пример из: Filip Marić i Predrag Janičić: Programiranje 1, Osnove programiranja kroz programski jezik C int f(int a[], int n) { int i, s = 0; for (i = 0; i < n; i++) s += ++a[i]; return s; int main() { int a[] = {1, 2, 3; int s; s = f(a, sizeof(a)/sizeof(int)); printf("s = %d, a = {%d, %d, %d\n", s, a[0], a[1], a[2]); return 0; Како би изгледали стек оквири? 10

Стек меморија стек оквири main: 116:... Извршавање петље постављање вредности f: 136:... main: 116:... 112:? <- s у променљиве i и s стек оквира функције f 108: 3 (0, 2; 1,5; 2,9; 3,9): 104: 2 функцији main враћа се вредност 9 100: 1 <- a (у њену променљиву s); 132: 0 <- s 128:? <- i 124: 3 <- n 120: 100 <- a 112:? <- s 108: 3 104: 2 100: 1 <- a стек оквир функције f се уклања са стека 11

Стек сегмент, пример Нацртати стек оквире за извршавање следећег кода: int kub(int a) { return a*a*a; int main() { int x, y = 3; x = kub(y); printf("%d", x); return 0; 12

Стек сегмент, пример Нацртати стек оквире за извршавање следећег кода: int kub(int a) { return a*a*a; int suma_kubova_i_uvecanje(int a[], int n) { int rezultat = 0, i; for(i=0; i<n; i++) rezultat += kub(a[i]++); return rezultat; int main() { int a[3]={0, 1, 2, s; s = suma_kubova_i_uvecanje(a, sizeof(a)/sizeof(int)); printf("rezultat je %d\n", s); return 0; 13