Polskie Towarzystwo Informatyczne
NUMER ARCHIWALNY:     9 / 39 rok IV | wrzesień 1985
Archiwum
Menu chronologiczne Menu tematyczne


Polskie Towarzystwo Informatyczne

Dyskowy system operacyjny CP/M (część pierwsza)
 
Wstęp
                Historia systemu CP/M (Control Program for Microcomputer) sięga już 11 lat. W roku 1974 kanadyjczyk Gary Kildall stworzył pierwszą wersję CP/M dla swego mikrokomputera IMSAI. Istniały wprawdzie wcześniejsze rozwiązania monitorów dotyczące mikrokomputerów z pamięcią masową w postaci dysków elastycznych, były to jednak czasy, w których bezsprzecznie królowała taśma papierowa. Niemniej jednak przedsięwzięcie Kildalla — stworzenie systemu operacyjnego dla mikrokomputera z pamięcią masową o organizacji plikowej, z definiowanymi strumieniami wejścia i wyjścia, przy pamięci operacyjnej ok. 16 KB było epokowym wydarzeniem w historii mikroinformatyki.
                W chwili obecnej system operacyjny CP/M jest standardem de facto, jeśli chodzi o mikrokomputery ośmiobitowe z pamięcią masową w postaci dysków elastycznych. Kolejno na rynku oprogramowania pojawiały się coraz nowsze wersje tego systemu: 1.3, 1.4, 2.0, 2.1 i 2.2. Stało się to za sprawą samego Kildalla i jego współpracowników z firmy Digital Research (Pacific Grove California). Ale prawdziwy sukces handlowy zawdzięcza CP/M przedsiębiorczemu Tony’emu Goldowi, który założył w Nowym Jorku firmę handlową (software house) Lifeboat Associates. Firma ta zajmuje się głównie dystrybucją systemu CP/M i programów pracujących pod jego nadzorem. Warto dodać, że biblioteka programów zgodnych z systemem CP/M, z wielu różnych firm, sięga 3 tys. pozycji. Bardzo istotnym elementem sukcesu systemu CP/M był fakt, że napisany początkowo na MDS 800, dzięki umiejętnym modyfikacjom, stał się systemem najłatwiej przenoszonym i instalowanym na różnych mikrokomputerach. Pracuje na mikroprocesorach 8080, 8085 i Z 80. Istotną, aczkolwiek mającą obecnie coraz mniejsze znaczenie zaletą jest także niewielka wymagana pamięć operacyjna (16 KB dla wersji 1.4 i 20 KB dla wersji 2.0 i późniejszych). Łatwość przystosowania programu do środowiska sprzętowego, konfiguracji, typu pamięci dyskowej (dyski elastyczne lub sztywne) oraz niekorzystanie z przerwań — były to wszystko przyczynki do sukcesu, w którym połączono dobry produkt z umiejętnym marketingiem.
 
Charakterystyka systemu CP/M
                Ograniczymy się tutaj do wersji 2.2, która z jednej strony stanowi produkt w pełni dojrzały, z drugiej — osiągalny za niewielką, bo ok. 120 dol. sumę, a na dodatek dostępny mikroinformatykom w Polsce.
                System CP/M 2.2 jest uniwersalnym, jednostanowiskowym systemem operacyjnym dla mikrokomputerów wyposażonych w mikroprocesor Intel 8080 lub zgodne z nim mikroprocesory 8085 i Z 80 oraz pamięć masową na dyskach elastycznych pojedynczej gęstości — standard IBM 3740 lub podwójnej gęstości — standard IBM 34, 8 lub 5.25". Wymaga ciągłego bloku pamięci RAM o wielkości minimalnej 20 KB począwszy od adresu 0. Oprogramowanie napisane i działające pod nadzorem systemu CP/M daje się w pełni przenieść na dowolną maszynę wyposażoną w ten sam system operacyjny. Blok programów komunikacji z pamięcią masową jest oparty na tzw. tablicach parametrów dyskowych, umożliwiających łatwą zmianę konfiguracji zasobów sprzętowych mikrokomputera. Informacja na dyskietkach ma postać plików o unikalnych nazwach.
                Oryginalne oprogramowanie dostarczane przez Digital Research lub innego autoryzowanego dystrybutora jest przekazywane odbiorcy na dysku elastycznym wraz z 7 tomami dokumentacji opisującej poszczególne fragmenty systemu, ich przeznaczenie i sposób użytkowania oraz programy usługowe, tzw. utilities.
                System CP/M jest systemem jednoprogramowym, z możliwością realizacji wieloprocesorowości. Jest to system na tyle dobrze zaprojektowany, że użytkownik może zapomnieć o fizycznym istnieniu dysków. Wydaje się jednak celowe poznanie architektury i sposobu pracy systemu, gdyż takie podejście zawsze pozwoli racjonalniej użytkować dostępne zasoby, ułatwi zrozumienie reakcji systemu na poszczególne sytuacje i w efekcie da możliwość wyzyskania wszystkich zalet tego systemu operacyjnego.
 
