Polskie Towarzystwo Informatyczne
NUMER ARCHIWALNY:     10 / 40 rok IV | pażdziernik 1985
Archiwum
Menu chronologiczne Menu tematyczne


Polskie Towarzystwo Informatyczne

Dyskowy system operacyjny CP/M (część druga)
 
Logiczna struktura dyskietki
                System CP/M dzieli dyskietkę na dwie części. Pierwsza z nich obejmuje dwie ścieżki w dyskietce 8" lub trzy ścieżki w dyskietce 5,25" i jest zarezerwowana dla systemu. Moduły BOOTSTRAP, CCP, BDOS i BIOS są przechowywane w tym obszarze i ładowane z niego do pamięci podczas “zimnego” startu systemu.
                Pozostała część dyskietki stanowi pole danych, podzielone na jednostki alokacji o pojemności 1 lub 2 KB. Jedna lub dwie pierwsze jednostki alokacji są zarezerwowane na skorowidz plików. Zawartość skorowidza dla wybranego pliku jest przenoszona do pola roboczego modułu BDOS, zwanego blokiem sterowania plikiem (File Control Block, FCB), przy realizacji operacji otwarcia pliku, lub uaktualniana na dyskietce przez moduł BDOS przy realizacji funkcji zamknięcia pliku, zmiany nazwy pliku lub usuwania pliku. Moduł BDOS tworzy nowy opis pliku w skorowidzu dyskietki podczas realizacji funkcji tworzenia pliku lub rozszerzania już istniejącego pliku o nową jednostkę rozszerzenia logicznego. Pole w skorowidzu przeznaczone dla jednego logicznego elementu pliku nazwano deskryptorem pliku. Obejmuje ono grupę 32 B, w której znajdują się: informacje o numerze użytkownika, do którego należy plik, nazwa pliku, typ, atrybuty (SYS dla plików systemowych, R/O dla plików chronionych przed zapisem lub skasowaniem), kolejny numer rozszerzenia pliku (dla plików większych niż 16 KB), liczba 128 B rekordów w danym rozszerzeniu oraz numery jednostek alokacji na dysku, w którym mieści się plik.
                Nowo sformatowany dysk w standardzie IBM 3740 (lub IBM 34) jest traktowany przez system CP/M jak dysk o pustym skorowidzu — 0E5H w polu numeru użytkownika w deskryptorze pliku oznacza wolne miejsce w skorowidzu lub plik usunięty.
                Ponieważ system operacyjny CP/M wytwarza i analizuje informację określającą, które jednostki alokacji na dysku są wypełnione i jaka jest globalna liczba nie zajętych jednostek alokacji, użytkownik nie musi się interesować, jak jest rozmieszczona informacja na dyskietce. Dopóki wszystkie jednostki alokacji nie będą zajęte, dopóty będzie mógł tworzyć nowe pliki na danym dysku. Taki sposób realizacji pamięci masowej powoduje możliwość powstania “bałaganu” na dyskietce, ale uwalnia od konieczności męczącego przesuwania plików po powierzchni dyskietki w celu skompletowania ciągłych bloków zapisu, w przypadku odzyskiwania miejsca po usuniętych plikach. Istotną informacją jest więc globalna wielkość wolnej przestrzeni na dyskietce.
                Poważnego ograniczenia nie stanowi także pojemność skorowidza, gdyż liczba 64 pozycji jest w większości przypadków wystarczająca.
                Kolejnym, istotnym elementem organizacji pamięci masowej jest tzw. przeplot. Test to mechanizm programowy, który przypisuje kolejnym logicznie rekordom informacji niekolejne numery fizyczne sektorów na dyskietce. Dzięki temu skraca się kilkakrotnie czas dostępu do informacji, gdyż w jednym obrocie dyskietki możemy odczytać lub zapisać kilka sektorów (4–13).
 
Funkcje systemu
                Procedury systemowe CP/M 2.2 dostępne dla programów użytkownika można podzielić na dwie zasadnicze grupy:
(1)   obsługa prostych urządzeń znakowych
   czytanie i pisanie znaku na konsoli operatora;
   czytanie znaku z czytnika;
   pisanie znaku na dziurkarce;
   pisanie znaku na urządzeniu drukującym;
   sterowanie zestawem znakowych urządzeń we/wy;
   buforowanie operacji we/wy na konsoli połączone z podstawowymi funkcjami edycji linii;
   określenie stanu konsoli;
