SO2 instrukcja 8 Niskopoziomowa obsługa terminali

background image

Instrukcja do laboratorium Systemów Operacyjnych

(semestr drugi)

wiczenie ósme

Ć

Temat: Niskopoziomowa obs uga terminali

ł

Opracowanie:

mgr in . Arkadiusz Chrobot

ż

background image

Wprowadzenie

1. Terminale

Ka dy

ż

system komputerowy jest wyposa ony

ż

w pewną liczbę urz dze

ą

ń

przeznaczonych do komunikacji z u ytkownikiem

ż

lub innymi komputerami.

Mianem „terminal” okre la

ś

się najcz

ciej

ęś

monitor i klawiatur ,

ę choć mo na

ż

tym terminem okre li

ś ć również takie urz dzenia

ą

jak modem i drukarka.

W przypadku systemów uniksowych okre la

ś

się tak również protokół terminala

wyznaczaj cy

ą

sposób obs ugi

ł

danego urz dzenia

ą

przez system operacyjny

i część systemu obs uguj c

ł

ą ą urz dzenia

ą

do interakcji z u ytkownikiem.

ż

Istnieje

zbiór funkcji wchodz cych

ą

w sk ad

ł

API, które umo liwiaj

ż

ą programom

u ytkownika

ż

sterowanie zachowaniem terminali. Z ka dym

ż

terminalem są

zwi zane

ą

dwie kolejki, wej ciowa

ś

i wyj ciowa,

ś

które stanowią rodzaj buforów

j dra

ą

na znaki, które mają zostać zapisane na ekran, b d

ą ź które zosta y

ł

pobrane z klawiatury. Ka dy

ż

terminal mo e

ż

pracować w dwóch trybach:

kanonicznym i niekanonicznym. W pierwszym trybie znaki przeczytane lub
zapisywane na terminal są przetwarzane grupami, które ko cz

ń

ą znaki nowej

linii, ko ca

ń

linii, lub ko ca

ń

pliku. Ponadto niektóre znaki mają specjalne

znaczenie, np.: mogą powodować skasowanie poprzedzaj cego

ą

je znaku.

W trybie niekanonicznym program mo e

ż okre li

ś ć samodzielnie jakimi porcjami

mają być czytane i pisane dane na terminal, oraz które znaki b d

ę ą znakami

kontrolnymi.

2. Wybrane funkcje i struktury danych

Podstawową strukturą danych wykorzystywaną w obs udze

ł

terminali jest

struktura termios. Standardy uniksowe gwarantuj ,

ą

e

ż

b d

ę ą się w niej

znajdowa przynajmniej nast puj ce pola:

ć

ę

ą

c_iflag – pole okre laj ce flagi trybu wej cia,

ś

ą

ś

c_oflag – pole okre laj ce flagi trybu wyj cia,

ś

ą

ś

c_cflag – pole okre laj ce flagi trybu sterowania,

ś

ą

c_lflag – pole okre laj ce flagi trybu lokalnego,

ś

ą

cc_t c_cc[NCCS] – tablica okre laj ca,

ś

ą

które znaki są zwi zane

ą

z funkcjami

kontrolnymi.

Uwaga:

Niektóre terminale mogą definiować w asne

ł

pola w tej strukturze, zwi zane

ą

np.

z

obs ug

ł

ą

kolorowych

wy wietlaczy,

ś

dlatego

przy

manipulacji

ustawieniami

terminala

nale y

ż

przeczytać

jego

bie

ce

żą

ustawienia,

zapami ta

ę ć je w osobnej zmiennej, a nast pnie

ę

zmodyfikować odpowiednie

pole struktury termios przy pomocy odpowiednich sta ych

ł

i operatorów

2

background image

bitowych, a nast pnie

ę

wywo a

ł ć funkcję zmieniaj c

ą ą zachowanie terminala.

Przed

zako czeniem

ń

program

powinien

przywrócić

domy ln

ś ą

obs ug

ł

ę

terminala.

funkcja isatty() – sprawdza, czy podany deskryptor pliku odnosi się do
pliku urz dzenia terminala.

ą

