• Nie Znaleziono Wyników

Informatyka Nr 11/12; Organ Komitetu Naukowo-Technicznego NOT ds. Informatyki - Digital Library of the Silesian University of Technology

N/A
N/A
Protected

Academic year: 2022

Share "Informatyka Nr 11/12; Organ Komitetu Naukowo-Technicznego NOT ds. Informatyki - Digital Library of the Silesian University of Technology"

Copied!
60
0
0

Pełen tekst

(1)
(2)

informatyka 1 1 — 1 2 1988

Nr 11-12

M iesięczn ik Rok XX III Listopad-G rudzień 1988

O rg a n K o m ite tu

N a u k o w o - T e c h n ic z n e g o N O T ds. In fo rm a ty k i

K O L E G IU M REDAKCYJNE:

M g r J aro s ław D E M IN E T . dr inż. W a c ła w IS Z K O W S K I, m gr Teresa JA B ŁO Ń SK A (sekretarz red akcji).

W ła d y s ła w KLEPACZ (re d a k to r naczelny).

dr inż. M a re k M A C H U R A , dr inż. W ik to r R ZEC ZK O W SK I.

m gr inż. Jan RYŻKO.

m gr H anna W Ł O D A R S K A . d r inż. Janusz ZA LEW SKI (zastępca red ak tora naczelnego).

P R Z E W O D N IC ZĄ C Y R ADY P R O G R A M O W E J:

P ro f. dr hab.

Juliusz Lech K U L IK O W S K I

M a te r ia łó w nie za m ó w io n y ch redakcja nie zw ra c a

R edakcja: 01 -517 W a rs za w a , ul. M ic k ie w ic z a 18 m. 17. te l. 3 9-1 4 -3 4

R S W ..P R A S A -K S IĄ Ż K A -R U C H "

P R A SO W E ZA K ŁA D Y G R A FIC ZN E ul. D w o rc o w a 13. 8 5-9 5 0 B Y D G O SZC Z Zam . 402 4 /8 8 . E-4

Óbj. 8.0 ark. druk. N akład 9050 egz.

ISSN 0542-9951. IN D E K S 36124

Cena egzem plarza 500 zł

5 WYDAWNICTWO £

% mi

i

! ii

5

I mmMm

§

1

i

SIGMA I

00-350 Warszawa skrytka pocztowa 1004

ul. Biała 4

W N U M E R Z E S tro n a

N E T B IO S - zasada działania i sposób użytkow ania (1)

A dam T u ch o lski 1

Uproszczone specyfikow anie system ów w spółbieżnych (2)

L e s lie Lam p o rt ' 7

Rozm ow a z kom puterem

A gnieszka M yko w iecka, A n n a O staszew ska 11

Ję z y k opisu sprzętu V H D L - podstawowe m echanizm y (1)

H e n ry k Gizdoń, A dam P a w la k , W łodzim ierz W rona 15 A M O K - m ikro kom puterow y system doradczy projektanta

i an alityka system ów kom puterow ych Tadeusz Czachórski, M a re k K o w aló w ka,

Z d zisław Szczerbiński, A n d rz ej W ilk 19

D A G G E R program utrzym ania plików

P io tr Fu glew icz, Rom an T opczyński 23

System kom putero w y E lw r o 800 (2)

W ojciech C ella ry, Je r z y K rę g lew sk i, R u ta M a ćk o w iak 26 M aszyny i algorytm y równoległe (2). M aszyny M IM D i S IM D

M a cie j M . S ys ło 30

Turbo C. Przerw an ia, sygnały, powroty

Ja n B ie le c k i 35

Przegląd sieci lo kaln ych dla I B M P C

P io tr S tru ty ń s k i 37

Z E Ś W IA T A 40

P e rsp e k tyw y rozwoju układó w A S IC

R yn e k drukarek kom puterow ych w 1988 roku Pro g ram bibliotekarza A d y

Środowisko program owe A d y Teoretyczne podstawy inform atyki

K to jest kim w IF I P . W olfgang D. Ehrenb erger

R E C E N Z J E 51

D ata & K now ledge Engineering

T E R M IN O L O G IA I I I okł.

Term inologia system ów operacyjnych (3)

W N A JB L IŻ S Z Y C H N U M E R A C H

• Bogum iła P a w la k charakteryzuje zasady działania m etaasemblerów m ikroprogram ów oraz rozwiązań m etaasemblera M IC , opracowanego w Instytucie In fo rm atyk i Po litechn ik i W arszaw skiej

• K ry s ty n a Kandziora-Blaum an i Je rz y K lsilew icz om aw iają sprzętową realizację poszczególnych poziomów protokołu liniowego sieci kom puterowych

• M ieczysław Kłopotek opisuje zagadnienia komputerowej generacji m owy z tekstu pisanego i realizację pakietu syntezy m owy T M K , przeznaczonego dla m ikrokom puterów typu IB M PC /X T /A T

• Zbigniew S tru k i E w a Zabża-Tarka prezentują prosty system zarządzania bibliograficzną bazą danych dla m ikrokom putera IB M PC /X T

• Ja n B ieleck i kontynuuje praktyczne wskazówki i podaje przykłady zastosowania rozwiązań języka program owania Turbo C na m ikrokom puterach klasy IB M PC

• M ariusz K u c opisuje dwa pakiety bibliotek procedur Turbo Pascala - Po w er Tools Plus, wersja 2 i Turbo Extender

(3)

ADAM TUCHOLSKI I n sty tu t Ł ączności Z akład T ele in fo r m a ty k i W arszaw a

' ï . m n L

N E T B IO S

- zasada działania i sposób u ży tk o w a n ia (1)

W kró tce po upowszechnieniu się kom puterów osobistych powstała potrzeba dzielenia przez nie w spólnych zasobów. B y ło to w yn ik ie m zarówno czynników ekonom icznych, takich ja k w yso kie koszty dobrych d ru karek czy dysków stałych, ja k również, co istotniejsze, potrzeba podziału wspólnej bazy da­

nych. Pow stało wówczas w iele sieci, z k tó rych szczególnie upowszechniły się w Polsce: Transnet i D -Lin k. M ają one jednak pewne w ady, a m ianowicie:

• brak standardowego sprzężenia programowego,

® obsługa zleceń sieci poniżej system u operacyjnego, na pozio­

mie BIO S- u .

Z p ew n ym opóźnieniem na sytuację ryn k o w ą zareagowała firm a I B M w raz z firm ą Microsoft, w prowadząjąc sieć IB M P C N etw ork. -

Podstaw o w ą cechą tej sieci jest użycie standardowego, sprzę­

towo niezależnego, sprzężenia m iędzy adapterem sieci a DOS- -em, w postaci zbioru procedur nazwanego N E T B IO S . Dostarcza on w ie lu gotowych mechanizm ów, takich ja k funkcje tw orzenia sesji i w y m ia n y inform acji m iędzy użytkow n ikam i sieci, a także - funkcje zarządzania siecią. W ten sposób procedury obsługują­

ce wyższe poziomy protokołu nie muszą zawierać inform acji, na ja k im sprzęcie pracują. U m ożliw ia to stworzenie jednego progra­

m u sieciowego, obsługującego wszystkie rodzaje sieci.

In n a w ażna cecha to umieszczenie najwyższego poziomu procedur obsługi sieci w system ie operacyjnym D O S . W ten sposób zapewniono realizowanie zleceń do sieci przez D O S kom putera, na któ rym znajduje się udostępniony zasób. System operacyjny zachowuje w ięc pełną kontrolę nad tym , ćo dzieje się na jego kom puterze, i zapobiega kolizjom podczas jednoczesne­

go dostępu k ilk u program ów do tego samego zasobu. T ak w ięc m ożliwe jest zastosowanie bardziej subtelnych m echanizm ów ochrony w powstałej wielodostępnej bazie danych i ograniczenie w ielkości chronionego przed niepożądanym dostępem obszaru do katalogu, p lik u czy w ręcz jednego bajtu.

Ta sieć stała się w krótce standardem, czego skutkiem było powstanie w ie lu w artościow ych program ów aplikacyjnych, działających w tym środowisku. A b y mogły one działać w inn ych sieciach, w ystarczy zasym ulow ać funkcje realizowane norm al­

nie przez N E T B IO S , za pomocą specjalnego oprogram owania - em ulatora N E T B IO S - a . T akie em ulatory znalazły się w ofercie firm produkujących k a rty adapterów sieci kom puterowych.

O feruje je również producent sieci D-Link.

Mgr inż. A D A M T U C H O L S K I ukończył studia na Wydziale Elektroniki Politechniki Warsza­

wskiej. Zajmuje się problematyką dotyczącą sieci komputerowych typu lokalnego i rozległe­

go, a w szczególności publiczną siecią teledacyj­

ną S Y N K O M z komutacją kanałów.

A DAPTER IBM PC NETWORK

F irm a I B M oferuje dla sieci I B M P C N etw o rk własne rozwiąza­

nie adaptera, dla którego funkcje N E T B IO S - a są zaprogram owa­

ne w pam ięci R O M . N E T B IO S jest rozszerzeniem oprogram owa­

nia systemowego B IO S , na tyle zintegrowanym z adapterem sieci, źe z pozycji program isty można go traktow ać jak o elem ent adaptera.

