Oprogramowanie komputerów - wer. 6 z drobnymi modyfikacjami!
Transkrypt
Oprogramowanie komputerów - wer. 6 z drobnymi modyfikacjami!
Oprogramowanie komputerów wer. 6 z drobnymi mody kacjami! Wojciech Myszka 2013-11-14 10:39:52 +0100 Od czego zalezy szybko±¢ komputerów? Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. 3. Dªugo±¢ sªowa: Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. 3. Dªugo±¢ sªowa: I krótkie skowo Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. 3. Dªugo±¢ sªowa: I krótkie skowo I prostsza budowa Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. 3. Dªugo±¢ sªowa: I krótkie skowo I I prostsza budowa szybsze przesyªanie do pami¦ci Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. 3. Dªugo±¢ sªowa: I krótkie skowo I I I prostsza budowa szybsze przesyªanie do pami¦ci dªuzsze operacja na dªugich liczbach Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. 3. Dªugo±¢ sªowa: I krótkie skowo I I I I prostsza budowa szybsze przesyªanie do pami¦ci dªuzsze operacja na dªugich liczbach dªugie sªowo Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. 3. Dªugo±¢ sªowa: I krótkie skowo I I I I prostsza budowa szybsze przesyªanie do pami¦ci dªuzsze operacja na dªugich liczbach dªugie sªowo I bardziej zªozona budowa Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. 3. Dªugo±¢ sªowa: I krótkie skowo I I I I prostsza budowa szybsze przesyªanie do pami¦ci dªuzsze operacja na dªugich liczbach dªugie sªowo I I bardziej zªozona budowa czasami marnotrawstwo zasobów Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. 3. Dªugo±¢ sªowa: I krótkie skowo I I I I prostsza budowa szybsze przesyªanie do pami¦ci dªuzsze operacja na dªugich liczbach dªugie sªowo I I I bardziej zªozona budowa czasami marnotrawstwo zasobów szybkie wykonywanie operacji na dªugich liczbach Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. 3. Dªugo±¢ sªowa: I krótkie skowo I I I I prostsza budowa szybsze przesyªanie do pami¦ci dªuzsze operacja na dªugich liczbach dªugie sªowo I I I bardziej zªozona budowa czasami marnotrawstwo zasobów szybkie wykonywanie operacji na dªugich liczbach 4. Wewn¦trzna konstrukcja komputera Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. 3. Dªugo±¢ sªowa: I krótkie skowo I I I I prostsza budowa szybsze przesyªanie do pami¦ci dªuzsze operacja na dªugich liczbach dªugie sªowo I I I bardziej zªozona budowa czasami marnotrawstwo zasobów szybkie wykonywanie operacji na dªugich liczbach 4. Wewn¦trzna konstrukcja komputera I liczba jednostek arytmetycznych Od czego zalezy szybko±¢ komputerów? 1. Cz¦sto±¢ zegara. 2. Szybko±¢ pami¦ci. 3. Dªugo±¢ sªowa: I krótkie skowo I I I I prostsza budowa szybsze przesyªanie do pami¦ci dªuzsze operacja na dªugich liczbach dªugie sªowo I I I bardziej zªozona budowa czasami marnotrawstwo zasobów szybkie wykonywanie operacji na dªugich liczbach 4. Wewn¦trzna konstrukcja komputera I I liczba jednostek arytmetycznych sposób wykonywania operacji Przetwarzanie potokowe Pipeline IF pobieranie instrukcji, ID dekodowanie instrukcji, EX wykonanie, MEM zapis wyników (cache), WB zapis do pami¦ci Przetwarzanie potokowe Pipeline IF pobieranie instrukcji, ID dekodowanie instrukcji, EX wykonanie, MEM zapis wyników (cache), WB zapis do pami¦ci Przetwarzanie potokowe Pipeline + dwa procesory IF pobieranie instrukcji, ID do pami¦ci dekodowanie instrukcji, EX wykonanie, MEM zapis wyników (cache), WB zapis Od czego zalezy jeszcze szybko±¢? Procesory wektorowe 1. Procesor wektorowy (tablicowy) to CPU skonstruowane w taki sposób, ze zawiera polecenia wykonania operacji matematycznej na wielu elementach danych. 2. SIMD Single Instruction, Multiple Data 3. Podstawa superkomputerów z lat 80 i 90. 4. W roku 2000 IBM, Toshiba i Sony wspóªpracowaªy nad stworzeniem procesora Cell zawieraj¡cego jeden procesor skalarny (odwrotno±¢ procesora wektorowego) i osiem procesorów wektorowych, który znalazª zastosowanie (mi¦dzy innymi) w PlayStation 3. Rózne akronimy 1. CISC Rózne akronimy 1. CISC Complex Instruction Set Computer 2. RISC Rózne akronimy 1. CISC Complex Instruction Set Computer 2. RISC Reduced Instruction Set Computer 3. VLIW Rózne akronimy 1. CISC Complex Instruction Set Computer 2. RISC Reduced Instruction Set Computer 3. VLIW Very Long Instruction Word 4. EPIC Rózne akronimy 1. CISC Complex Instruction Set Computer 2. RISC Reduced Instruction Set Computer 3. VLIW Very Long Instruction Word 4. EPIC Explicitly Parallel Instruction Computing Rózne akronimy 1. x86 Rózne akronimy 1. x86 Najpopularniejsza architektura komputerów PC 2. x86-64 Rózne akronimy 1. x86 Najpopularniejsza architektura komputerów PC 2. x86-64 Architektura 64 bitowa wprowadzana przez AMD NVIDIA CUDA Zadanie domowe Zapozna¢ si¦ z wymienionymi skrótowcami. Co trzeba zeby komputer dziaªaª? 1. Co to jest komputer? Co trzeba zeby komputer dziaªaª? 1. Co to jest komputer? 2. Rodzaj kalkulatora (ma arytmometr/procesor). Co trzeba zeby komputer dziaªaª? 1. Co to jest komputer? 2. Rodzaj kalkulatora (ma arytmometr/procesor). 3. Ma pami¦¢. . . Co trzeba zeby komputer dziaªaª? 1. Co to jest komputer? 2. Rodzaj kalkulatora (ma arytmometr/procesor). 3. Ma pami¦¢. . . 4. . . . ale co popycha go do dziaªania? Co trzeba zeby komputer dziaªaª? 1. Co to jest komputer? 2. Rodzaj kalkulatora (ma arytmometr/procesor). 3. Ma pami¦¢. . . 4. . . . ale co popycha go do dziaªania? 5. Program Co trzeba zeby komputer dziaªaª? 1. Co to jest komputer? 2. Rodzaj kalkulatora (ma arytmometr/procesor). 3. Ma pami¦¢. . . 4. . . . ale co popycha go do dziaªania? 5. Program Co trzeba zeby komputer dziaªaª? 1. Co to jest komputer? 2. Rodzaj kalkulatora (ma arytmometr/procesor). 3. Ma pami¦¢. . . 4. . . . ale co popycha go do dziaªania? 5. Program? Wª¡czamy komputer. . . . . . i co si¦ dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykona¢ program znajduj¡cy si¦ w ustalonym miejscu pami¦ci. Wª¡czamy komputer. . . . . . i co si¦ dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykona¢ program znajduj¡cy si¦ w ustalonym miejscu pami¦ci. 2. W tym miejscu pami¦ci musi by¢ jaki± program. . . Wª¡czamy komputer. . . . . . i co si¦ dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykona¢ program znajduj¡cy si¦ w ustalonym miejscu pami¦ci. 2. W tym miejscu pami¦ci musi by¢ jaki± program. . . 3. Zazwyczaj w tym obszarze pami¦ci znajduje si¦ pami¦¢ staªa (Read Only Memory ROM). Wª¡czamy komputer. . . . . . i co si¦ dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykona¢ program znajduj¡cy si¦ w ustalonym miejscu pami¦ci. 2. W tym miejscu pami¦ci musi by¢ jaki± program. . . 3. Zazwyczaj w tym obszarze pami¦ci znajduje si¦ pami¦¢ staªa (Read Only Memory ROM). 4. W tym miejscu znajduje si¦ program zwany BIOS (Basic Input Output System). Wª¡czamy komputer. . . . . . i co si¦ dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykona¢ program znajduj¡cy si¦ w ustalonym miejscu pami¦ci. 2. W tym miejscu pami¦ci musi by¢ jaki± program. . . 3. Zazwyczaj w tym obszarze pami¦ci znajduje si¦ pami¦¢ staªa (Read Only Memory ROM). 4. W tym miejscu znajduje si¦ program zwany BIOS (Basic Input Output System). 5. BIOS sprawdza wszystkie komponenty komputera. Wª¡czamy komputer. . . . . . i co si¦ dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykona¢ program znajduj¡cy si¦ w ustalonym miejscu pami¦ci. 2. W tym miejscu pami¦ci musi by¢ jaki± program. . . 3. Zazwyczaj w tym obszarze pami¦ci znajduje si¦ pami¦¢ staªa (Read Only Memory ROM). 4. W tym miejscu znajduje si¦ program zwany BIOS (Basic Input Output System). 5. BIOS sprawdza wszystkie komponenty komputera. 6. BIOS ªaduje z dysku system operacyjny. Wª¡czamy komputer. . . . . . i co si¦ dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykona¢ program znajduj¡cy si¦ w ustalonym miejscu pami¦ci. 2. W tym miejscu pami¦ci musi by¢ jaki± program. . . 3. Zazwyczaj w tym obszarze pami¦ci znajduje si¦ pami¦¢ staªa (Read Only Memory ROM). 4. W tym miejscu znajduje si¦ program zwany BIOS (Basic Input Output System). 5. BIOS sprawdza wszystkie komponenty komputera. 6. BIOS ªaduje z dysku system operacyjny. 7. System operacyjny uruchamia aplikacje uzytkowe. BIOS Programy I Oprogramowanie (i jego jako±¢) wpªywa bardzo mocno na efektywn¡ szybko±¢ komputerów. I Na czym polega programowanie komputera? Przykªadowy program C i n t main ( ) { i n t a =1; i n t b =2; int c ; c=a+b ; return 0 ; } Przykªadowy program Assembler . file . text . globl . type "p.c " main main , @function main : . LFB0 : . cfi_startproc pushq %rbp . c f i _ d e f _ c f a _ o f f s e t 16 . c f i _ o f f s e t 6 , −16 movq %rsp , %rbp . cfi_def_cfa_register 6 movl $1 , −12(%rbp ) movl $2 , −8(%rbp ) movl −8(%rbp ) , %eax movl −12(%rbp ) , %edx addl %edx , %eax movl %eax , −4(%rbp ) movl $0 , %eax popq %rbp . cfi_def_cfa 7, 8 ret . cfi_endproc . LFE0 : . size main , .−main . i d e n t " GCC: ( Ubuntu/ L i n a r o 4.6.3−1 ubuntu5 ) 4 . 6 . 3 " . section . note .GNU−stack , " " , @ pr o gb it s Czy umiej¦tno±¢ programowania jest wazna? J¦zyki programowania Proste zadania Suma liczb Zadanie polega na tym, ze mamy doda¢, powiedzmy, 1000 liczb (dostarczonych na papierku). Jak to robi¢: Proste zadania Suma liczb Zadanie polega na tym, ze mamy doda¢, powiedzmy, 1000 liczb (dostarczonych na papierku). Jak to robi¢: I r¦cznie Proste zadania Suma liczb Zadanie polega na tym, ze mamy doda¢, powiedzmy, 1000 liczb (dostarczonych na papierku). Jak to robi¢: I r¦cznie I r¦cznie z uzyciem kalkulatora Proste zadania Suma liczb Zadanie polega na tym, ze mamy doda¢, powiedzmy, 1000 liczb (dostarczonych na papierku). Jak to robi¢: I r¦cznie I r¦cznie z uzyciem kalkulatora I za pomoc¡ gotowego programu Proste zadania Suma liczb Zadanie polega na tym, ze mamy doda¢, powiedzmy, 1000 liczb (dostarczonych na papierku). Jak to robi¢: I r¦cznie I r¦cznie z uzyciem kalkulatora I za pomoc¡ gotowego programu I za pomoc¡ programu napisanego przez siebie Bardziej zaawansowany program techniczny Okres drga« wahadªa matematycznego s T = 2π l g Bardziej zaawansowany program techniczny Okres drga« wahadªa matematycznego s T = 2π I l g Mamy, powiedzmy, 100 warto±ci l Bardziej zaawansowany program techniczny Okres drga« wahadªa matematycznego s T = 2π I l g Mamy, powiedzmy, 100 warto±ci l I r¦cznie?? (bez kalkulatora b¦dzie trudno) Bardziej zaawansowany program techniczny Okres drga« wahadªa matematycznego s T = 2π I l g Mamy, powiedzmy, 100 warto±ci l I I r¦cznie?? (bez kalkulatora b¦dzie trudno) pisa¢ program? Bardziej zaawansowany program techniczny Okres drga« wahadªa matematycznego s T = 2π I l g Mamy, powiedzmy, 100 warto±ci l I I I r¦cznie?? (bez kalkulatora b¦dzie trudno) pisa¢ program? skorzysta¢ z gotowca (arkusz kalkulacyjny) Bardziej zaawansowany program techniczny Okres drga« wahadªa matematycznego s T = 2π I l g Mamy, powiedzmy, 100 warto±ci l I I I I r¦cznie?? (bez kalkulatora b¦dzie trudno) pisa¢ program? skorzysta¢ z gotowca (arkusz kalkulacyjny) narysowa¢ wykres funkcji (gnuplot)? Wykres 7 2*3.14*sqrt(x/9.81) 6 5 4 3 2 1 0 -10 -5 0 5 10 Labirynt Postawienie problemu I mamy labirynt (najprostszy) Labirynt Postawienie problemu I mamy labirynt (najprostszy) I mamy wej±cie Labirynt Postawienie problemu I mamy labirynt (najprostszy) I mamy wej±cie I jest jedno wyj±cie Labirynt Postawienie problemu I mamy labirynt (najprostszy) I mamy wej±cie I jest jedno wyj±cie I trzeba znale¹¢ drog¦ prowadz¡c¡ do wyj±cia Bardziej zªozony problem labirynt J¦zyk programowania Google Blockly Dalsze przykªady b¦d¦ programowaª w j¦zyku Google Jest to visual programming editor. . . J¦zyk programowania Google Blockly Dalsze przykªady b¦d¦ programowaª w j¦zyku Google Jest to visual programming editor. . . I I Mozna korzysta¢ on-line: http://code.google.com/p/blockly/ Mozna ±ci¡gn¡¢ na komputer http://xeon4.immt.pwr.wroc.pl/~myszka/blockly.zip I I rozpakowa¢ w jakiej± kartotece znale¹¢ w tej kartotece plik /blockly-read-only/demos/index.html i otworzy¢ go w przegl¡darce refox (z innymi nie bardzo dziaªa lokalnie). Szczegóªowa instrukcja instalacji: http://code.google.com/p/blockly/wiki/Installation Labirynt Jak rozwi¡za¢? I Prosty program (przykªad w Blockly) Labirynt Jak rozwi¡za¢? I Prosty program (przykªad w Blockly) I Losowe ruchy: id¹ do skrzyzowania i podejmij losow¡ decyzj¦ w któr¡ stron¦ skr¦ci¢. Labirynt Jak rozwi¡za¢? I Prosty program (przykªad w Blockly) I Losowe ruchy: id¹ do skrzyzowania i podejmij losow¡ decyzj¦ w któr¡ stron¦ skr¦ci¢. I Zadanie domowe: jak zaprogramowa¢ w Blockly? Labirynt Jak rozwi¡za¢? I Prosty program (przykªad w Blockly) I Losowe ruchy: id¹ do skrzyzowania i podejmij losow¡ decyzj¦ w któr¡ stron¦ skr¦ci¢. I Zadanie domowe: jak zaprogramowa¢ w Blockly? I Reguªa lewej/prawej r¦ki: posuwaj si¦, zeby mie¢ ±cian¦ zawsze po lewej/prawej stronie (Przykªad w Blockly) Najwi¦kszy Wspólny Dzielnik postawienie problemu I Mamy dwie liczby caªkowite, dodatnie i rózne od zera m i n. Najwi¦kszy Wspólny Dzielnik postawienie problemu I Mamy dwie liczby caªkowite, dodatnie i rózne od zera m i n. I Szukamy takiej liczby x która jest podzielnikiem i m i n i jest to najwi¦ksza liczba w±ród wszystkich takich podzielników. Najwi¦kszy Wspólny Dzielnik prosty algorytm z de nicji I znajd¹ wszystkie podzielniki pierwszej liczby, Najwi¦kszy Wspólny Dzielnik prosty algorytm z de nicji I znajd¹ wszystkie podzielniki pierwszej liczby, I znajd¹ wszystkie podzielniki drugiej liczby, Najwi¦kszy Wspólny Dzielnik prosty algorytm z de nicji I znajd¹ wszystkie podzielniki pierwszej liczby, I znajd¹ wszystkie podzielniki drugiej liczby, I znajd¹ wszystkie wspólne podzielniki, Najwi¦kszy Wspólny Dzielnik prosty algorytm z de nicji I znajd¹ wszystkie podzielniki pierwszej liczby, I znajd¹ wszystkie podzielniki drugiej liczby, I znajd¹ wszystkie wspólne podzielniki, I znajd¹ najwi¦kszy w±ród nich. Znajdowanie wszystkich podzielników I czy liczba n dzieli si¦ przez 1 I czy liczba n dzieli si¦ przez 2 I ... I czy liczba n dzieli si¦ przez n − 1 Znajdowanie wszystkich podzielników czy mozna to upro±ci¢? I Wystarczy startowa¢ od dwójki (wszystkie liczby dziel¡ si¦ przez 1) Znajdowanie wszystkich podzielników czy mozna to upro±ci¢? I Wystarczy startowa¢ od dwójki (wszystkie liczby dziel¡ si¦ przez 1) I Kiedy sko«czy¢? Znajdowanie wszystkich podzielników czy mozna to upro±ci¢? I Wystarczy startowa¢ od dwójki (wszystkie liczby dziel¡ si¦ przez 1) I Kiedy sko«czy¢? I Wystarczy kontynuowa¢ do √ n Wspólna cz¦±¢ dwu zbiorów 1. We¹ pierwszy element ze zbioru N Wspólna cz¦±¢ dwu zbiorów 1. We¹ pierwszy element ze zbioru N 2. Sprawd¹ czy znajduje si¦ w zbiorze M? Wspólna cz¦±¢ dwu zbiorów 1. We¹ pierwszy element ze zbioru N 2. Sprawd¹ czy znajduje si¦ w zbiorze M? 3. Jezeli tak zapisz w zbiorze wynikowym. Wspólna cz¦±¢ dwu zbiorów 1. We¹ pierwszy element ze zbioru N 2. Sprawd¹ czy znajduje si¦ w zbiorze M? 3. Jezeli tak zapisz w zbiorze wynikowym. 4. Jezeli nie przejrzaªe± wszystkich elementów w zbiorze N, we¹ element nast¦pny i przejd¹ do kroku 2 Szukanie warto±ci najwi¦kszej Szukanie warto±ci najwi¦kszej 1. we¹ pierwszy element: b¦dzie wzorem Szukanie warto±ci najwi¦kszej 1. we¹ pierwszy element: b¦dzie wzorem 2. czy zostaª jaki± element w zbiorze? jezeli nie KONIEC Szukanie warto±ci najwi¦kszej 1. we¹ pierwszy element: b¦dzie wzorem 2. czy zostaª jaki± element w zbiorze? jezeli nie 3. we¹ nast¦pny element ze zbioru KONIEC Szukanie warto±ci najwi¦kszej 1. we¹ pierwszy element: b¦dzie wzorem 2. czy zostaª jaki± element w zbiorze? jezeli nie 3. we¹ nast¦pny element ze zbioru 4. czy wi¦kszy od wzoru? KONIEC Szukanie warto±ci najwi¦kszej 1. we¹ pierwszy element: b¦dzie wzorem 2. czy zostaª jaki± element w zbiorze? jezeli nie 3. we¹ nast¦pny element ze zbioru 4. czy wi¦kszy od wzoru? 5. jezeli nie przejd¹ do punktu 2 KONIEC Szukanie warto±ci najwi¦kszej 1. we¹ pierwszy element: b¦dzie wzorem 2. czy zostaª jaki± element w zbiorze? jezeli nie 3. we¹ nast¦pny element ze zbioru 4. czy wi¦kszy od wzoru? 5. jezeli nie przejd¹ do punktu 2 6. jezeli tak wstaw w miejsce wzoru KONIEC Algorytm Euklidesa E1. Niech r b¦dzie reszt¡ z dzielenia m przez n Algorytm Euklidesa E1. Niech r b¦dzie reszt¡ z dzielenia m przez n E2. Jezeli r = 0 koniec Algorytm Euklidesa E1. Niech r b¦dzie reszt¡ z dzielenia m przez n E2. Jezeli r = 0 koniec E3. W przeciwnym razie m=n n=r przejd¹ do E1 NWD Program w Blockly NWD Program w Blockly Zadanie domowe I Znale¹¢ inne warianty algorytmu Euklidesa I Zaprogramowa¢ w Blockly? Algorytm B 1. Przyjmij k ← 0, a nast¦pnie powtarzaj operacje: k ← k + 1, u ← u/2, v ← v/2 zero lub wi¦cej razy do chwili gdy przynajmniej jedna z liczb u i v przestanie by¢ parzysta. 2. Je±li u jest nieparzyste to przyjmij t ← −v i przejd¹ do kroku 4. W przeciwnym razie przyjmij t ← u. 3. (W tym miejscu t jest parzyste i rózne od zera). Przyjmij t ← t/2. 4. Je±li t jest parzyste to przejd¹ do 3. 5. Je±li t > 0, to przyjmij u ← t, w przeciwnym razie przyjmij v ← −t. 6. Przyjmij t ← u − v. Je±li t 6= 0 to wró¢ do kroku 3. W przeciwnym razie algorytm zatrzymuje si¦ z wynikiem u · 2k . Zadanie domowe? Algorytm B w Blockly? Zadanie domowe? Algorytm B w Blockly? Yyyyy. . . za trudne Zadanie domowe? Algorytm B w Blockly? Yyyyy. . . za trudne Rozwi¡za¢ r¦cznie dla wybranych u i v (mniejszych niz 1000). Bibliography MakerFaire. http://code.google.com/p/blockly/wiki/MakerFaire, Pa/xdziernik 2012. David B. Suits. Playing with mazes. http://people.rit.edu/dbsgsh/, 1994. David B. Suits. Solving mazes. Playing With Mazes. 1994. http://people.rit.edu/dbsgsh/MAZES3.pdf.