(2)   obsługa plików na dyskach elastycznych
   zerowanie i selekcja jednostki dyskowej;
   kreowanie pliku;
   otwieranie pliku;
   zamykanie pliku;
   przeszukiwanie skorowidza plików na dyskietce;
   usuwanie pliku;
   zmiana nazwy pliku;
   odczyt sekwencyjny lub swobodny rekordów pliku;
   zapis sekwencyjny lub swobodny rekordów pliku;
   badanie osiągalności dysków;
   badanie przydziału dysków;
   sprawdzanie i ustawianie atrybutów pliku;
   sprawdzanie i zmiana statusu dysków;
   ustawianie adresu bezpośredniego dostępu do pamięci;
   sprawdzanie i ustawianie numeru aktywnego użytkownika.
                W systemie operacyjnym CP/M 2.2 przyjęto prosty sposób korzystania z procedur systemowych i przekazywania parametrów. Numer wybranej procedury (0–28H) jest zapamiętywany w rejestrze C mikroprocesora, parametry wejściowe — bajt w rejestrze E lub słowo w parze rejestrów DE (stosuje się adresowanie pośrednie rejestrowe, jeśli parametr wejściowy stanowi blok informacji w pamięci, np. FCB, bufor). Odwołanie się do systemu odbywa się przez wywołanie podprogramu o adresie 0005H (na stronicy zerowej). Po wykonaniu operacji system przekazuje sterowanie programowi wywołującemu, jednocześnie zwraca informację w rejestrze A lub parze rejestrów HL.
 
Polecenia systemowe
                Procesor komend operatorskich CCP realizuje siedem poleceń systemowych (rezydujących):
DIR — drukowanie skorowidza plików dla wybranego dysku
ERA — usuwanie opisu pliku ze skorowidza
REN — zmiana nazwy pliku w skorowidzu
TYPE — drukowanie na konsoli treści plików ASCII
SAVE — tworzenie pliku będącego obrazem obszaru TPA
USER — ustawienie numeru aktywnego użytkownika
X: — zmiana przyłączonego dysku na jednostkę X
Oprócz tego CCP pozwala na podstawową edycję linii zlecenia, korzystając ze znaków sterujących CTRL. Polecenia te mają charakter pomocniczy i usługowy, cechuje je krótki czas realizacji.
 
Polecenia nie rezydujące
                Polecenia nie rezydujące stanowi zbiór programów stowarzyszonych i dostarczanych wraz z systemem, wykonujących liczne funkcje pomocnicze i sterujące. Są to:
STAT              program umożliwiający określenie stanu i parametrów plików, stan jednostek dyskowych, przypisanie urządzeń znakowych wejść i wyjść
ED                 —    podstawowy program redagujący — EDYTOR; umożliwia tworzenie i modyfikację plików źródłowych o dowolnych rozmiarach
ASM            —    asembler (program tłumaczący); wykonuje translację programów napisanych w języku symbolicznym mikroprocesora INTEL 8080 na kod wynikowy w postaci pliku .HEX
LOAD          —    program tworzący plik typu .COM z pliku .HEX
DDT             —    program uruchomieniowy; zawiera mechanizmy pozwalające na śledzenie realizacji nowo tworzonych programów, usuwanie błędów na poziomie kodu maszynowego, badanie stanu rejestrów mikroprocesora w trakcie realizacji śledzonego programu oraz wykonanie poprawnego programu użytkownika w czasie rzeczywistym
PIP                —    program transmisji plików; pozwala na przesyłanie plików z dysku na inny dysk, z dysku do urządzenia znakowego lub odwrotnie, łączenie plików i przesyłanie plików między obszarami różnych użytkowników
DUMP          —    program wyświetlający na konsoli zawartość dowolnego pliku w formacie szesnastkowym
SUBMIT      —    program przetwarzania wsadowego, realizujący ciąg poleceń z użyciem pliku sterującego typu .SUB
MOVCPM
i SYSGEN     —    programy służące do generacji systemu na nowych dyskietkach i zmiany wielkości pamięci zajmowanej przez cały system CP/M
 
Bazowy system wejścia/wyjścia BIOS
                Jest to jedyny moduł systemu operacyjnego CP/M zależny od konfiguracji sprzętowej instalacji, na której pracuje. Przeniesienie systemu CP/M do innego środowiska stwarza jedynie konieczność wygenerowania nowego modułu BIOS, którego długość nie przekracza zazwyczaj 0,5 do 1 KB.
                Komunikacja między modułami BDOS i BIOS jest realizowana przez blok 17 skoków do obsługi podprogramów sterujących sprzętem. Oprócz tego moduł BIOS zawiera tablice sterujące jednostkami dyskowymi. Podprogramy w module BIOS można podzielić na trzy logicznie odrębne grupy:
