Instrukcja 3
Transkrypt
Instrukcja 3
Instrukcja laboratoryjna Systemy operacyjne sem. 1 wiczenie trzecie (dwa zajcia) Temat: Obsługa urządzeń zewnętrznych Opracował: mgr inż. Arkadiusz Chrobot 1. Wstęp Programista tworzący aplikacje działające pod kontrolą dowolnego systemu operacyjnego (o ile nie jest to bardzo prymitywny system) nie musi znać szczegółów związanych z obsługą sprzętu, na którym jego program będzie uruchamiany. Wystarczy, że będzie umiał skorzystać z funkcji systemowych, które realizują to zadanie. Dzięki temu kod jego programów staje się bardziej przenośny, a praca systemu komputerowego, na którym wykonywane są te programy, bardziej stabilna. W innej sytuacji znajduje się informatyk tworzący oprogramowanie systemowe. Jego zadaniem jest stworzenie najbardziej uniwersalnych i odpornych na błędy procedur obsługi urządzeń. Zadanie to komplikuje się, jeśli system ma współpracować ze sprzętem tego samego rodzaju, ale pochodzącym od wielu różnych producentów i nieposiadającym standardowego sposobu obsługi. W takim wypadku programista systemowy może stworzyć abstrakcyjną warstwę1 z dokładnie zdefiniowanym interfejsem, której przeznaczeniem jest obsługa urządzeń wejścia – wyjścia. Producent urządzenia, który zna specyfikację takiego interfejsu może dostarczyć własne podprogramy obsługi swojego urządzenia (sterowniki). Jedną z większych zalet systemu DOS, a zarazem jedną z największych jego wad jest możliwość bezpośredniej obsługi sprzętu przez programy użytkownika. Tę własność można wykorzystać do poznania zasad obsługiwania niektórych z tych urządzeń. 2. Pamięć ekran Pamięć karty graficznej (lub jej fragment) jest odwzorowany we fragmencie pamięci RAM komputera. Oznacza to, że zapisanie jakiejkolwiek wartości do tego obszaru RAM spowoduje również zapis tych wartości do pamięci karty graficznej. W przypadku trybu tekstowego dla większości kart graficznych obszar ten zaczyna się od adresu B800:0000h†, natomiast jego wielkość zależna jest od trybu tekstowego, w jakim w danej chwili karta pracuje. Opis jednego znaku, który jest wyświetlany na ekranie zajmuje w tej pamięci dwa bajty: pierwszy jest kodem ASCII wyświetlanego znaku, natomiast drugi jest wartością atrybutu tego znaku. W przypadku trybu graficznego zarówno początek bufora w pamięci, jak i jego wielkość oraz organizacja wewnętrzna zależą od rodzaju karty. 1 Przykładem takiej warstwy jest wirtualny system plików występujący w niektórych systemach uniksowych. † Wyjątkiem jest karta graficzna Hercules, dla której ten obszar zaczyna się od adresu B000:0000h. 2 3. Bufor klawiatury W pamięci RAM znajduje się również obszar, gdzie zapamiętywane są dane przesyłane przez sterownik klawiatury. Obszar ten ma wielkość 32 bajtów i zaczyna się od adresu 0040:001Eh. Jest on zorganizowany w postaci struktury cyklicznej, dlatego skojarzone są z nim dwie zmienne dwu bajtowe o adresach 0040:001Ah i 0040:001Ch oznaczające odpowiednio początek cyklicznego bufora klawiatury (wskazuje pierwszy znak do odebrania i koniec cyklicznego bufora klawiatury (wskazuje ostatni znak do odebrania). Za każdym razem, kiedy użytkownik naciśnie klawisz do tego bufora wpisywane są dwa bajty: kod klawisza i kod ASCII. 4. Mysz Mysz w systemie MS-DOS jest obsługiwana za pomocą przerwania 33h. Procedura obsługi tego przerwania dostarczana jest jako sterownik myszy przez jej producenta. Jeśli dostawca myszy nie zaopatrzył jej w sterownik, stosowana jest domyślna procedura obsługi będąca częścią systemu MS-DOS. Zapewnia ona między innymi takie funkcje, jak: inicjalizacja myszy, wyświetlenie/ukrycie kursora, odczytanie stanu przycisków i położenia myszy, odczytanie informacji o naciśnięciu przycisków myszy. Więcej informacji na temat obsługi urządzeń wejścia-wyjścia można znaleźć w rozdziałach 14 i 15 książki „DOS 5 od środka”. 5. Zadania 1. [1 punkty] Napisz program, który odwołując się bezpośrednio do pamięci karty graficznej w trybie tekstowym zaprezentuje na ekranie monitora prostą animację. 2. [2 punkty] Napisz program, który będzie wypisywał na ekran, na bieżąco zawartość bufora klawiatury i stan jego wskaźników. 3. [1 punkty] Napisz program, który zademonstruje sposób obsługi myszy. 3