P rz y projektow aniu sieci w ystępuje zawsze problem podzia­

łu siedm iu ^warstw oprogram owania (w edług architektury O S I/ IS O ) m iędzy adapter sieci a kom puter. D la sieci IB M P C N etw o rk wprowadzono następujący podział funkcji: adapter realizuje w a rstw y 1-5 w edług a rch itek tu ry O S I/ IS O (w arstw y ukierunkow an e na kom unikację w raz z w arstw ą sesji), a pozos­

tałe w arstw y są realizowane w kom puterze m acierzystym (ang.

host) jak o rozszerzenie system u operacyjnego (np. przy w y k o ­ rzystaniu program u I B M P C L A N ).

A d apter sieci I B M P C N etw o rk jest przystosowany do pracy z szerokopasm owym kablem T V i składa się z części cyfrowej i analogowej - modemu (rys.). M odem dołączony do kabla koncentrycznego realizuje funkcje w arstw y najniższej modelu O S I/ IS O (fizycznej1*). Koprocesor 82586 w połączeniu ze sprzę­

giem szeregowym uzupełnia realizację dwóch najniższych w arstw a rch itek tu ry O S I/ IS O (fizycznej i łącza danych). Trzy wyższe w arstw y (sieciowa, transportowa, sesji) są realizowane przy w ykorzystaniu lokalnego procesora In te l 80188 oraz pam ię­

ci stałych R O M na płycie adaptera. L o k a ln y procesor 80188 zawiera dw a niezależne k a n ały D M A , program owane zegary i sterow nik przerwań. K o m u n ikacja m iędzy kom puterem m a­

cierzystym a adapterem odbywa się przez układ sprzęgający.

Adapter sieci w ykorzystuje k a n ały D M A do przesyłania danych (w dwóch kieru n kach ) m iędzy dwom a rejestram i danych typu F IF O układu sprzęgającego a buforam i w lokalnej pamięci.

Procesor realizuje cztery przerw ania zewnętrzne. D w a pocho­

dzą od układu sprzęgającego, jedno od sprzęgu szeregowego oraz jedno od koprocesora 82586. L o k a ln y procesor przygotowuje bufory dla koprocesora 82586 oraz w yko n u je program y obsługi protokołu kom unikacyjnego.

Pam ię ć dynam iczna R A M (16 K B ) jest używ ana przez procesor jak o pam ięć notatnikow a (ang. scratch m em ory), stos i bufory inform acji nadawanej i odbieranej. Pam ię ć stała R O M (32 K B ) zawiera program y dla procesora 80188. Pam ięć stała P R O M (32 B ) zawiera inform acje o adresie fizycznym adaptera sieci (róż­

n ym dla każdej karty). T en adres identyfikuje się ze stałą nazwą węzła. Pam ięć B IO S R O M jest bezpośrednio dostępna dla kom ­ putera macierzystego i realizuje sprzężenia program owe między sterow nikiem sieci i kom puterem m acierzystym . Może ona być odłączana przy użyciu przełącznika na płycie adaptera.

CHARAKTERYSTYKA NETBIOSA

N E T B IO S daje program iście środki, które um ożliwiają w ysła ­ nie inform acji do odległego kom putera, określając specyficzne

" Szybkość transmisji wynosi 2 Mb/s, w sieci może pracować 1000 stacji, a maksy­

malna odległość między stacjami jest ograniczona opóźnieniami i nie powinna przekraczać 5 km.

Inform atyka nr 1 1 -1 2 , 1988

i

(4)

cechy sieci lokalnej w formie standardu. M ożliw e jest w iarygod­

ne przesyłanie połączeniowe. Je ś li dane są zagubione lub ośro­

dek transm isji uszkodzony, N E T B IO S sygnalizuje to kodem błędu. Wiadom ości przesyłane przy użyciu datagram ów prze­

chodzą bezpośrednio do w arstw y łącza, nie w ykorzystując w peł­

ni możliwości w arstw y sieciowej i transportowej. Przesyłanie bezpołączeniowe stosuje się głównie dla wiadom ości typ u rozgła­

szanego (ang. broadcast) z m ożliwością zagubienia informacji.

N E T B IO S um ożliwia kom unikow anie się w sieci przy użyciu nazw. Każdem u adapterowi sieci można przypisać szesnaście różnych nazw oraz jedną stałą nazwę węzła, która jest zawsze obecna (zapamiętana w PRO M -ie). Sta ła nazwa składa się z 10 bajtów zerowych uzupełnionych num erem identyfikacyjnym węzła. W adą N E T B IO S - a jest to, że nie ma w budow anych mechanizm ów ochrony danych.

W N E T B IO S - ie powiązano realizację trzech w arstw arch itek­

tu ry O SI/IS O (sieciowej, transportowej i sesji), gdzie każda w arstw a kom unikuje się z przyległym i.

W arstw a sieciowa odpowiada za zestawianie połączeń w irtu a l­

nych i kom utację pakietów po optym alnej trasie. G d y w arstw a sieciowa otrzym uje jednostkę danych z w arstw y łącza danych, to \ określa, czy pakiet jest datagramem, czy też należy do połączenia wirtualnego, i przesyła go w arstw ie transportowej do dalszego opracowania.

W arstw a transportowa zam yka przepływ inform acji na trasie dw upunktow ej (ang. point-to-point). T a w arstw a odpowiada za transm isję danych w trybie potwierdzeń oraz sterowanie prze­

pływ em . U w aln ia ona wyższe w arstw y od organizowania nieza­

wodnego i efektywnego przesyłania danych. Przesyła wiadom o­

ści w arstw ie sesji, korzystając z usług w arstw y sieciowej.

W arstw a sesji organizuje i synchronizuje (ze względu na różne pojemności buforów) w ym ian ę inform acji między u żytko w n ika­

mi oraz strukturalizuje w ustalony sposób w ym ian ę danych.

Sesje są zestawiane między nazwam i (przechow yw anym i w od­

powiednich tablicach) reprezentującym i poszczególne procesy.

7 \

I z

Z \

\ 7

L o k a ln y P a ^ ie c Pamięć P a m ę c U k ła d

p ro c e s » RAM ROM PROM scr?ega.cu:y

60188 d> n a n 'i - a d o p ie r a «lent» -

C zr>Q ft^ a c /jn c

Z \

I Z I Z

Z \

M o g is k a la lok a lne

Iz

7 \

\ 7

Koprocesor 82586

Z \

Iz

Spr?<?g

s7eregow>

Z \

\ 7

W w arstw ie sesji zrealizowano koncepcję przyporządkowania adapterom sieci w ie lu nazw. W tej w arstw ie są interpretow ane polecenia przekazyw ane od użytkow n ika w formie bloków N C B (ang. netw ork control blocks).

Korzystając z N E T B IO S - a w trybie połączeniowym należy:

• Nadać danem u kom putero w i lokalnem u nazwę, przez którą jest on rozpoznawany w sieci (można też korzystać ze stałej

nazw y węzła).

• N aw iązać sesję z inną nazwą w sieci przez zestawienie połączenia logicznego (ta nazwa może pochodzić z tablicy nazw lokalnego bądź odległego adaptera sieci).

• N adaw ać i odbierać wiadom ości przy użyciu połączenia logi­

cznego (sesji).

Niezależnie od przesyłania połączenia można też korzystać z datagramów.

STEROWANIE PRACĄ SIECI

Polecenia do w yk o n an ia są przekazyw ane przez użytkow nika w formie bloków N C B . Zasady w spó łpracy bloku N C B z N ET- BlO S- em są następujące:

• N ależy utw orzyć i w yp e łn ić pola bloku N C B . Tworząc now y N C B należy w yzerow ać wszystkie pola, a następnie uzupełnić każde pole bloku zgodnie z tabelą 1.

• Zarezerw ow ać niezbędne bufory określone przez pola bloku N C B .

• U p e w n ić się, czy dla każdego aktyw nego bloku N C B zarezer­

w ow ano co najm niej 20 bajtów stosu.

• Um ieścić adres bloku N C B w parze rejestrów E S : B X i w y k o ­ nać program owe przerwanie 5CH.

• B lo k N C B nie może b yć zm ieniany ani przenoszony podczas realizacji polecenia.

• P o w yk o n an iu polecenia sterowanie jest przekazyw ane do program u generującego przerw anie 5CH. W y n ik zrealizowane­

go procesu jest przekazyw any zarówno przez rejestr A L , ja k i pole N C B _ R E T C O D E , por. tab. 1.

Poniżej podano szczegółowy opis pól bloku N C B .

N C B _ C O M M A N D - bajtowe pole kodu polecenia do w ykonania.

Tabela 1. Opis pól bloku N C B

Budow a adaptera sieci

Nazwa pola Kod Znaczenie

N C B_C O M M A N D D B OOH Pole polecenia N C B .R E T C O D E D B 00H Pole kodu powrotnego

N C B L S N D B 00H Pole numeru sesji

N C B NUM D B 00H Numer nazwy użytkownika

N C B B U F F E R © DD OOOOOOOOH Adres bufora wiadomości

N C B._LEN G T H D W 0000H Długość bufora

N C B C A L L N A M E D B 16DUP(0) Nazwa zadeklarowana lokal­