(1)   podprogramy inicjalizacji systemu
BOOT                       — start systemu po uruchomieniu sprzętu
WBOOT                       — ponowny start systemu w trakcie pracy
(2)   podprogramy dostępu do urządzeń znakowych
CONST                       — określenie stanu konsoli
CONIN                       — czytanie znaku z konsoli
CONOUT                       — pisanie znaku na konsoli
LIST                       — pisanie znaku na urządzeniu drukującym
PUNCH                       — dziurkowanie taśmy papierowej
READER                       — czytanie taśmy papierowej
(3)   podprogramy dostępu do jednostek dyskowych
HOME                       — umieszcza głowicę dysku na ścieżce 0
SELDSK                       — wybiera jednostkę dyskową do współpracy
SETTRK                      — ustawia numer ścieżki
SETSEC                       — ustawia numer sektora
SETDMA                       — ustawia adres DMA dla transmisji dyskowych
READS                       — czyta sektor z dysku do pamięci
WRITES                       — pisze sektor z pamięci na dysk
Programy specjalne
LISTST                             — określa dostępność drukarki
SECTRAN                             — zamienia logiczny numer sektora na związany z nim numer fizyczny — realizuje przeplot
                Tak więc BIOS steruje jednostkami dyskowymi i czterema logicznymi urządzeniami znakowymi: konsolą operatora, urządzeniem drukującym, masowym wejściem i wyjściem (czytnik, dziurkarka). Dodatkowy mechanizm sterujący, tzw. IOBYTE, pozwala do każdego z tych urządzeń logicznych przypisać jedno z czterech urządzeń fizycznych.
 
Zakończenie
                System operacyjny CP/M 2.2 wykazuje wiele zalet; do jego wad należą: mało zrozumiała dokumentacja, przeznaczona raczej dla osób mających już kontakt z programowaniem mikroprocesorów i użytkujących CP/M. Składnia poleceń jest złożona, zawiera wiele znaków interpunkcyjnych. System rozpoznaje tylko rekordy o stałej długości 128 B, inne rekordy wymagają napisania własnych programów obsługi. Dostęp do plików jest tylko sekwencyjny, nie ma mechanizmów dostępu indeksowo–sekwencyjnego. Skorowidz plików w systemie CP/M jest jednopoziomowy bez hierarchizacji. Nie ma mechanizmów ochrony plików, istniejące są bardzo ograniczone i łatwe do obejścia. Nie ma wspomagania na poziomie generowania poleceń (HELP).
                Wobec gigantycznego upowszechnienia się systemu CP/M — pod jego nadzorem pracuje ok. 400 tys. mikrokomputerów oraz ok. 3 tys. programów, okazało się celowe dalsze rozwijanie i udoskonalanie tego systemu. Powstała wersja wielostanowiskowa, zwana MP/M. Na przełomie lat 1981 i 1982 powstała wersja CP/M Plus (3.0) pozbawiona wielu istotnych wad wersji 2.2. Opracowano szesnastobitową wersję CP/M 86. Powstał także system pozwalający łączyć mikrokomputery pracujące pod nadzorem CP/M w sieć, tzw. CP/NOS. W połączeniu ze stanowiskiem realizującym MP/M tworzy on system nazwany CP/NET.
                Ostatnio furorę zaczyna robić tzw. SOS (Silicon Operating System). Jest to efekt postępu technologii półprzewodników. W jednej strukturze scalono mikroprocesor Z80 i pamięć ROM, w której zapisano podstawowe moduły CP/M, nadając temu tandemowi nazwę PERSONAL CP/M (Z80–CP/M). Otworzy on drogę do stosowania CP/M w sprzęcie bez pamięci dyskowych.
Andrzej J. Majewski

Instytut Informatyki Politechniki Gdańskiej

Archiwum PTI Ewa Łukasik ( elukasik@cs.put.poznan.pl) Grzegorz Przybył ( grzegorz.przybyl@wp.pl ) www.pti.org.pl Kontakt PTI ( pti@pti.org.pl )
Tutorial


Tutorial

Wyszukiwanie

Całość
tylko prodialog
tylko biuletyny
tylko konferencje
tylko multimedia
tylko sprawozdania
tylko uchwały
tylko zawody
tylko zjazdy
pozostałe treści

Rodzaj przeszukiwania
Słowa kluczowe
Pełen tekst

pelen zakres dat
ograniczony zakres
od:

do:




Kontakty

Instytut Informatyki

Polskie Towarzystwo Informatyczne

Nasz Skrzynka Pocztowa

+ - D A