funkcja ttyname() – zwraca nazwę pliku terminala do której odnosi się
deskryptor.

funkcja tcgetattr() – pobiera bie

ce

żą

atrybuty terminala zwi zanego

ą

z podanym deskryptorem pliku i zapisuje je do struktury termios.

funkcja tcsetattr() – ustawia

dane

żą

atrybuty terminala zwi zanego

ą

z podanym deskryptorem pliku. Nale y

ż zauwa y ,

ż ć

e

ż stan tych atrybutów

nie zmieni się po zako czeniu

ń

program i je li

ś

nie przywrócimy domy lnej

ś

procedury obs ugi

ł

terminala mo emy

ż

zak óci

ł

ć pracę innych programów

wspó pracuj cych z tym samym terminalem.

ł

ą

makro VMIN – ma znaczenie tylko w trybie niekanonicznym, okre la

ś

miejsce w tablicy cc okre laj ce

ś

ą

liczbę bajtów, która musi się znaleźć

w kolejce wej ciowej zanim zostanie zako czona operacja odczytu.

ś

ń

makro VTIME – ma znaczenie tylko w trybie niekanonicznym, okre la

ś

miejsce w tablicy cc, okre laj ce

ś

ą

jak d ugo

ł

b dzie

ę

czekał system zanim

zako czy operacje wej cia. Jednostk czasu jest 0,1 sekundy.

ń

ś

ą

Szczegó owy

ł

opis wszystkich funkcji i struktur danych zwi zanych

ą

z obs ug

ł

ą

terminali

znajduje

się

w

podr czniku

ę

systemowym

(man

termios)

i w dokumentacji biblioteki glibc: „The GNU C Library Reference Manual”
autorstwa Sandry Loosemore, Richarda Stallmana, Rolanda McGratha,
Andrew Orama i Urlicha Dreppera.

Zadania

1. Napisz program, który sprawdzi, czy z deskryptorem standardowego wej cia

ś

(STDIN_FILENO lub wartość 0) jest zwi zany

ą

terminal. Je li

ś

tak, to program

powinien wypisać nazwę pliku urz dzenia

ą

tego terminala, oraz kilka jego

bie

cych ustawie .

żą

ń

2. Napisz program, który wy czy

łą

echo, czyli wypisywanie znaków wprowadzonych

z klawiatury na ekran. Po ponownym uruchomieniu program powinien

3

background image

przywróci echo.

ć

3. Napisz program demonstruj cy

ą

obs ug

ł

ę terminala w trybie niekanonicznym

(Mo e

ż

to być np. program posiadaj cy

ą

menu, które jest uaktywnione

naci ni ciem klawisza, bez konieczno ci potwierdzania klawiszem Enter).

ś ę

ś

4. Napisz program, po którego uruchomieniu terminal b dzie

ę

wypisywał wszystkie

informacje du ymi

ż

literami (niezale nie

ż

od ustawienia CapsLock). Efekt ten

powinno usuwa ponowne uruchomienie programu.

ć

4


Wyszukiwarka

Podobne podstrony:
instrukcja instalacji i obsługi interfejsu
Laboratorium, SO2 instrukcja 6
instrukcja G-3 geodezyjna obsługa inwestycji, wytyczne techniczne
INSTRUKCJA BHP OBSŁUGA BETONIARKI
iNSTRUKCJA BHP OBSŁUGI KRAJARKI PŁASKIEJ (GILOTYNA DO PAPIERU), BHP, Instrukcje BHP, Drukarnia
Laboratorium SO2 instrukcja 1
Instrukcja BHP obsługi czajnika elektrycznego
Program instruktażu stanowiskowego obsługa betoniarki
Cm17 (T6651E1243) Instrukcja instalacji i obsługi
Instrukcja bhp obsługi betoniarki
Laboratorium SO2 instrukcja 2
Laboratorium SO2 instrukcja 9
Laboratorium, SO2 instrukcja 9
INSTRUKCJA BHP obsługi elektronarzędzi, egzaminy zawodowe technik bhp, 1, INSTRUKCJE
Laboratorium, SO2 instrukcja 7

więcej podobnych podstron