nie, bądź w innym węźle sie­

ci; przy przesyłaniu szerego­

wym dwóch bloków danych (C H A IN S E N D ) pierwsze 2 bajty określają długość, a następne 4 bajty adres drugiego bufora; pozostałe bajty są zarezerwowane

N C B N A M E D B 16DUP(0) Nazwa zadeklarowana lokalnie

N C B .R T O D B 00H Wartość przeterminowania

(ang. time-out) przy odbiorze

N C B STO D B 00H Wartość przeterminowania

przy nadawaniu

N C B P O S T © D D OOOOOOOOH Adres procedury powrotu (znak ( J ) reprezentuje adres fizyczny) N C B L A N A N UM D B 00H Numer adaptera sieci (wartość

01H jest używana dla drugiego adaptera)

N C B. C M D C P I.T D B 00H Pole stanu polecenia N C B JR E S E R V E D B 14DUP (0) Pole zarezerwowane

2

(5)

Każde polecenie może być w yk o n yw a n e zarówno w trybie synchronicznym , ja k i asynchronicznym . Je ś li najbardziej zna­

czący bit jest ustaw iony na 0, to w yb ran a jest praca synchronicz­

na. Pozostałych 7 bitów służy do w yb ran ia odpowiedniego polecenia. T ry b synchroniczny polega na zainicjow aniu polece­

nia i oczekiw aniu aż N E T B IO S zakończy jego w yko n yw an ie.

Następnie sterowanie jest przekazyw ane do program u użytkow ­ nika (tzn. do następnej instru kcji po przerw aniu 5CH). W rejest­

rze A L oraz w polu N C B _ R E T C O D E znajduje się kod powrotny.

T ryb asynchroniczny polega na zainicjow aniu polecenia z n a ty­

chm iastow ym powrotem do następnej in stru kcji po przerw aniu 5CH. D la tego rodzaju sterowania w yróżnia się dw a rodzaje kodów powrotnych. K o d n atychm iastow y jest udostępniany w rejestrze A L bezpośrednio po zainicjow aniu polecenia. Je ś li

Tabela 2. Zestawienie kodów powrotnych

jego w artość w ynosi 00H, co oznacza praw idłow e w yw ołanie, to na zakończenie jest udostępniany kod ostateczny. Zakończenie polecenia może się odbyw ać przez przerwanie lub badanie pola N C B _ C M P _ C P L T . Je ż e li zawartość pola N C B JP O S T Q je s t różna od zera, to adapter sieci generuje przerw anie pod adres w sk a­

zany przez pole N C B _ P O S T © K o d pow rotny znajduje się w polu N C B _ R E T C O D E lub rejestrze A L . Je ś li zawartość N C B _ P O S T © je s t rów na zero, to program nie jest przerw any i zakończenie odpowiedniego procesu odbyw a się po zbadaniu pola N C B _ C M P _ C P L T . Je ś li n atychm iastow y kod powrotny jest różny od 00H, to nie może być w ykonane żadne polecenie, a rodzaj błędu jest sygnalizow any w rejestrze A L (tab. 2).

N C B _ R E T C O D E - bajtowe pole zawierające kod powrotny polecenia. Je ś li kod pow rotny jest ró w n y zero, to polecenie zostało w yko n an e pomyślnie. In n y num er kodu oznacza w y k o ­ nanie błędne lub niezakończenie polecenia (por. tab. 2).

P rz y p racy w trybie asynchronicznym bez przerwań, pole N C B _ C M P _ C P L T (a nie N C B _ R E T C O D E ) sygnalizuje w yn ik realizacji polecenia i zawiera ostateczny kod powrotny. Je ś li polecenie jest w trakcie w yk o n yw an ia, to pole N C B C M P C P L T zawiera wartość OFFH.

N C B J L S N - bajtowe pole num eru sesji, liczone modulo 254 w przedziale od 1 do 254, określone po pom yślnej realizacji polecenia C A L L lub L IS T E N . Polecenia S E N D i R E C E I V E w ypełn iając to pole w ybierają odpowiednią sesję. Polecenie R E S E T w ykorzystuje to pole do określenia m aksym alnej liczby obsługiw anych sesji.

N C B _ N U M - bajtow e pole num eru nazw y liczone modulo 253 w przedziale od 2 do 254, zapisywane po po m yślnym w yko n an iu poleceń A D D N A M E i A D D G R O U P N A M E . S ta ła nazwa w ęzła ma przyporządkow any zawsze n um er 1. T en num er (nie nazwa) musi być użyty w e w szystkich poleceniach dotyczących przesy­

łania datagram ów i w poleceniu R E C E I V E A N Y . Polecenie R E S E T używ a tego pola do określenia m aksym alnej liczby obsługiw anych bloków N C B .

N C B _ B U F F E R © - 4-bajtowe pole adresu bufora, k tó ry ma być użyty przy realizacji danego polecenia.

N C B _ L E N G T H - 2-bajtowe pole określające długość bufora (w bajtach) przy realizacji poleceń: nadaw ania, odbioru i odczytu stanu.

N C B _ C A L L N A M E - 16-bajtowe pole określające nazwę partne­

ra w kom unikacji. N azw a może być zadeklarow ana w tablicy nazw lokalnego bądź odległego adaptera sieci. W szystkie bajty tego pola są używ ane do zdefiniowania nazwy.

N C B _ N A M E - 16-bajtowe pole określające nazwę zadeklarow a­

ną w lokalnej tablicy nazw. W szystkie bajty tego pola są używane do zdefiniowania nazw y. U ż ytk o w n ik może być również rozpo­

znaw any przez stałą nazwę węzła. Sta ła nazwa w ęzła składa się z dziesięciu bajtów dwójkowo-zerowych, zakończonych przez 6 bajtów udostępnianych przy realizacji polecenia A D A P T E R S T A T U S .

N C B _ R T O - bajtowe pole w yk o rz ystyw an e przez polecenia C A L L i L I S T E N do określenia przeterm inow ania dla w szystkich poleceń R E C E I V E zw iązanych z daną sesją. R ealizacja polecenia R E C E I V E dla danej sesji będzie przerwana, jeśli nie zakończy się pom yślnie przed u p ływ em określonego czasu. W artość kw antu czasowego w ynosi 500 ms. D la w artości zerowej przeterm inow a­

nie jest wyłączone.

N C B _ S T O - 1-bajtowe pole o przeznaczeniu identycznym ja k pole poprzednie, lecz dla polecenia S E N D . Przeterm ino w anie przy nadaw aniu zryw a sesję.

N C B _ P O S T © - 4-bajtowe pole w skaźnika procedury (obsługi przerwania), do której nastąpił skok po w yko n an iu polecenia.

Do procedury obsługi wchodzi się z zam askow anym i przerw a­

niam i i prio.rytetern, ja k i został przydzielony adapterowi sieci.

W yjście z procedury następuje przy użyciu in strukcji IR E T . To pole jest używ ane tylk o przy pracy asynchronicznej. Je ś li

W artość Znaczenie

00H Polecenie pomyślnie wykonane

01H Błędnie zadeklarowana długość bufora przy nadawaniu data­

gramów lub odczycie stanu

03H Błędny kod polecenia

05H Wykonanie polecenia zakończone przeterminowaniem 06H Dane odebrane niekompletnie

08H W ybrany numer sesji nie istnieje

09H Nie ma warunków do zestawienia sesji (chwilowa niedostępność lokalnych zasobów pamięci)

OAH Sesja zamknięta

OBH W ykonywanie polecenia odwołane ODH Zdublowana nazwa w lokalnej tablicy nazw

OEH Przepełnienie lokalnej tablicy nazw; zadeklarowanie więcej niż 16 nazw

OFH Nazwa lokalna nie może być usunięta, ponieważ uczestniczy w sesji; usuwana nazwa jest wyrejestrowana, jednak zajmuje miejsce w tablicy

11H Tablica lokalnych sesji jest pełna

12H Sesja nie może być zestawiona (nie wykonano polecenia L IS T E N po stronie odbiorczej)

13H Nieprawidłowo wybrany numer nazwy

14H Nie można znaleźć nazwy wywoływanej w lokalnej tablicy nazw 15H Nazwa nieprawidłowo zadeklarowana ( „ * ” lub 00H

w pierwszym bajcie nazwy) lub nie można ji?j znaleźć w lokalnej tablicy nazw

16H Nazwa użyta już w innym adapterze sieci 17H Nazwa lokalna została usunięta 18H Awaryjne zakończenie sesji

19H W ykrycie identycznych nazw przez protokół komunikacyjny (konflikt nazw)

1AH Otrzymano niestandardowy pakiet (zdalne urządzenie niezgodne z obowiązującym protokołem)

21H Chwilowa zajętość sprzętu (N E T B IO S w trakcie obsługi praierwania)

22H Przekroczenie maksymalnej liczby poleceń oczekujących na wykonanie

23H Nieprawidłowo zadeklarowany numer adaptera sieci (różny od OOH lub 01H)

24H Polecenie zakończone przed próbą jego odwołania 26H Nie.-legalna próba odwołania polecenia

4XH N E T B IO S w yk rył nieprawidłowy stan sieci ( X oznacza dowolną cyfrę szesnastkową)

