Komputer osobisty (Personal Computer) Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Świat komputerów Superkomputery obliczenia naukowe Komputery wbudowane (embedded) sterowanie urządzeniami, przetwarzanie sygnałów, etc. Komputery osobiste (PC) 1
Sprzęt (Hardware) Pamięć operacyjna ROM, RAM Jednostka centralna CPU Układy we/wy In/Out Komputer osobisty Komputer ogólnego przeznaczenia ukierunkowany na przetwarzanie danych bezpośrednio zrozumiałych dla człowieka: tekstu (wprowadzanie, przetwarzanie, rozpoznawanie) dźwięku (muzyka, głos, rozpoznawanie) obrazu (obrazy statyczne i ruchome, rozpoznawanie) Urządzenia wejściowe: klawiatura, mysz, mikrofon, aparat fotograficzny, kamera video, skaner, etc... Urządzenia wyjściowe: monitor (projektor), drukarka (ploter), głośnik, inne akcesoria ukierunkowane na sterowanie. Jak dotąd brak jest powszechnej realizacji przetwarzania sygnałów dla zmysłów węchu, smaku i dotyku, choć próby istnieją (virtual reality) 2
Standardy i rzeczywistość Komputer typu PC : Procesor zgodny z architekturą Intel 80x86 Architektura wywodząca się z IBM PC System operacyjny firmy Microsoft DuŜa róŝnorodność procesorów do komputerów osobistych i roboczych. ZróŜnicowanie architektur typu PC (desktop, laptop (notebook), palmtop, tablet, etc. RóŜne systemy operacyjne (MacOS, Linux, PalmOS, etc...) Komputer osobisty Komputer fizyczny: procesor, pamięć, płyta główna, karty rozszerzeń, monitor, etc... Komputer logiczny: programy, dokumenty, katalogi, pliki danych, etc... Komputer wirtualny: interfejs uŝytkownika, look&feel, WWW Ułatwienia obsługi komputera ukrywają złoŝoność całego systemu, upraszczają wykonywanie typowych operacji, ale uniemoŝliwiają zrozumienie istoty operacji lub problemów. 3
Kompatybilność... wzajemnie się uzupełniający; zgodny, współgrający z czymś Kompatybilność zdolność wykonywania programu na róŝnych komputerach bez modyfikacji programu i komputera. Kompatybilność sprzętowa: Komputery są kompatybilne (compatible) jeśli oba mogą poprawnie wykonywać te same programy (na poziomie kodu maszynowego) Przenośność oprogramowania: Program jest przenośny (portable) jeśli moŝna go skompilować i uruchomić na róŝnych (niekompatybilnych) komputerach Kompatybilność w dół i w górę Kompatybilność w dół (downward compatibility): utrzymanie w nowych modelach sprzętu wszystkich cech starej architektury (z moŝliwością dodania nowych) moŝliwość uruchamiania na nowych komputerach oprogramowania pisanego na stare komputery (na poziomie kodu maszynowego) Kompatybilność w górę (upward compatibility): utrzymanie w przyszłych modelach sprzętu nowych cech obecnej architektury (i nie dodawanie innych) moŝliwość uruchamiania na starych komputerach oprogramowania pisanego na nowe komputery (na poziomie kodu maszynowego) 4
Kompatybilność nieporozumienia Kompatybilność dotyczy sprzętu, a nie oprogramowania kolejne wersje systemów operacyjnych mogą umoŝliwiać (lub nie) uruchamianie oprogramowania dla innych wersji system operacyjny jest oprogramowaniem, które będzie działać na komputerach zgodnych w górę Komputery niekompatybilne mogą mieć funkcjonalnie identyczne oprogramowanie ten sam system operacyjny i/lub pakiety oprogramowania mogą być implementowane na róŝne platformy sprzętowe zwykle istnieje moŝliwość bezpośredniej wymiany danych pomiędzy programami działającymi na niekompatybilnych komputerach Emulacja Emulacja polega na interpretacji kodu programu dla innego komputera lub systemu operacyjnego i wykonywaniu go za pomocą własnych instrukcji, tak aby efekt działania był identyczny z oryginalnym. Programy dla komputerów 8- bitowych (gry) Programy dla Windows Programy dla systemu Unix Programy dla telefonów komórkowych i palmtopów Komputery PC z systemem Windows, Unix Komputery PC z systemem Unix Komputery PC z Windows Komputery PC z Windows 5
System operacyjny Oprogramowanie, który umoŝliwia zarządzenie zasobami komputera i kontrolowane uruchamianie innych programów, bez znajomości szczegółów sprzętowych komputera. UŜytkownik Interfejs uŝytkownika Program Program Program Interfejs funkcji systemowych (API) Zarządzanie systemem plików (programy i dane) Zarządzanie systemem pamięci (procesy, multi-tasking) Sterowniki urządzeń we/wy Sprzęt komputera (Hardware) Systemy operacyjne czasu rzeczywistego RTOS (Real Time Operating System) jest systemem, w którym reakcja na bodziec musi nastąpić w czasie nie dłuŝszym niŝ określony limit. Systemy operacyjne typu RT zwykle stosuje się do komputerów wbudowanych, gdzie brak reakcji komputera moŝe mieć tragiczne konsekwencje. RTOS dla PC: QNX, RTLinux np. sterowanie lotem pocisku rakietowego (czas reakcji rzędu 10-6 s) system realizacji transakcji finansowych (czas reakcji rzędu 10 2 s) 6
System operacyjny single-user single-task single-user tylko jeden uŝytkownik moŝe korzystać z komputera jednocześnie single-task tylko jeden program moŝe być wykonywany przez komputer jednocześnie PC: DOS Disk Operating System Komputery kieszonkowe (Palm OS) Telefony komórkowe System operacyjny single-user multi-task single-user tylko jeden uŝytkownik moŝe korzystać z komputera jednocześnie multi-task wiele programów moŝe być wykonywanych przez komputer jednocześnie PC: Windows 3.x, 9x, NT, 2000, XP, MacOS Komputery kieszonkowe (Win CE) 7
System operacyjny multi-user (multi-task) multi-user w danym momencie z komputera moŝe korzystać wielu uŝytkowników, którzy mogą wykonywać wiele programów. Systemy multi-user są wyposaŝone w wyrafinowane metody podziału zasobów komputera dla uŝytkowników i procesów (scheduler) PC: Unix (Linux), VMS,... Programy i procesy Program plik na dysku zawierający instrukcje procesora oraz swoje dane. Proces program załadowany do pamięci operacyjnej komputera i uruchomiony (kod+dane+kontekst procesora). Program Proces (instrukcje) w pamięci + Dane programu Kontekst (zawartość rejestrów procesora dla danego programu) Pamięć operacyjna RAM Procesor (CPU) 8
Procesy i multi-tasking lista procesów systemu Jądro systemu Scheduler adres procesu k adres procesu m System operacyjny k-ty proces w pamięci Kod Dane Kontekst m-ty proces w pamięci Kod Dane Kontekst Pamięć operacyjna systemu komputerowego Procesy i multi-tasking A B C System z podziałem czasu procesora (time-sharing) Proces aktywny Proces uśpiony czas A B C System z podziałem czasu wielu procesorów czas Proces aktywny CPU1 Proces aktywny CPU2 Proces uśpiony 9
Pamięć wirtualna System operacyjny Proces A Proces B Proces C Proces M System operacyjny Proces M Proces C Proces A Pamięć fizyczna (RAM) Dane Adres fizyczny CPU Memory Management Unit (MMU) Adres wirtualny Proces N Pamięć wirtualna (dysk twardy) Rozkaz ładowania do pamięci fizycznej Ŝądanego fragmentu pamięci wirtualnej Pamięć wirtualna Rozmiar pamięci wirtualnej jest duŝo większy od rozmiarów dostępnej pamięci fizycznej (GB, TB). Procesor (programy) traktują pamięć wirtualną jako normalnie dostępną i odwołują się do niej za pomocą adresów wirtualnych. Blok MMU (obecnie część procesora) tłumaczy adresy ładuje Ŝądaną stronę wirtualną do pamięci fizycznej i tłumaczy adresy wirtualne na fizyczne. Pamięć wirtualna jest realizowana jako tzw. plik wymiany (swap file - Windows) lub jako oddzielny fragment twardego dysku (partycja swap Linux) 10
Interfejs uŝytkownika (IU) Program pośredniczący pomiędzy uŝytkownikiem a systemem operacyjnym i sprzętem komputera. Generacje komputerów moŝna klasyfikować według ich interfejsu uŝytkownika Nowa dziedzina wiedzy: pogranicze technologii informatycznych, psychologii i ergonomii komunikacja człowiek-komputer Miniaturyzacja elektroniki i nowe wyzwania dla interfejsów uŝytkownika. Historia IU 1945-1955 UŜytkownicy Przeznaczenia Interfejs uŝytkownika eksperci kalkulator Ŝaden 1955-1965 naukowcy obliczenia tekstowy prosty język poleceń 1965-1985 przeszkoleni pracownicy przetwarzanie danych 1985-1995 zainteresowani narzędzie pracy i rozrywki 1995-2006 znaczna część społeczeństwa praca, komunikacja, rozrywka tekstowy rozbudowany język poleceń, semi-grafika graficzny polecenia do wyboru, formularze multimedialny kontekstowy 2007- niemal wszyscy osobisty asystent intuicyjny (?) 11
Tekstowy IU Zalety: małe wymagania sprzętowe moŝliwość obsługi zdalnej duŝa szybkość i wydajność duŝe moŝliwości np. Jeśli polecenie ma 4 róŝne opcje, to pamiętając je moŝna łatwo i szybko stosować to polecenie w 16 wariantach! Wady: zapamiętanie poleceń łatwość popełnienia pomyłek brak wizualizacji wyników konieczność stosowania klawiatury Tekstowy IU interfejs funkcyjny Orientacja na funkcje systemu: tworzenie, kopiowanie, usuwanie, edycja, uruchamianie etc... plików programów i danych, zarządzanie procesami i pamięcią copy /B /V a:\plik c:\dokumenty\plik najpierw polecenie (funkcja systemu) później czego dotyczy polecenie 12
Graficzny IU Zalety: polecenia i opcje do wyboru wybór poprzez wskazywanie wizualizacja efektów działania np. Sprawdzenie zajętości miejsca na dysku i rozmiarów katalogów za pomocą wizualizacji graficznej daje natychmiastowe zrozumienie otrzymanych wyników. Wady: coraz większe wymagania sprzętowe nieprecyzyjność urządzeń wskazujących zawiły system graficznych kontrolek w przypadku bardziej zaawansowanych operacji Graficzny IU interfejs obiektowy Orientacja na obiekty systemu: pliki i katalogi: programy, dokumenty, obrazki, etc. najpierw obiekt systemu później jaka operacja ma być na nim wykonana 13
Graficzny IU interfejs zadaniowy Orientacja na zadania systemu: tworzenie dokumentu, czytanie poczty, odtwarzanie muzyki, etc. Win XP wybór typu zadania nie jest istotne (dla uŝytkownika) w jakim pliku i katalogu znajdzie się wynik działania programu Interfejsy przyszłości Wobec TB pojemności pamięci komputerów i PB zasobów sieci komputerowych pojęcie systemu plikowego staje się niewygodne dla zwykłego uŝytkownika Interpretacja zadań uŝytkownika Swobodna forma i składnia poleceń Wysoki stopień abstrakcji operacji systemu ZróŜnicowany i rozproszony interfejs we/wy Programowanie poprzez demonstrację Programy agentowe i asystenckie Bio-interfejsy uŝytkownika 14
PC? 15