Budowa systemu
                System operacyjny CP/M 2.2 dzieli się logicznie na 5 części. Podział ten wynika ze struktury pamięci operacyjnej, a właściwie ze sposobu wykorzystania poszczególnych jej obszarów i rezydujących w nich programów.
 
Stronica zerowa (Page Zero, PZ)
                Obszar zapewniający łączność między rezydującą częścią systemu i programami użytkownika. Zawiera skoki do programu ładującego i do modułu bazowego. Oprócz tego są w nim umieszczone niektóre pola robocze oraz bufor dla operacji dyskowych i komunikacji z konsolą. Stronica zerowa jest generowana podczas startu lub ponownego startu systemu przez program z modułu BIOS.
 
Obszar programów nie rezydujących
(Transient Program Area, TPA)
                Obszar pamięci, począwszy od adresu 100H, do którego są wprowadzane z dyskietek programy użytkownika. W tym obszarze są także wykonywane tzw. polecenia systemowe.
 
Procesor komend operatorskich
(Console Command Processor, CCP)
                Obszar, do którego jest przepisywany — podczas wprowadzania systemu z dyskietki — program obsługujący komunikację z operatorem oraz wykonujący rezydentne polecenia systemowe. Ten program wprowadza do obszaru TPA wywołane polecenia nierezydentne i programy użytkownika.
 
Bazowy system operacyjny
(Basic Disc Operating System, BDOS)
                Jądro systemu operacyjnego. Jest to zestaw programów wprowadzanych z dyskietki podczas inicjalizacji systemu zawierający zbór procedur obsługujących pliki, obsługujących 1 do 16 jednostek pamięci na dyskach elastycznych, znakowe strumienie wejścia i wyjścia oraz zarządzanie pamięcią RAM. Jest to obszar który nie może być niszczony przez programy użytkowe.
 
Bazowy system wejścia/wyjścia
(Basic I/O System, BIOS)
                Zbiór programów i tablic zapewniających fizyczną komunikację ze sprzętem w danej instalacji. Jest to jedyny moduł systemu CP/M, który jest zależny od środowiska sprzętowego i musi być wygenerowany dla danego mikrokomputera indywidualnie. Wprowadza się go z dyskietki podczas inicjalizacji, aczkolwiek zawiera on także część będącą zazwyczaj w pamięci stałej typu ROM (programy obsługi we/wy) Moduł ten nie może być niszczony przez programy pracujące pod kontrolą systemu CP/M.
                Poszczególne części systemu CP/M zajmują kolejne, przyległe obszary pamięci operacyjnej mikrokomputera, a więc pamięć, która znajduje się powyżej obszaru modułu BIOS, nie jest przez system używana i może mieć dowolne przeznaczenie. Jedynie stronica zerowa BDOS i BIOS są elementami systemu CP/M, które muszą pozostawać w pamięci przez cały czas pracy systemu. Obszar zajmowany przez moduł CCP może być nakładkowany, jeśli to okaże się potrzebne. W takim przypadku powrót do systemu po wykonaniu programu musi być poprzedzony ponownym startem CP/M, tzw. gorącym startem.
 