50-FEH Adapter sieci w ykrył wewnętrzny błąd F F H Polecenie w trakcie realizacji

Inform atyka nr 1 1 - 1 2 . 1988

3

(6)

zawartość pola jest zerowa, to nie bierze ono udziału w przetw a­

rzaniu i program u żytko w y sprawdza stan polecenia w polu N C B _ C M D _ C P L T .

N C B _ L A Ń A _ N U M - bajtowe pole określające, z k tórym adapte­

rem sieci użytkow nik chce pracować:

00H - pierwszy adapter sieci, 01H - drugi adapter sieci.

Uw aga! D zięki w budow anym mechanizmom, N E T B IO S um ożli­

w ia współpracę sieci różnego rodzaju (np. A rcn et, E th e rn et itp.).

N C B _ C M D _ C P L T - bajtowe pole stanu polecenia. Wartość O F F H sygnalizuje realizację polecenia. W artość 00H oznacza pom yślne w yko n an ie polecenia. Każda inna wartość sygnalizuje błąd zgodnie z tab. 2. To pole jest a k tyw n e jed yn ie w tedy, gdy pole N C B _ P O S T © jest w yzerow ane. W przeciw nym w yp a d k u n a le ­ ży sprawdzić stan polecenia w polu N C B R E T C O D E .

N C B _ R E S E R V E - 14-bajtowe pole w yk o rzystyw an e przez N E T ­ B IO S do tymczasowego przechow yw ania danych.

POLECENIA NCB

Polecenia bloku N C B sterują pracą adaptera sieci. S ą one podzielone na cztery klasy:

• ogólne,

• obsługi nazw,

• obsługi sesji (tryb połączeniowy),

• obsługi datagram ów (tryb bezpołączeniowy).

Wszystkie polecenia, oprócz R E S E T i C A N C E L , mogą działać synchronicznie i asynchronicznie.

P o lecen ia ogóln e

Polecenia ogólne są używ ane do incjow ania adaptera sieci, odczytyw ania stanu oraz kontroli realizacji poleceń.

R E S E T

Zeruje stan lokalnego adaptera sieci oraz tablice nazw i sesji.

Um ożliw ia zmianę liczby obsługiw anych sesji i bloków N C B w zakresie od 1 do 32. W łączenie zasilania lub podanie wartości zerowych w odpowiednich polach bloku N C B specyfikuje użycie wartości dom yślnych, tzn. 6 sesji i 12 poleceń.

C A N C E L

O dw ołuje realizację polecenia. Adres odpowiedniego bloku N C B znajduje się w polu N C B J B U F F E R © . O dw ołanie polece­

nia S E N D powoduje zerwanie sesji.

Uw aga! R ealizacja następujących poleceń nie może b yć odwoła­

na: A D D N A M E , A D D G R O U P N A M E , D E L E T E N A M E , S E N D D A T A G R A M , S E N D B R O A D C A S T D A T A G R A M , S E S S I O N S T A T U S , R E S E T oraz C A N C E L .

A D A P T E R S T A T U S

Podaje inform ację o aktu aln ym stanie lokalnego lub odległego adaptera sieci, którego nazwa w ystępuje w polu N C B _ C A L L N A - M E . Je ś li w pierwszym bajcie pola N C B _ C A L L N A M E jest znak to otrzym ujem y inform ację o lo k aln ym adapterze sieci.

Inform acja jest przesyłana do bufora (o adresie N C B _ B U F - F E R © i długości N C B J L E N G T H ) . M in im aln a długość inform a­

cji przesyłanej do bufora stanu w ynosi 60 bajtów, m aksym alna - 348 bąjtów, gdy zadeklarow anych jest 16 nazw. Ogólnie, liczba bajtów w buforze stanu rów na się 60 + 18 (X ), gdzie X jest liczbą w yk o rz ystyw an ych nazw.

Dane przesyłane do bufora stanu m ają następującą postać:

• Id entyfikator w ęzła - 6 bajtów bajt 0 - nąjm niej znaczący bajt 5 - najbardziej znaczący

• S ta n przełączników na płycie adaptera sieci - 1 bajt bity 0-5 - zarezerwowane

b ity 6-7 - przełącznik W1/W2 w łączony (11) lub w yłączo n y (00)

• W y n ik lokalnego testowania na płycie adaptera sieci po

w łączeniu zasilania - 1 bajt

• Prog ram ow a w ersja protokołu kom unikacyjnego - 2 bajty

• S ta tystyk a błędów i nasilenia ruchu - 18 bąjtów

- przedział czasu objęty sprawozdaniem (w m inutach) - 2 bajty;

■vartość liczona modulo 0 F F F F H ;

- liczba odebranych błędnych sum kon tro ln ych C R C - 2 bajty;po osiągnięciu O F F F F H wartości nie zwiększa się dalej;

- liczba odebranych błędów podczas zestrajania - 2 bajty; po osiągnięciu 0 F F F F H wartości nie zwiększa się dalej;

- liczba w y k ry ty c h kolizji - 2 bajty; wartość liczona modulo O FFF FH ;

- liczba zerw anych transm isji - 2 bajty; w artość liczona modulo O FFF FH ;

- liczba pakietów praw idłow o w ysła n ych - 4 bajty; wartość liczona modulo 0 F F F F F F F F H ;

- liczba pakietów praw idłow o odebranych - 4 bajty; w artość liczona modulo 0 F F F F F F F F H ;

- liczba retransm isji - 2 bajty; w artość liczona m odulo O FFF FH . - liczba przypadków, w k tó rych odbiornik w yczerpał swoje zasoby - 2 bajty; w artość liczona modulo O FFF FH .

• Sta tystyk a zasobów adaptera sieci.

- zarezerwowane na pola robocze - 8 bajtów, - liczba w o ln ych bloków poleceń - 2 bajty,

- zadeklarow ana m aksym alna liczba bloków N C B - 2 bajty, - m aksym alna liczba w o ln ych bloków poleceń - 2 bajty, - zarezerwowane na pola robocze - 4 bajty,

- liczba a k tyw n yc h sesji - 2 bajty; zliczane są tu następujące sytuacje:

C A L L w trakcie realizacji, L I S T E N w trakcie realizacji, sesja zestawiona,

sesja przerwana,

H A N G U P w trakcie realizacji, H A N G U P zakończone,

- zadeklarow ana m aksym alna liczba a k tyw n yc h sesji - 2 bajty, - całkow ita liczba m ożliw ych sesji - 2 bajty.

• Liczba nazw zadeklarow anych w lokalnej tablicy nazw - 2 bajty

• Tablica lo k aln ych nazw - 16 pozycji po 18 bajtów każda.

Pierw sze 16 bajtów każdej pozycji w tablicy określa nazwę, a ostatnie dw a b ajty określają stan. P ie rw sz y bajt jest ró w n y num erow i nazw y, a drugi bąjt określa stan, przy czym istotne są tylk o trzy najm niej znaczące b ity i najbardziej znaczący bit tego baj tu (N = 0 - nazwa w yłączna, N = 1 - nazw a grupowa).

Pozostałe b ity są zarezerwow ane i mogą b yć różne od zera:

N X X X X 0 0 0 - nazwa w trakcie rejestracji, N X X X X 1 0 0 - nazwa zarejestrowana,

N X X X X 1 0 1 - nazw a w yrejestrow ana, lecz nie usunięta z lo k a l­

nej tablicy nazw,

N X X X X 1 1 0 - w y k ry c ie podwójnej nazwy,

N X X X X 1 1 1 - w y k ry c ie podwójnej nazwy, która jest równocześ­

nie w yrejestrow ana.

P o pom yślnym w yk o n a n iu polecenia udostępniana jest długość inform acji zapisanej do bufora stanu (pole N C B J L E N G T H ) . R ealizacja polecenia może być przerw ana w sk u tek przeterm ino­

w ania.

O bsługa n a zw

Po lecen ia obsługi nazw um ożliw iają nadanie n a z w y procesowi użytkow em u. N azw a może b yć w yłączn a lub grupowa. S ta ła nazwa w ęzła jest zastrzeżona jak o w yłączna. Po lecen ie R E S E T usuw a w szystkie n azw y z określofiego adaptera sieci, z w y ją t­

kiem stałej n azw y węzła. Następujące n azw y nie mogą być nadaw ane ani usuwane:

- nazw y zaczynające się od znaku lub 00H, - n azw y zaczynające się od IB M .

A D D N A M E

W p isuje 16 znaków do lokalnej tablicy nazw. T a nazwa nie może być użyta przez in n y proces użytkow y. R ealizacja polece­

nia rozpoczyna się od sprawdzenia, czy w yb ra n a n azw a b yła wcześniej zadeklarow ana w lokalnej lub odległej ta b lic y nazw.

Je ś li żądana nazwa b yła zadeklarow ana w lokalnej ta b licy nazw, to udostępniany jest jej num er oraz kod błędu 0D H (zdublow anie

(7)

n azw y w lokalnej tablicy nazw). Spraw dzenie w odległych tablicach nazw polega na w ielo k ro tn ym w ysłan iu do w szystkich w ęzłów sieci zapytania o nazwę. Lo k a ln ie przeglądane są odległe tablice nazw i jeśli żaden węzeł nie potwierdzi zapytania o na­

