Jak działa program?
Marek Deutsch
wat-wdp@wp.pl
System informatyczny
S I
Sprzęt
Oprogramowanie
Ludzie
Baza danych
Dokumentacja
Wejście
Wyjście
( użytkownicy,
operatorzy )
systemowe
Oprogramowanie
użytkowe
Schemat budowy komputera
Procesor
Pamięć ROM
Pamięć RAM
(oprogramowanie operacyjne)
(programy użytkowe)
Układy wejścia
Układy wyjścia
- klawiatura
- mysz
- skaner
- pamięć dyskowa
- drukarka
- pamięć dyskowa
- monitor ekranowy
- ploter
- czytniki
dokumentów
(magnetyczne MICR,
optyczne OCR)
Działanie programu: program załadowany
do pamięci
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51...
52...
53...
54...
23
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 23
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52...
53...
54...
24
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 24
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 0
53...
54...
25
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 25
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 0
53...
54 0
26
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 26
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 0
53...
54 0
27
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 27
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 0
53 118
54 0
28
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 28
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 0
53 118
54 118
29
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 29
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 1
53 118
54 118
30
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 30
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 1
53 118
54 118
26
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 26 (2)
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 1
53 118
54 118
27
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 27 (2)
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 1
53 17
54 118
28
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 28 (2)
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 1
53 17
54 135
29
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 29 (2)
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 2
53 17
54 135
30
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 30 (2)
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 2
53 17
54 135
26
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 26 (3)
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 2
53 17
54 135
31
Pamięć programu
Pamięć danych
Licznik rozkazów
Działanie programu: po rozkazie 31
22 ...
23 Wczytaj ilość liczb do k(51)
24 Wpisz 0 do k(52)
25 Wpisz 0 do k(54)
26 Jeśli k(51) = k(52), to skocz do 31
27 Wczytaj liczbę do k(53)
28 Dodaj k(53) do k(54)
29 Dodaj 1 do k(52)
30 Skocz do 26
31 Wypisz k(54)
32 ...
33 ...
34 ...
50...
51 2
52 2
53 17
54 135
Pamięć programu
Pamięć danych
135
Zadania systemu operacyjnego
• Zapewnianie komunikacji pomiędzy
„komputerem” a użytkownikiem
– Tłumaczenie komend
– Konwersja liczb (dziesiętne dwójkowe)
• Zarządzanie urządzeniami zewnętrznymi
• Zarządzanie pamięcią operacyjną
– Ładowanie programów
– Przydzielanie i zwalnianie pamięci dla danych
• Uruchamianie programów użytkowych
– Przydział czasu procesora
– Identyfikacja sytuacji awaryjnych (np. gdy
jeden program zmienia dane innego
programu)
Działanie systemu operacyjnego:
uruchomienie programu 1
81 ...
82 Sprawdź bufor klawiatury
83 Jeśli pusty, to skocz do 82
84 Jeśli „uruchom”, to skocz do 90
85 ...
86 ...
87 ...
88 ...
89 ...
90 82 STAN
91 Załaduj adres programu do LR
92 ...
93 ...
Instrukcje programów
Instrukcje systemu operacyjnego
1123....
1124....
1125....
1126....
1127....
1128....
1129.Odtwórz stan
2831....
2832....
2833....
2834....
2835....
2836....
2837.Odtwórz stan
2044 ...
2045 ...
2046 ...
2047 ...
2048 ...
2049 ...
2050 STAN LR
82
...
Licznik rozkazówSTAN
Działanie systemu operacyjnego:
uruchomienie programu 2
81 ...
82 Sprawdź bufor klawiatury
83 Jeśli pusty, to skocz do 82
84 Jeśli „uruchom”, to skocz do 90
85 ...
86 ...
87 ...
88 ...
89 ...
90 82 STAN
91 Załaduj adres programu do LR
92 ...
93 ...
Instrukcje programów
Instrukcje systemu operacyjnego
1123....
1124....
1125....
1126....
1127....
1128....
1129.Odtwórz stan
2831....
2832....
2833....
2834....
2835....
2836....
2837.Odtwórz stan
2044 ...
2045 ...
2046 ...
2047 ...
2048 ...
2049 ...
2050 STAN LR
83
...
Licznik rozkazówSTAN
Działanie systemu operacyjnego:
uruchomienie programu 3
81 ...
82 Sprawdź bufor klawiatury
83 Jeśli pusty, to skocz do 82
84 Jeśli „uruchom”, to skocz do 90
85 ...
86 ...
87 ...
88 ...
89 ...
90 82 STAN
91 Załaduj adres programu do LR
92 ...
93 ...
Instrukcje programów
Instrukcje systemu operacyjnego
1123....
1124....
1125....
1126....
1127....
1128....
1129.Odtwórz stan
2831....
2832....
2833....
2834....
2835....
2836....
2837.Odtwórz stan
2044 ...
2045 ...
2046 ...
2047 ...
2048 ...
2049 ...
2050 STAN LR
82
...
Licznik rozkazówSTAN
Działanie systemu operacyjnego:
uruchomienie programu 4
81 ...
82 Sprawdź bufor klawiatury
83 Jeśli pusty, to skocz do 82
84 Jeśli „uruchom”, to skocz do 90
85 ...
86 ...
87 ...
88 ...
89 ...
90 82 STAN
91 Załaduj adres programu do LR
92 ...
93 ...
Instrukcje programów
Instrukcje systemu operacyjnego
1123....
1124....
1125....
1126....
1127....
1128....
1129.Odtwórz stan
2831....
2832....
2833....
2834....
2835....
2836....
2837.Odtwórz stan
2044 ...
2045 ...
2046 ...
2047 ...
2048 ...
2049 ...
2050 STAN LR
83
...
Licznik rozkazówSTAN
Działanie systemu operacyjnego:
uruchomienie programu 5
81 ...
82 Sprawdź bufor klawiatury
83 Jeśli pusty, to skocz do 82
84 Jeśli „uruchom”, to skocz do 90
85 ...
86 ...
87 ...
88 ...
89 ...
90 82 STAN
91 Załaduj adres programu do LR
92 ...
93 ...
Instrukcje programów
Instrukcje systemu operacyjnego
1123....
1124....
1125....
1126....
1127....
1128....
1129.Odtwórz stan
2831....
2832....
2833....
2834....
2835....
2836....
2837.Odtwórz stan
2044 ...
2045 ...
2046 ...
2047 ...
2048 ...
2049 ...
2050 STAN LR
84
...
Licznik rozkazówSTAN
Działanie systemu operacyjnego:
uruchomienie programu 6
81 ...
82 Sprawdź bufor klawiatury
83 Jeśli pusty, to skocz do 82
84 Jeśli „uruchom”, to skocz do 90
85 ...
86 ...
87 ...
88 ...
89 ...
90 82 STAN
91 Załaduj adres programu do LR
92 ...
93 ...
Instrukcje programów
Instrukcje systemu operacyjnego
1123....
1124....
1125....
1126....
1127....
1128....
1129.Odtwórz stan
2831....
2832....
2833....
2834....
2835....
2836....
2837.Odtwórz stan
2044 ...
2045 ...
2046 ...
2047 ...
2048 ...
2049 ...
2050 STAN LR
90
...
Licznik rozkazówSTAN
Działanie systemu operacyjnego:
uruchomienie programu 7
81 ...
82 Sprawdź bufor klawiatury
83 Jeśli pusty, to skocz do 82
84 Jeśli „uruchom”, to skocz do 90
85 ...
86 ...
87 ...
88 ...
89 ...
90 82 STAN
91 Załaduj adres programu do LR
92 ...
93 ...
Instrukcje programów
Instrukcje systemu operacyjnego
1123....
1124....
1125....
1126....
1127....
1128....
1129.Odtwórz stan
2831....
2832....
2833....
2834....
2835....
2836....
2837.Odtwórz stan
2044 ...
2045 ...
2046 ...
2047 ...
2048 ...
2049 ...
2050 STAN LR
91
82
Licznik rozkazówSTAN
Działanie systemu operacyjnego:
uruchomienie programu 8
81 ...
82 Sprawdź bufor klawiatury
83 Jeśli pusty, to skocz do 82
84 Jeśli „uruchom”, to skocz do 90
85 ...
86 ...
87 ...
88 ...
89 ...
90 82 STAN
91 Załaduj adres programu do LR
92 ...
93 ...
Instrukcje programów
Instrukcje systemu operacyjnego
1123....
1124....
1125....
1126....
1127....
1128....
1129.Odtwórz stan
2831....
2832....
2833....
2834....
2835....
2836....
2837.Odtwórz stan
2044 ...
2045 ...
2046 ...
2047 ...
2048 ...
2049 ...
2050 STAN LR
2044
82
Licznik rozkazówSTAN
Działanie systemu operacyjnego:
uruchomienie programu 9
81 ...
82 Sprawdź bufor klawiatury
83 Jeśli pusty, to skocz do 82
84 Jeśli „uruchom”, to skocz do 90
85 ...
86 ...
87 ...
88 ...
89 ...
90 82 STAN
91 Załaduj adres programu do LR
92 ...
93 ...
Instrukcje programów
Instrukcje systemu operacyjnego
1123....
1124....
1125....
1126....
1127....
1128....
1129.Odtwórz stan
2831....
2832....
2833....
2834....
2835....
2836....
2837.Odtwórz stan
2044 ...
2045 ...
2046 ...
2047 ...
2048 ...
2049 ...
2050 STAN LR
2045
82
Licznik rozkazówSTAN
Działanie systemu operacyjnego:
uruchomienie programu 10
81 ...
82 Sprawdź bufor klawiatury
83 Jeśli pusty, to skocz do 82
84 Jeśli „uruchom”, to skocz do 90
85 ...
86 ...
87 ...
88 ...
89 ...
90 82 STAN
91 Załaduj adres programu do LR
92 ...
93 ...
Instrukcje programów
Instrukcje systemu operacyjnego
1123....
1124....
1125....
1126....
1127....
1128....
1129.Odtwórz stan
2831....
2832....
2833....
2834....
2835....
2836....
2837.Odtwórz stan
2044 ...
2045 ...
2046 ...
2047 ...
2048 ...
2049 ...
2050 STAN LR
2050
82
Licznik rozkazówSTAN
Działanie systemu operacyjnego:
uruchomienie programu 11
81 ...
82 Sprawdź bufor klawiatury
83 Jeśli pusty, to skocz do 82
84 Jeśli „uruchom”, to skocz do 90
85 ...
86 ...
87 ...
88 ...
89 ...
90 82 STAN
91 Załaduj adres programu do LR
92 ...
93 ...
Instrukcje programów
Instrukcje systemu operacyjnego
1123....
1124....
1125....
1126....
1127....
1128....
1129.Odtwórz stan
2831....
2832....
2833....
2834....
2835....
2836....
2837.Odtwórz stan
2044 ...
2045 ...
2046 ...
2047 ...
2048 ...
2049 ...
2050 STAN LR
82
82
Licznik rozkazówSTAN