Pamięć masowa
                W systemie operacyjnym CP/M 2.2 pamięcią masową jest pamięć na dyskach elastycznych 8 lub 5.25 ". Dzięki dużej elastyczności systemu może to być także dowolna pamięć na dyskach sztywnych. Do systemu można dołączyć do 16 jednostek logicznych pamięci o pojemności do 8 MB każda. Tak więc dość prosty, mały system operacyjny może zarządzać pamięcią masową o pojemności do 128 MB. Pojedynczy plik może osiągnąć wielkość co najwyżej równą pojemności jednostki dyskowej, a więc 8 MB. Tych kilka liczb jednoznacznie obrazuje możliwości systemu operacyjnego CP/M w takich dziedzinach, jak np. zarządzanie bazą danych, nie odchodząc ani o krok od założenia, że jest to system operacyjny dla mikrokomputera.
 
Pliki
 
Plikiem w systemie CP/M jest ciąg rekordów — jednostek niepodzielnych z punktu widzenia modułu BDOS i transmisji dyskowych. Rekord stanowi jednostka informacji o długości 128 B, co na ogół odpowiada rozmiarowi sektora dyskowego w standardzie IBM 3740.
                Opis pliku składa się z trzech elementów
 
(d:) < nazwa pliku > (typ pliku)
 
przy czym
d: oznacza logiczny numer jednostki dyskowej;
nazwa pliku — unikalny w obrębie jednostki dyskowej ciąg znaków o długości nie większej niż 8.
typ pliku — najwyżej trzyznakowe rozszerzenie nazwy, przeznaczone do rozróżnienia plików tworzonych podczas pracy niektórych programów.
                W obrębie jednego dysku nie mogą istnieć dwa pliki o identycznych nazwach i typach należące do tego samego użytkownika
                W systemie CP/M 2.2 dysk może być dzielony między 16 użytkowników. Ich pliki są niezależne i wyłączne, bez możliwości wzajemnego niszczenia lub dostępu. Ponieważ w systemie zawsze jest przyłączony logicznie któryś z dysków, możemy nie podawać nazwy jednostki dyskowej, jeżeli potrzebny plik znajduje się na przyłączonym dysku W przypadku innego ulokowania pliku jest konieczne podanie jego położenia Przyjęto zasadę, w myśl której jednostki dyskowe są oznaczone literami od A do P, zamiast numerów 116 (numer 0 oznacza domyślną jednostkę dyskową, w danej chwili przyłączoną). Typ pliku może być dowolny, w szczególności można go pominąć, natomiast system i programy systemowe używają plików lub tworzą pliki następujących typów:
.COM        typu “obraz pamięci” do bezpośredniej realizacji
.HEX         wynikowy w formacie szesnastkowym, standard INTELLEC–a
.ASM        źródłowy tekstu programu w języku symbolicznym
.MAC        źródłowy tekstu programu w języku makroasemblera
.PRN          raportu z kompilacji
.SYM         tablicy symboli z kompilacji
.REL          modułu programowego przemieszczalnego dla LINKERA
.TXT         tekstowy ASCII dla FORMATERA TEKSTU
.BAK         kopia pliku pierwotnego tworzona przez EDYTOR
.LIB           makrodefinicji bibliotecznych
.BAS         źródłowy w Basicu
.FOR          źródłowy w Fortranie
.SUB          sterujący pracą programu SUBMIT przy przetwarzaniu wsadowym
.SSS           tymczasowy roboczy tworzony przez niektóre programy, automatycznie niszczony przy końcu sesji
                Przy organizowaniu dostępu do plików można stosować grupowy opis plików. W takim opisie * (gwiazdka) oznacza dowolną nazwę lub typ, a ? (znak zapytania) zastępuje w tym miejscu wszystkie inne dozwolone znaki.
Ciąg dalszy w następnym numerze
Andrzej 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