zwę, to wpisuje się ją do lokalnej tablicy nazw i uznaje za w yłączną. Po lecen ie powoduje również przypisania nazwie n u ­

m eru. N u m er n azw y jest udostępniany w polu N C B _ N U M a następnie w yk o rz ystyw a n y do adresowania datagram ów oraz realizacji polecenia R E C E I V E A N Y .

A D D G R O U P N A M E

W pisuje 16 znaków do lokalnej tablicy nazw. W iele procesów u żytko w ych może użyć tej samej n azw y grupowej (ang. group nam e). N azw a grupowa nie może być uprzednio zadeklarowana jak o wyłączna. R ealizacja polecenia rozpoczyna się od sprawdze­

nia, czy w yb ran a nazw a b yła wcześniej zadeklarow ana w lo k al­

nej lub odległej tablicy nazw. Je ś li żądana nazwa b yła uprzednio zadeklarowana w lokalnej lub odległej tablicy nazw, to jest udostęp­

niany numer oraz kod błędu ODH (zdublowanie nazwy w lokalnej tablicy nazw). Sprawdzenie w odległych tablicach nazw polega na w ielokrotn ym w ysłan iu do w szystkich w ęzłów sieci zapytania 0 nazwę w yłączną. L o k a ln ie przeglądane są odległe tablice nazw 1 jeśli żaden w ęzeł nie potwierdzi zapytania o nazwę w yłączną, to wpisuje się ją do lokalnej tablicy nazw i uznaje za grupową.

Polecenie powoduje rów nież przypisanie nazwie num eru. N u ­ m er nazw y jest udostępniany w polu N C B _ N U M , a następnie w yk o rz ystyw a n y do adresowania datagram ów oraz realizacji polecenia R E C E I V E A N Y .

D E L E T E N A M E

U su w a nazwę (16 znaków) z tablicy nazw. Je ż e li usuwana nazwa bierze udział w sesji, to udostępniany jest kod błędu OFH.

Realizacja polecenia jest opóźniona do m om entu zakończenia sesji lub jej przerwania. Przd usunięciem nazw y należy użyć polecenia H A N G U P .

O bsługa sesji

Polecenia obsługi sesji um ożliwiają zestawienie połączenia logicznego (sesji), w ysłan ie i odbiór wiadomości, zakończenie sesji oraz odczytanie stanu sesji. Sesja może być zestawiana z nazwą zadeklarow aną w tablicy lokalnej lub z nazwą zadekla­

rowaną w odległym adapterze sieci. N azw y są w yko rzystyw an e tylko do zestawienia połączenia. P o zestawieniu połączenia, w p o lu N C B _ L S N udostępniany jest 1-bajtowy num er sesji, który jest następnie u żyw an y przy przesyłaniu połączeniowym za­

m iast pełnego 16-bajtowego adresu. Dopuszcza się m aksym alnie 32 sesje. T a sama para nazw może dotyczyć w ięcej niż jednej sesji. D ana sesja może obsługiwać równocześnie nadaw anie i odbiór. Polecenie R E S E T zryw a wszystkie sesje.

C A L L

Polecenie zestawia połączenie między lokalną nazwą podaną w polu N C B _ N A M E oraz drugą nazwą (lokalną lub odległą) podaną w polu N C B _ C A L L N A M E . N azw a w yw o ływ a n a jest kolejno poszukiwana w lokalnej tablicy nazw, a jeśli nie jest znaleziona, w ysłan e jest w ielokrotne zapytanie do wszystkich węzłów sieci, które przeglądają lokalne tablice nazw. P o stronie nazw y w yw o ływ a n ej m usi być w ygenerow ane polecenie L I S ­ T E N . Realizacja polecenia może być przerw ana w sk u tek prze­

term inowania. Pom yśln a realizacja polecenia kończy się naw iąza­

niem połaczenia, którem u przydzielony jest tzw. num er sesji (pole N C B JL S N ) .

L I S T E N

U m ożliw ia zestawienie połączenia między lokalną nazwą w y ­ łączną podaną w polu N C B _ N A M E oraz drugą nazwą w yłączną (lokalną lub odległą) podaną w polu N C B _ C A L L N A M E . Je ś li na pierwszym m iejscu pola N C B _ C A L L N A M E znajduje się znak to połączenie zostanie zestawione z dowolnym w ęzłem sieci żądającym połączenia. R ealizacja polecenia nie może b yć prze­

rw an a w sku tek przeterm inow ania. Po m yśln a realizacja polece­

nia kończy się nawiązaniem połączenia, którem u przydzielany jest tzw. num er sesji (pole N C B L S N ). Je ś li polecenie używa znaku to w p o lu N C B C A L L N A M E udostępniana jest nazwa węzła, z którym zestawiono sesję. Polecenie L I S T E N dla określo­

nej nazw y ma wyższy priorytet niż L I S T E N dla dowolnej nazwy.

H A N G U P

Z am yk a połączenie o num erze podanym w polu N C B .L S N . Wszystkie zainicjowane polecenia R E C E I V E są zaniechane, zaś realizacja polecenia S E N D jest przeprowadzona do końca (jeśli zakończy się przed upływ em 20 s).

S E N D

Przesyła dane korzystając z num eru sesji (pole N C B JL S N ) . Dane są pobierane z bufora (o adresie N C B „ B U F F E R © i długoś­

ci N C B _ L E N G T H ). Długość bufora jest ograniczona do 65 535 bajtów. W y k o n yw an ie polecenia może być przerwane w skutek przeterm inow ania ustalonego przy n aw iązyw an iu połączenia.

Je ś li k ilk a poleceń S E N D oczekuje na w ykonanie, to ich realizac­

ja przebiega szeregowo, zgodnie z zasadą F IF O . C H A IN S E N D

Przesyła sekw encyjnie dane korzystając z num eru sesji (pole N C B L S N ) . D ane są pobierane kolejno z dw óch buforów i łączo­

ne w całość. Pie rw sz y bufor jest określony tak, ja k dla polecenia S E N D . P o le N C B C A L L N A M E jest w yk o rzystyw an e do podania drugiego bufora (tabela 1). W yko n an ie połączenia może być przerwane w sku tek przeterm inowania, ustalonego przy n a w ią ­ zyw aniu połączenia. Je ś li k ilk a poleceń C H A IN S E N D oczekuje na w ykonanie, to ich realizacja przebiega szeregowo, zgodnie z zasadą F IF O .

R E C E I V E

Odbiera dane korzystając z num eru sesji (pole N C B N U M ).

Dane są ładowane do bufora (o adresie N C B _ B U F F E R © i długo­

ści N C B L E N G T H ). Je ż e li długość bufora przygotowanego do odbioru jest niewystarczająca, to udostępniany jest kod błędu 06H (dane odebrane niekom pletnie). Można użyć następnego polecenia odbioru dla odzyskania brakującej infor­

macji, lecz przed up ływ em przeterm inowania. P o pom yślnym w yko n an iu polecenia udostępniana jest długość danych odebra­

n ych (pole N C B JL E N G T H ) . W yko n an ie polecenia może być zaniechane w sku tek przeterm inow ania, ustalonego przy n a w ią ­ zyw aniu połączenia. Je ś li k ilk a poleceń R E C E I V E oczekuje na w ykonanie, to ich realizacja przebiega stosownie do priorytetu odbioru:

- R E C E I V E ,

- R E C E I V E A N Y dla określonej nazwy,

R E C E I V E A N Y dla każdej nazw y zadeklarowanej w lokalnej tablicy nazw.

W ram ach priorytetu odbiór odbyw a się szeregowo zgodnie z zasadą F IF O .

R E C E I V E A N Y

Zapew nia odbiór danych od każdego, kto ma z nazwą lokalną zestawione połączenie. W tym poleceniu należy używ ać 1-bajto- wego num eru własnej nazw y (pole N C B _ N U M ) zamiast pełnej 16-bąjtowej nazwy. N um er nazw y jest udostępniany po w yk o n a ­ niu polecenia A D D N A M E lub A D D G R O U P N A M E (pole N C B N U M ). Podanie w polu N C B JN U M w artości O FFH um ożli­

w ia odbiór inform acji przesłanej połączeniowo dla dowolnej nazw y w lokalnej tablicy nazw.

Je ż e li długość bufora przygotowanego do odbioru jest n ie w y­

starczająca, to udostępniany jest kod błędu 06H. D la odzyska­

nia brakującej inform acji można użyć następnego polecenia R E C E I V E , lecz przed u p ływ em przeterm inow ania po stronie nadaw cy. P o pom yślnym w yko n an iu polecenia udostępniane są inform acje w odpowiednich polach bloku N C B : N C B JL E N G T H , N C B _ L S N , N C B _ N U M . W y k o n yw an ie polecenia nie może być przerwane w skutek przeterm inow ania ustalonego przy n aw ią­

zyw aniu połączenia. Je ś li k ilk a R E C E I V E oczekuje na w yk o n a ­ nie, to ich realizacja przebiega w edług zasady opisanej powyżej.

In form atyka nr 1 1 -1 2 , 1988

(8)

S E S S IO N S T A T U S

