Aktywne Wpisy

Niemaco122 +1278
Kierowca BMW się oburzył na kierowcę seata bo nie mógł wyprzedzić na skrzyżowaniu. Akcja była taka że z podporządkowanej cofał tir z naczepa i blokował jeden prawy pas. Gość zostawił seata na awaryjnych tak jak na wideo. Zjeb z BMW stał może 30-40sek ale nie wytrzymał i musiał znaleźć kierowcę seata. Jak się skończyło to widać na nagraniu. Rozumiem że Dareczek źle zaparkował (prawdopodobnie pilotował kierowcę TIRa żeby mógł wyjechać) no ale


WykopekPol +8
Treść przeznaczona dla osób powyżej 18 roku życia...





Lekcja 1.
Temat: Ogólnie z czego składa się komputer.
Do szczegółów jak komponenty naszego komputera ze sobą oddziałują jeszcze wrócimy.
Najprostszy komputer to maszyna Turinga. Bardzo długa taśma i głowica, która na podstawie
danych na tej taśmie zmienia zawartość owej taśmy.
Brzmi bardzo nie realnie? I tu się mylicie. Komputer na którym właśnie czytacie ten wpis też ma
bardzo długą taśmę i głowice co się nie po niej porusza i ją ciągle zmienia.
Taśmą jest pamięć RAM a głowicą procesor. I tak oto mamy najprostszy komputer.
Dodajmy mu jednak jeszcze jedną rzecz, jakiś układ wejścia wyjścia by mógł się z nami komunikować:
pobierać dane, wypisywać wyniki i pozwalać na wprowadzenie programu.
Jeszcze przed zbudowaniem pierwszego komputera niejaki Von Neumann zaproponował, że dobrze by było
jak by pamięć kodu i danych była w jednym miejscu.
To rozwiązanie które króluje w komputerach ogólnego przeznaczenia, PC-tach laptopach smartfonach, smart TV itd...
Daje nam to bardzo dużą elastyczność, możemy napisać prosty kod mielący duże dane albo duży kod który operuje
jednak na małych ilościach danych. To rozwiązanie nie jest jednak pozbawione wad. Procesor jest bardzo głupi
i o tym czy właśnie wczytał dane czy program decyduje kontekst.
Aby Ci to uzmysłowić pokażę Ci jeden bajt z pamięci, dla uproszczenia przyjmijmy że jest to intel x86
0x61HCo on oznacza?
Jak pewnie widzicie zbudowanie procesora który jeszcze miał by "myśleć" czy akurat mówimy o danych czy o kodzie może trudne.
Inne podejście prezentuje architektura harwardzka. Tam to na cześć oddajemy bardzo wczesnej konstrukcji zbudowanej właśnie na Uniwersytecie
Harvarda. Komputer ten miał zupełnie różną pamięć danych, która była na lampach a pamięcią kodu zbudowanej na przekaźnikach.
Szerokość danych w obu pamięciach również była inna. Ta organizacja ma sporo zalet:
-Można równolegle pobierać dane i kod z 2 odrębnych pamięci.
-Większe bezpieczeństwo niż w Architekturze Von Neumanna
Pewno jesteś ciekaw czemu Harvardzka jest bezpieczniejsza. Chodzi o to że w trakcie wykonywania programu pamięć w której jest przechowywany
jest tylko do odczytu co skutecznie uniemożliwia ataki na przepełnianie buforów oraz inne wykorzystujące że dane wprowadzone przez użytkownika mogą być potraktowane jako kod do wykoanania.
Architektura harwardzka jest stosowana wszędzie tam gdzie elastyczność pamięci nie jest konieczna. Zazwyczaj z takim podejściem spotkamy się w mikrokontrolerach.
Na tym chciał bym skończyć pierwszą lekcję
to co powinieneś pamiętać to to że komputer składa się z 3 rzeczy:
Procesora
Pamięci (osobnej dla kodu i danych lub wspólnej)
Wejścia/wyjścia
Proszę o wasze oceny plusy itd, mam nadzieję wrzucać dość regularnie. Nie będę tworzyć osobnego tagu, no chyba że poprosicie.
W następnej lekcji popatrzymy na podstawowe bloki procesora.
źródło: comment_nK2SEEcXowZwIqOtNCjPZr5m0pu7FILS.jpg
Pobierz#wytrzeszczoweasemblery