Zapisuje do bufora (o adresie N C B _ B U F F E R © i długości N C B J L E N G T H ) stan w szystkich a k tyw n yc h sesji dla nazw y z lokalnej tablicy nazw podanej w polu N C B _ N A M E . Podanie znaku w pierwszym bajcie pola N C B _ N A M E specyfikuje wszystkie nazw y z tablicy. M in im aln a postać inform acji przesy­

łanej do bufora stanu w ynosi 4 bąjty. D ane przesyłane do bufora mają następującą postać:

• num er nazwy, dla której przygotowuje się sprawozdanie - 1 bajt,

• liczba sesji skojarzonych z daną nazwą - 1 bajt,

• liczba zaległych poleceń R E C E I V E D A T A G R A M oraz R E ­ C E I V E B R O A D C A S T D A T A G R A M oczekujących na realizację - 1 bajt,

• liczba zaległych poleceń R E C E I V E A N Y oczekujących na realizację - 1 bajt,

• Inform acje dotyczące stanu sesji - 36 bajtów dla każdej sesji - num er lokalnej sesji - 1 bajt,

- stan lokalnej sesji - 1 bajt, opisany następująco:

L I S T E N w trakcie realizacji - 01H, C A L L w trakcie realizacji - 02H, sesja zestawiona - 03H,

H A N G U P w trakcie realizacji - 04H, H A N G U P zakończone - 05H, sesja zerw ana - 06H,

- nazwa lokalna - 16 bajtów, - nazwa odległa - 16 bajtów,

- liczba zaległych poleceń R E C E I V E oczekujących na realizację

- 1 bajt, ,

- liczba zaległych poleceń S E N D i C H A IN S E N D oczekujących na realizację - 1 bajt.

P o pom yślnym w yk o n an iu polecenia udostępniana jest długość inform acji zapisanej do bufora stanu (pole N C B _ L E N G T H ).

Realizacja polecenia nie może być przerw ana w sku tek przeter­

m inowania.

O bsługa d a ta g ra m ó w

Polecenia obsługi datagram ów um ożliw iają przesyłanie datag­

ram ów do adresatów o nazwie w yłącznej, nazwie grupowej, w szystkich nazwach w w ęzłach oraz - odbiór datagram ow y od adresatów określonych w ten sam sposób. P rz y przesyłaniu datagram ów wiadomość nigdy nie jest potwierdzana przez odbiorcę, a w ięc może ulec zagubieniu. Przesyłan a wiadomość jest ograniczona do 512 bajtów. P rz y nadaw aniu dane są pobiera­

ne z bufora (o adresie N C B B U F F E R © i długości N C B JL E N G T H ), a przy odbiorze przesyłane do bufora. P o pom yślnym w yk o n an iu polecenia udostępniane są dodatkowe inform acje w odpowied­

nich polach bloku N C B : N C B _ L E N G T H , N C B _ C A L L N A M E . Je ż e li długość bufora przygotowanego do odbioru jest n iew ystar­

czająca, to udostępniany jest kod błędu 06H. Pozostałe dane nie odebrane są stracone.

S E N D D A T A G R A M

P rz esyła datagram do adresata określonego nazwą w yłącz ­ ną, nazwą grupową - w e własnej lub odległej stacji. Po le ce ­ nie w ykorzystu je do adresowania num er własnej n azw y (pole N C B _ N U M ) oraz pełny adres określający adresata wiadomości (pole N C B _ C A L L N A M E ). Datagram jest przesyłany do określo­

nego w ęzła z wyszczególnioną nazwą, równą num erow i nazw y adresata. Polecenie R E C E I V E D A T A G R A M po stronie odbior­

czej sprawdza, czy w otrzym anym datagram ie jest w ysp ecyfiko­

w an y num er n azw y oraz porównuje go z w łasnym . Je ś li datag­

ram nie ma w yspecyfikowanego num eru nazwy, to jest odbiera­

n y dow olnym poleceniem R E C E I V E D A T A G R A M . S E N D B R O A D C A S T D A T A G R A M

Prz esyła datagram do w szystkich w ęzłów sieci. Polecenie w ykorzystuje do adresowania num eru własnej nazw y (pole N C B _ N U M ).

R E C E I V E D A T A G R A M

Odbiera datagram y od dowolnego w ęzła sieci, k tó ry przesy­

ła ł wiadomość.

dokończenie na s. 36

N o w e książki

J . S . H a u g d ah l, In sid e N E T B IO S , A r c h ite c tu re T e c h n o lo g y C o rp ., M in n e a p o lis ( M N ) , 1986, IS B N 0-939405-01-6

Książka jest pogłębioną prezentacją systemu N ET BIO S, opracowanego pierwotnie jako sprzęg programowy dla karty adaptera sieciowego do sieci IB M PC Network. Publikacja jest przeznaczona dla zaawansowanych użytkowników NET- B I0 S - a i ma charakter opisu technicznego (ang. technical reference). Na początku omówiono w niej pochodzenie N ETBIO S-a w perspektywie historycznej oraz jego miejsce w rodzinie sieci komputerowych na tle siedmiowarstwowego modelu odniesienia ISO /O SI. W głównej części książki przed­

stawiono dwie najważniejsze implementacje systemu N ET ­ B IO S dla sieci firm y'IBM : pierwotną dla sieci PC Network i emulator dla sieci Token -Ring. Oprócz koniecznego zilustro­

wania podobieństw i różnic tych dwóch implementacji firmy IB M w tej części porównano je z implementacjami innych firm. Co więcej, przedyskutowano także rozwiązania innych sieci, np.sprzęg programowy A P P C (ang. advanced program- -to-program com m unication) sieci Token-Ring oraz sieci firmy Microsoft. Ważnym elementem książki jest wskazanie na ograniczenia wszystkich sieci tego rodzaju, spowodowane oparciem obsługi plików na jednozdaniowym systemie ope­

racyjnym PC-DOS.

Najważniejszą częścią książki jest opis poleceń N ETBIO S- -a i sposobu korzystania z bloku N C B (ang. network control block). Po dokładnej prezentacji struktury bloku N C B, omó­

wiono wszystkie polecenia, dzieląc je na cztery kategorie - ogólną, obsługi nazw, obsługi sesji i obsługi datagramów - podając także systematyczny wykaz możliwych błędów.

W dodatku, może nazbyt skromnie, zawarto istotne informacje dotyczące tworzenia programów aplikacyjnych opartych na N ETBIO S-ie. Szczegółowo omówiono programowanie bram (ang. gatew ays) do innych sieci i - rozproszonych baz danych. Dobór takich właśnie przykładów jest bardzo zręczny, ze względu na gwałtowny rozwój zastosowań sieciowych w tych obu kierunkch. Przy ich omawianiu wskazano jednak na znaczne niedostatki użytkowania tą metodą innych sieci i sieciowych baz danych. Książkę uzupełniono spisem kilku­

nastu wartościowych pozycji bibliograficznych dotyczących NETBIOS-a.

J . S . H a u g d ah l, In sid e th e T o k en -R in g , N o rth -H o lla n d , A m ste rd a m , 1986, IS B N 0-444-70139-7.

Sieć lokalna IB M Token-Ring zgodna z amerykańską normą IEEE 802.5 i międzynarodową ISO 8802.5 ma szanse-z uw a­

gi na właściwości dogodne do zastosowań przemysłowych - zdominować rynek urządzeń sieciowych przeznaczonych dla przemysłu. W książce omówiono od wewnątrz tę sieć, stanowiącą jeden z najbardziej interesujących technicznie wyrobów lat osiemdziesiątych.

Pierwszy rozdział zawiera ogólny przegląd sieci Token- -Ring, przedstawia jej opracowanie, eksploatację, zapewnia­

ne usługi i kierunki rozwoju. W rozdziale drugim omówiono rozwiązania sprzętowe sieci, tj. system okablowania zastoso­

wany przez firmę IB M , jednostkę dostępu do ośrodka (M A U , ang. media access unit), adapter dla komputera PC i zaprojek­

towany specjalnie dla sieci Token-Ring zestaw mikroukładów V LSI. W rozdziale trzecim przedstawiono kolejno N ET BIO S, włącznie z blokiem N C B (ang. network control block), zasady komunikacji asynchronicznej oraz protokoły na poziomie łącza logicznego i łącza fizycznego. Rozszerzeniem tego rozdziału jest rozdział czwarty, który zawiera omówienie:

programu obsługi adaptera PC, poleceń N ETBIO S-a i sprzęgu A P P C (ang. advancedprogram-toprogram com m unication).

Usługi zapewniane przez sieci Token-Ring komputerom PC przedstawiono w rozdziale piątym. Należą do nich, m. in.:

komunikacja asynchroniczna, dostęp do dużych komputerów sieci S N A (ang. system network architecture), połączenia wzajemne z siecią IB M PC Network, obsługa plików i obsługa

druku. ---

dokończenie na s. 51

(9)

LESLIE LAMPORT

D ig ita l E q u ip m en t C orporation S y stem s R esearch C enter P alo A lto, sta n K a lifo rn ia USA

Uproszczone s p e c y fik o w a n ie s y s te m ó w w spółb ieżn ych (2)

W drugiej części a rty k u łu przedstawiono trzy inne specyfikac­

je: dokładniejszą specyfikację autom atu z wodą sodową i dwie specyfikacje bazy danych.

IN N A S P E C Y F I K A C J A A U T O M A T U Z W O D Ą S O D O W Ą

N a w yd ru k u 1 przedstawiono inną specyfikację autom atu z wodą sodową, używ ając specjalnego języka przypominającego z w yk ły d e k laracyjn y jęz yk program owania. D eklaracje poprze­

dzone klauzulą in te rfa c e procédures określają specyfikację sprzężenia, która jest pominięta. D eklaracje z klauzulą v a r określają zakres w artości przybieranych przez x i y. N aw iasy kątow e obejm ują operacje, które są niepodzielne (atomowe).

In stru kcja y w yko h u je akcję złożoną z akcji sprzęgającej depo- sit_co in (w rzucenie m onety) i akcji ustaw ienia zmiennej y na wartość wrzuconej m onety. K la u z u la o n ly if, w prowadzona jedynie na użytek tej instrukcji, znaczy że akcja może w ystąp ić tylko wtedy, gdy w artość x + y po n ow ym przypisaniu w ynosi co najwyżej 50. T a k więc, klauzula o n ly i f zapobiega możliwości w rzucenia m onety półdolarowej po w rzucen iu ćwierćdolarowej.

i n t e r f a c e p r o c é d u r e s dcpoxit.roili . . . d ispense.soda . . . ; v a r x: {0. 25, 50}:

ÿ: {25, 50};

b e g i n n: ( x := 0 ) : 3: w h i l e ( x < 5 0 )

d o f . ( y := d tp o til.e o in o n l y i f x -f y„,w < 5 0 ):

<: (i i + i)

o d ; c ( d isp e n se .sa la ) e n d

W yd ru k 1. In n a specyfikacja automatu z wodą sodową

W y d ru k 1 z a w ie ra program . Ja k go się in terp retu je ja k o sp ecyfikację w m etodzie aksjom atu przejść?

A b y zinterpretow ać ten program jak o specyfikację w metodzie aksjom atu przejść, należy opisać funkcje stanu, akcje oraz pozostałe elem enty specyfikacji. W ew n ętrzn ym i fUnkcjam i sta­

nu są zm ienne x i y oraz dodatkowa funkcja stanu, o nazwie pc, opisująca stan sterowania programem. Fu n k c je stanu sprzężenia są w yspecyfikow ane dom yślnie (np. niejaw nie) w pominiętej części klauzuli in te rfa c e procedures. Fu n k c ja stanu x może przybierać w artości 0,25 i 50 a funkcja stanu y - w artości 25 i 50.

Fu n k cja stanu pc przybiera wartości: a, /?, y, <5, e. W artości początkowe funkcji x i y są nieokreślone, a w artość początkowa pc w ynosi a, wskazując, że sterowanie jest początkowo ustaw io­

ne na instrukcję a. Je s t pięć akcji, w szystkie objęte naw iasam i k ąto w ym i i opatrzone etykietam i a , ..., e. A k c je y i e są akcjam i sprzężenia w yk o n yw a n ym i, odpowiednio, przez otoczenie i przez system; pozostałe są akcjam i w ew nętrznym i. A ksjo m aty przejść dla tych akcji specyfikują następujące dopuszczalne zm iany funkcji stanu.

a: T a akcja może w ystąp ić tylk o w tedy, gdy pc ma wartość a.

Zm ienia w artość x na 0, w artość pc na fi, a w artość y pozostawia niezmienioną.

P'. Może w ystąp ić tylk o w tedy, gdy pc = jft. Je ż e li x <50, to zmienia w artość pc na y; w przeciw nym razie zmienia w artość pc na e.

W artości x i y pozostawia bez zmian.

y: Reprezentuje akcję użytkow nika polegającą na w rzucen iu monety. U staw ia w artość y na ró w ną w artości wrzuconej m one­

ty, która m usi być monetą ćwierć- lub półdolarową (ponieważ y może rów nać się tylk o 25 lub 50) i pozostawia w artość x bez zmian. T a akcja może w ystąp ić tylk o w tedy, gdy pc = y a now a w artość y spełnia nierówność x + y^ 5 0 .

<5: Może w ystąp ić tylko w tedy, gdy pc = 6. U staw ia wartość x na poprzednią wartość powiększoną o poprzednią wartość y. Pozos­

taw ia wartość y bez zm iany i ustaw ia wartość pc na /?.

e. Może w ystąpić tylk o w tedy, gdy pc = e. U staw ia w artość pc na a i pozostawia w artości x i y bez zmian. T a akcja reprezentuje w ydan ie puszki z wodą sodową.

W tej sp ecyfik a cji x i y w y g lą d a ją ja k zw ykłe zm ienne program u, lecz pc w yd a je się dziw ne. Czy jest ja k a ś z asad n icza ró żn ica m iędzy fu n k c ją stan u pc a fu n k c ja m i stan u x i y ?

Nie. A b y opisać w yko n an ie program u napisanego w języku deklaracyjn ym , należy określić, ja k zmienia się sterowanie program em i ja k zm ieniają się w artości zm iennych. Program ista nie może ja w n ie odw oływ ać się do „licz n ik a rozkazów” , ponie­

w aż jego w artość jest zarówno częścią stanu program u ja k i wartością zw ykłej zmiennej. W celu przedstawienia stanu obliczeń, programista ma często do w yboru, czy użyć dodatko­

w ej zmiennej czy bardziej złożonej stru k tu ry sterowania.

Czy każd y p rogram jest sp ecyfik acją ?

T ak, program napisany w dow olnym języku program owa­

nia można interpretow ać jak o specyfikację metodą aksjom atu przejść. G łó w n ym zadaniem w konstruow aniu kom pilatora języka źródłowego na język w y n ik o w y jest przedstawienie w jęz y k u w yn ik o w ym funkcji stanu specyfikow anych przez program, włącznie z takim i ja k pc i stos (do w yw o ływ a n ia procedur), które nie są ja w n ie zadeklarowane. Pro g ram napisa­

n y w języku wysokiego poziomu jest specyfikacją kodu w yn ik o ­ wego generowanego przez kom pilator. Je d y n ą różnicą między program em a specyfikacją wysokiego poziomu jest to, że prog­

ram jest realizo w any przez kom pilator bez udziału człowieka.

Je ż e li k ażd y p ro g ram jest sp ecyfik acją, to dlaczego nie m ożna w y ra ż a ć sp ecyfik a cji w zw yk łym języku p ro g ram o w an ia, lecz trzeba u ż yw ać języków sp ecyfik a cyjn ych ?

T a k można robić, jed n ak ję z y k i program owania są ograniczo­

ne przez w ym aganie, aby program y b y ły kom pilow ane na względnie efek tyw n y kod. Po n iew aż specyfikacje nie muszą być kom pilow ane, ję z y k i specyfikacyjne um ożliw iają prostsze spe­

cyfikacje niż mogą być napisane w językach program owania.

Ponadto, ję z y k i program owania prowadzą do tworzenia zbyt re stryk tyw n ych specyfikacji. Przykłado w o , w większości jęz y­

ków program owania można łatw o stwierdzić, że jedna akcja musi następować po drugiej, lecz trudno jest w yrazić fakt, że obie akcje mogą być w yk o n yw a n e w dowolnej kolejności. T akie jęz yki prowadzą do specyfikacji, które niepotrzebnie ograniczają kolejność w yk o n yw a n ia akcji.

In form atyka nr 1 1 -1 2 , 1988

7

(10)

Ja k ic h ro dzajó w konstru kcji m ożna u ż yw ać w językach specy- fik a c yjn yc h , a nie m ożna w językach p ro g ra m o w a n ia ?

Podstaw ow ą konstrukcją języka program owania, służącą do w yrażania ja w n y c h zmian wartości, jest instrukcja przypisania.

W języku specyfikacyjnym , instrukcję przypisania można roz­

szerzyć tak, aby w yrazić dowolną relację m iędzy poprzednimi a now ym i w artościam i funkcji stanu. Przykłado w o , instrukcję y z w yd ru k u 1 można przedstawić jak o następującą relację między poprzednimi a now ym i w artościam i zm iennych:

y new = deposit_coin A xnew = xold A y new + xold s?50 (1) gdzie deposit_coin jest pew nym w yrażeniem w iążącym po­

przednie i nowe w artości funkcji stanu sprzężenia, która jest zdefiniowana dom yślnie przez pom iniętą specyfikację sprzęże­

nia.

Z w y k ła instrukcja przypisania jest szczególnym przypadkiem po relacji, w której now a w artość zmiennej rów na się w artości wyrażenia wiążącego tylko poprzednie w artości zm iennych.

Jednakże, istnieją ogólniejsze relacje, ja k np.:

a0id = sin bnew -f- 3‘Cosbnew

która w yraża związek m iędzy now ą w artością zmiennej b i po­

przednią w artością zmiennej a. T a k a relacja nie może być w yrażona w jęz yku program owania, ponieważ nie może być skom pilowana na efek tyw n y kod. N ie ma żadnego powodu, aby jej nie używ ać w języku specyfikacyjnym .

Aksjom at przejść dla akcji, k tó ry określa zm iany funkcji stanu dopuszczalne dla tej akcji, jest w łaśnie taką relacją m iędzy poprzednimi a now ym i w artościam i funkcji stanu. P rzykład o w o aksjom at przejść dla instrukcji y otrzym uje się przez połączenie relacji (1), która opisuje dopuszczalne zm iany x i y, z relacją:

pc„id = y A pc new =

<5

która zapewnia dopuszczalne zm iany pc i zawiera wym aganie, że akcja może być w yko n an a tylko w tedy, gdy w artość początko­

w a pc równa się y. Pro g ram z w y d ru k u 1 można zastąpić zbiorem pięciu aksjom atów przejść o tej postaci. Jednakże, specyfikacja jest bardziej czytelna, jeśli używ a się z w yk łych konstrukcji języka program owania, takich ja k i w h ile , aby niejaw nie opisać dopuszczalne zm iany pc, zamiast jaw nego pisania relacji m iędzy jego poprzednimi i now ym i wartościam i.

Rysun ek i pro gram są dw om a ró żn ym i sp ecyfik acjam i auto­

m atu z w odą sodow ą. Ja k i jest zw iązek m iędzy n im i?

S ą one równow ażne przy założeniu, że nie są uzupełnione o odpowiednie specyfikacje sprzężeń. Inaczej m ówiąc, każda z nich jest popraw ną realizacją drugiej. Poniżej w ykażę, że diagram jest popraw ną realizacją programu. W ykazan ie p ra w ­ dziwości w przeciwną stronę w ym aga k ilk u pojęć, które zostaną wprowadzone w kolejnym przykładzie.

jf ¡»- = o — / = I D

/*• = # o r /w = 7 — ¡f * = 0 — / = 1 D j = 25 - / = I I D

X = 50 — / = I I I (im pussililo if pc = •))

» o

J*C = /• — i f T + y = 25 — / = II 0 t + y = 50 — / = I I I f]

t + y = 75 — impossibic

fl 0

/"• = <* - / ^ J I I

fi

W yd ru k 2. D efinicja funkcji f za pomocą x, y i pc

Interpretacja diagram u jak o specyfikacji metodą aksjom atu przejść zakłada istnienie funkcji stanu f o pew n ych w łaściw oś­

ciach. A b y udowodnić, że program spełnia tę specyfikację, należy w ykazać istnienie funkcji f. W yko n u je się to definiując f za pomocą funkcji stanu x, y i pc, k tó rych istnienie jest zapewnione przez interpretację program u jak o specyfikacji metodą aksjom atu przejść. N ajp ierw zauważm y, że x<50 gdy pc

11 Zwróćmy uwagę, że wydruk 2 nie jest programem; jest zwykłą matematyczną definicją f jako funkcji x. y i pc, zapisaną w notacji Dykstry.

= y, a x + y si50, gdy pc =<5. Dowodzi się tego w ykazując, że te dwie asercje są praw dziw e początkowo i pozostają praw dziw e przy każdej akcji. W artość funkcji f jest zdefiniowana w yraż e­

niem z w yd ru k u 2, zapisanym przy użyciu konstrukcji D y k s t r y11 if. Ostatecznie w ykażę, że dla takiej definicji fu n k cji f, każda akcja dozwolona przez specyfikację w ed ług program u odpowia­

da akcji (zm ianie i) dozwolonej przez specyfikację w edług diagram u. C zytelnik może sprawdzić, że akcje a, /i i y nie zmieniają funkcji f. P rzykład o w o akcja a może być w ykonana tylko w tedy, gdy pc =ot (wówczas f = I), a po jej w yk o n a n iu pc

= /? i x = 0 (tzn. f pozostaje równe I). C zytelnik może również sprawdzić, że w yko n an ie akcji y odpowiada w rzu cen iu m onety ćw ierćd o laro w ej lub w rzucen iu m onety p ó ld o laro w ej z diagra­

mu. Przykładow o, załóżmy że akcja y jest w yk o n yw a n a dla x = 25. Po n iew aż może to być w yko n an e tylk o w ted y, gdy pc =y, w y n ik a stąd że początkowo f = H . Ze specyfikacji y w yn ik a, że dla wartości początkowej x = 25 taka akcja może zmienić wartość x, y i pc tylko ustaw iając y na 25 i pc na <5, co oznacza że f = H I. T aka zmiana w artości f z l l n a I I I jest zapewniana przez akcję w rzucenie m onety ćw ierćd o laro w ej z diagram u. Czytelnik może sprawdzić, że druga możliwość, tzn. w ykonanie akcji dla x = 0, również powoduje zmianę w artości f dozwoloną przez akcje w rzucenie m onety ćw ierćd o laro w ej lub w rzucen ie m onety p ó ldo laro w ej z diagram u. Podobnie, w yk o n an ie akcji e zmienia f w sposób dopuszczalny dla przedstawionej na diagram ie akcji w yd a n ie puszki.

Czy to jest w szystko, czego n ależy do w ieść?

Nie dowiedziono jeszcze, że program stanowi popraw ną reali­

zację sprzężenia z diagramu. W ym aga to jed n ak w ykazania, że akcje deposit_coin i dispense_soda są p o praw nym i realizacjam i odpowiednich a k cji przedstaw ionych na diagramie. N ie można tego jed n ak uczynić, ponieważ nie ma specyfikacji sprzężenia ani w program ie, ani w diagramie.

Ja k m ożna sfo rm alizo w ać n iefo rm aln e rozum ow anie prze­

prow adzone w dow odzie?

N iech w ektor stan u dla specyfikacji w edług program u będzie trójką dopuszczalnych w artości x, y i pc, a w ek to r stanu dla specyfikacji w edług diagram u - dopuszczalną w artością funkcji f (I, n lub ffl). A b y zdefiniować funkcję f za pomocą x, y i pc, należy zdefiniować odwzorowanie F w ekto ró w stanu program u na w ek to ry stanu z diagram u. Przykłado w o , F(0, 25, (5) = I I znaczy, że f = I I , gdy x = 0, y = 25 i pc = <5.

Niech dla każdej akcji ę, A^ oznacza aksjom at przejść dla ę. Je s t to relacja m iędzy poprzednimi i now ym i wartościam i, inaczej m ó w iąc- zbiór par w ektoró w stanu. Przykłado w o , para ((0,50, y), (0, 25, ¿)) należy do A „ ponieważ m ożliwe jest w yk o n an ie akcji y przechodząc od wartości x = 0, y = 50 i pc = y do w artości x = 0, y = 25 i pc = <5.

N iech A x i A2 oznaczają zbiory akcji, odpowiednio, dla diagra­

m u i program u. Fo rm alnie, należy udowodnić następujące tw ie r­

dzenie:

V i e A 2v (v, w ) e A ; 3 n e A „ takie że (F (v ), F (v ), F (w )) e A,, T ę form ułę odczytuje się następująco (w yrażen ia w nawiasach k w ad rato w ych odpowiadają poszczególnym częściom powyż­

szego zapisu):

dla każdej akcji [ę] z program u [z A 2] i każdej zm iany wartości x, y i pc [z v na w ] dopuszczalnej dla tej akcji [(r, w ) z A,*] istnieje akcja [>;] z diagram u [ z A x], taka że odpowiednia zmiana wartości f [z F (v ) na F (w )] jest dopuszczalna dla tej akcji

[(F(v), F (w )) należy do A ,].

Co n a p ra w d ę zostało dow iedzione?

Fo rm a ln ym znaczeniem specyfikacji w edług diagram u jest formuła:

3 f taka, że X t

gdzie X j jest form ułą opisującą, ja k może zm ieniać się wartość f.

Znaczeniem program u jest formuła:

3 x, y, pc takie, że X2

gdzie X2 opisuje, ja k mogą zm ieniać się w artości x, y i pc.

Dowiedziono form uły

( a * , y. pc t.ż. X j ) u ( a f t. ż X i )

Cytaty

Powiązane dokumenty

C-Sliell (nazwa oznaczająca podobieństwo składni do języka C) i Bourne Shell (od nazwiska autora). Obie mogą być używane jako interakcyjne interpretery poleceń

W sieciach tych stosuje się najróżniejsze metody dostępu do łącza, ale najczęściej jest realizowany dostęp rywalizacyjny CSMA/CD oraz dostęp z przekazywaniem

row ania m ożna dziś oceniać jedynie na podstaw ie czasu deszyfracji. Jednak obecnie niebezpieczeństwo przechwycenia inform acji jest duże, poniew aż stosuje się

Sytuacja, w której funkcji stanu specyfikacji nie można wyrazić w zależności od funkcji stanu realizacji, jest nietypowa. Podobnie jak dobry program nie oblicza

Od tej ch w ili inform acja może być w yp ro ­ wadzana z rejestru szeregowo, niezależnie od pracy pamięci w trybie równoległego dostępu (z dużą częstotliwością rzędu 25

conej prenumeraty na drugie półrocze br.. Na pierw szym , najniższym poziomie, pow inny się znajdow ać procedury bezpośrednio d ziałające na zbiorze danych,

czenia zaw artości pól danych n a podstaw ie innych pól.. m em ory variables).. funkcjonow aniu sieci UM M LAN-2.. czyli każdy alg o ry tm rozw iązyw ania tego drugiego

Budowa bloku param etrów wymagątKgo do lądowania i &lt; wenlualnego wyko- naiiia program u dla funkcji 4B11 (AL II).. W yrównanie