• Ei tuloksia

Erään pientietokoneen käyttöjärjestelmän rakenne ja ominaisuudet

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Erään pientietokoneen käyttöjärjestelmän rakenne ja ominaisuudet"

Copied!
130
0
0

Kokoteksti

(1)

KOILLINEN KORKEAKOULU

ietojenkäsittelyopin laboratorio

1«KNlUINEF^KOÄKCAKeum TIETOJENKÄSITTELYOPIN

ÄÄ&ikllyAeTQ

ERÄÄN

PIENTIETOKONEEN KÄYTTÖJÄRJESTELMÄN RAKENNE JA

OMINAISUUDET

Diplomityö

Pirkko Schildt Ko, Ktu 23552

1979-11-15

(2)

EKNILLINEN KORKEAKOULU

ietojenkäsittelyopin laboratorio

ALKULAUSE

Tämän työn puitteissa on pyritty laatimaan suhteel­

lisen tiivis ja yhtenäinen esitys DEC : n PDP-11 koneilla käytössä olevasta käyttöjärjestelmästä RSX-1 IM .

Työ on ollut luonteeltaan lähinnä kirjallisuustut­

kimus , olemassaolevan materiaalin muokkausta uuteen, toivottavasti systemaattisempaan muotoon.

Työn tarkoituksena oli luoda suomenkielinen kuvaus RSX-11M:n piirteistä niille henkilöille, jotka halua­

vat tutustua RSX-11M:ään tai jotka haluavat muodostaa RSX-11M : stä kokonaisnäkemyksen siihen jo jonkinverran tutustuttuaan.

Työn välittömänä tavoitteena on ollut luoda perusma­

teriaali TKK : n tietojenkäsittelyopin Käyttö­

järjestelmät II -kurssin syksyn -79 luennoille ja yleisemminkin laajentaa ja syventää RSX-11M tietoutta korkeakoulun piirissä.

Tämän työn valvojana on toiminut vt. prof. Reijo Sulonen. Haluan kiittää häntä työni ohjauksesta ja kannustavasta suhtautumisesta yritykseen! .

Tekn. yo. Heikki Arppea ja tekn. yo. Jussi Mykkästä saan kiittää oman RSX-tietämykseni kartuttamisesta ja työtäni koskevista arvokkaista mielipiteistä.

Myös aviomieheni, Lasse Schildt, ansaitsee kiitokseni kaikesta siitä rohkaisusta ja tuesta, jota olen saanut koko opiskeluni ajan.

Työni olen kirjoittanut puhtaaksi käyttäen TKO- laboratorion PDP-11/3^: n UNIX-käy11öjärjestelmän tekstinkäsittelyjärjestelmää Nroff.

Otaniemessä, marraskuun 15. päivänä 1979 ScÅJ/otf

Pirkko Schildt

(3)

DIPLOMITïü EKNILLINEN KORKEAKOULU

ONEINSINÖÖRIOSASTO

.99 Tietojenkäsittelyoppi 15. 11. 1979

irkko Schildt

rään pientietokoneen käyttöjärjestelmän akenne ja ominaisuudet

979, 105 s. + 7 liitettä

yön valvoja: vt. professori Reijo Sulonen

iivistelmä

Työssä tarkastellaan RSX-11M käyttöjärjestelmää käsittelyn painopisteen ollessa käyttöjärjestelmän sisäisen rakenteen puolella, joskin myös järjes­

telmän käyttöominaisuuksia on pyritty arvioimaan.

RSX-11M on tarkoitettu PDP-11 sarjan proses­

soreille. Työssä on erityisesti pyritty selvittä­

mään prosessikäsitettä RSX-ympäristössä, prosesso­

rin hallintaa, muistin hallintaa, oheislaitteiden käsittelyä ja tiedostojärjestelmää.

Järjestelmään liittyvä tukiohjelmisto ja järjes­

telmän huoltoon ja ylläpitoon liittyvät asiat on käyty läpi esittelynomaisesti .

Työhön liittyy jonkinverran esimerkkejä, joilla on pyritty havainnollistamaan käsiteltyjä asioita.

Esimerkit ovat kuitenkin luonteeltaan vain teoriaa havainnollistavia, eivätkä pyri opettamaan RSX-

11M : n käyttöä.

Työn tuloksena syntynyttä materiaalia on tarkoitus käyttää Tietojenkäsittelyopin laboratorion käyttö- järjestelmäopetuksessa.

(4)

KOILLINEN KORKEAKOULU

ietojenkäsittelyopin laboratorio

SISÄLLYSLUETTELO

1 . JOHDANTO

1.1 RSX-11M käyttöjärjestelmä 1

1.2 PDP-11 laitteisto 4

1.3 TKK/TKO : n järjestelmä 6

1.4 Yhteenveto 7

2. PROSESSORIN HALLINTA

2.1 Prosessikäsite 8

2.2 Prosessin tilat 14

2.3 Prosessoriajan jako 18

2.4 Prosessien synkronointi ja kommunikointi 20

2.5 Keskeytysten käsittely 23

2.6 Systeemikutsut 29

2.7 Kellojono ja sen käsittely 33

2.8 Yhteenveto 34

3. MUISTIN HALLINTA

3-1 Muistinhallintayksikkö ja osoitteen-

muodostus 36

3.2 Käyttöjärjestelmän muistinkäsittely 40 3-3 Prosessikohtainen muistinkäsittely 46

3.4 Yhteenveto 54

(5)

EKNILLINEN KORKEAKOULU

ietojenkäsittelyopin laboratorio

4. YMPÄRYSLAITTEIDEN HALLINTA

4.1 Syöttö/Tulostustoiminnan periaatteet

RSX-11M:ssä 55

4.2 Ympäryslaitteiden käsittelyyn liittyvät

tietorakenteet 58

4.3 Syöttö/Tulostustoimintaan liittyvät

käsittelyalgoritmit 6 3

4.4 Laitekäsittelyohjelmat (I/O Drivers) 65 4.5 Syöttö/Tulostustoimintaan liittyvät

systeemikutsut (QIO) 68

4.6 Yhteenveto 71

5. TIEDOSTOJÄRJESTELMÄ

5.1 Tiedosto 72

5.2 Tiedostojärjestelmä 75

5.3 Tiedosto-operaatiot 79

5.4 Tiedostojen käyttö (FCS ) 82

5.5 Yhteenveto 87

6. TUKIOHJELMISTO

6.1 Komentotulkki 88

6.2 Ohjelmoinnin ja testauksen apuvälineet 91

6.3 Tiedostojen käsittely 95

6.4 Yhteenveto 97

(6)

EKNILLINEN KORKEAKOULU

ietojenkäsittelyopin laboratorio

7. JÄRJESTELMÄN YLLÄPITO

7.1 Systeemin generoiminen 98

7.2 Varmuuskopiointi ja taltioiden käyttö 100 7.3 Käyttäjätunnukset ja -tilastointi 102 7.4 Laitteiston kunnon seuranta- ja

testausohjelmat 104

7.5 Yhteenveto 105

(7)

EKNILLINEIJ KORKEAKOULU

ietojenkäsittelyopin laboratorio

LIITELUETÏELO

1. SEND/RECEIVE -systeemikutsues imerkin

ohjelmalistaukset s. 22

2. Systeemikutsujen eri muotoja havainnollis­

tavien esimerkkien ohjelmalistaukset s. 31

3• Kellojonoon liittyvän esimerkin ohjelma-

listaus s. 33

4. RSX-11M: n systeemi taulukot s. 35

5. Impäryslaitteiden käsittelyyn liittyvien

tietorakenteiden kuvaukset s. 62

6. Tiedostojen käsittelyyn (FCS ) liittyvän esimerkin ohjelmalistaus ja esimerkki-

tiedoston vedostus s. 86

7. Osa systeemin generoinnissa syntyneestä

konsolilistauksesta s. 99

(8)

KK/TKO/PSc 1979-11-15 -1 -

JOHDANTO

. 1 RSX-11H käyttöjärjestelmä

RSX-11M käyttöjärjestelmä on pienille - keskisuurille koneille tarkoitettu tosiaikainen moniajojärjestelmä.

R S X- 11M : n peruspiirteet ovat : - moniohjelmointi

- tapahtumaohjattu prosessoriajan jako - tosiaikaisuus

- usean käyttäjän järjestelmä - levymuistipohjaisuus.

RSX-11M käyttöjärjestelmä soveltuu käytettäväksi PDP-11 sarjan prosessoreilla aivan pienimpiä lu­

kuunottamatta. Se tarvitsee vähintään 16 Ksanaa muistia, jolloin käyttäjän ohjelmille jää 8 Ksanaa.

RSX-11M käyttöjärjestelmiä on olemassa kolmea tyyp­

piä: R S X-1 1M, RSX-11S ja RSX-11D. RSX-11S on R S X- 11M : n osajoukko, joka on tarkoitettu vain proses­

sien suoritukseen. RSX-11S ei sisällä tiedostojärjes­

telmää , ladattavia prosesseja eikä ohjelmoinnin ja testauksen apuvälineitä. R3X-11S generoidaan RSX-11M: n alaisuudessa ja myös ohjelmiston kehittely tapahtuu RSX-1 1M: 11ä. RSX-11D on RSX-11M:ää vanhempi ja keskimäärin jonkinverran isommille koneille tar­

koitettu käyttöjärjestelmä.

RSX-11M: n suunnittelutavoitteet sisälsivät mm. seu- raavat ominaisuudet :

- tosiaikaisuus 8 Ksanan kokoisella käyttöjärjes­

telmällä, joka on käytettävissä 16 Ksanan muis- tikoosta alkaen

- sopivuus kaikille PDP-11 sarjan prosessoreille, useimmille prosessorioptioille (kuten muis­

tinhallinta, liukulukuyksikkö), oheislaitevali- koiman täydellisyys

- järjestelmän ja prosessien synkronoinnin to­

teutus prosessien prioriteetteja käyttämättä

- järjestelmän yhteisten tietokantojen käytön synkronointi prosessien prioriteetteja käyt­

tämättä

- useiden käyttäjien prosessien rinnakkainen suo­

ritus ja ohjelmien kehittely

- tukiohjelmien tarjoaminen käyttäjille ainakin seuraavilta aloilta: tiedostojärjestelmä, kääntäjät, ohjelmoinnin ja testauksen apuväli­

neet, järjestelmän ylläpito.

(9)

KK/TKO/PSc 1979-1 1-1 5 -2-

RSX - 1 111 : n ominaisuudet tyydyttänevät edelläesitetyt tavoitteet. Järjestelmän tosiaikaisuuteen ja moni- ohjelmointiin liittyvät piirteet on toteutettu ta- pahtumaperustaisesti : Prosessi saa prosessoriaikaa, kunnes tapahtuu merkittävä tapahtuma, joka voi olla esim. korke amman prioriteetin omaavan prosessin liit­

tyminen aktiivisten prosessien jonoon tai s/t- toirnintaan liittyvä tapahtuma. Merkittävän tapahtu­

man jälkeen korkeimman prioriteetin omaava aktiivinen prosessi saa prosessoriaikaa. Aktiivisia, ajovalmii­

ta prosesseja voi olla yhtaikaa useita. Proses­

soriaikaa nämä prosessit saavat vuorotellen, merkittävien tapahtumien välisen ajan kerrallaan.

Korkeimman prioriteetin omaavat prosessit saavat no­

peimman palvelun; näin voidaan toteuttaa to­

siaikaisuus, järjestelmä pystyy tarvittaessa reagoimaan nopeasti.

RSX-11M:n usean käyttäjän järjestelmään liittyviä piirteitä ovat lähinnä käyttäjätunnusjärjestelmä salasanoineen ja tiedostojen ja muistin suojaus.

Tiedostojärjestelmä käsittää myös käyttäjäkohtaiset tiedostohakemistot, jotka mahdollistavat usean käyttäjän tiedostojen organisoinnin.

RSX-11M on levymuistipohjäinen järjestelmä.

Systeemilevyllä säilytetään mm. järjestelmän kuva (system image), joka tuodaan muistiin järjestelmää ladattaessa. Järjestelmän kuva on muistin kuva, joka sisältää käyttöjärjestelmän perusosan ja järjestelmään kuuluvat kiinteät prosessit. Kiin­

teiden prosessien lisäksi järjestelmään liittyy jouk­

ko ladattavia systeemiproses seja (system tasks), jot­

ka tuodaan muistiin tarvittaessa. Näitä ovat mm.

tiedostojärjestelmä, komentotulkki ja oh je Irais ton- kehitysvälineet. Systeemin kirjastot säilytetään pääosin levyllä, josta ne tarvittaessa liitetään käyttäjän prosesseihin.

RSX-11M:n ominaisuudet ovat joiltakin osin riippu­

vaisia siitä, onko käytettävissä muistinhallintayk- sikkö vai ei. Muistinhallintayksiköllä varustettua järjestelmää kutsutaan "mapped"- systeemiksi ja vas­

taavasti systeemiä, johon ei kuulu muistinhallinta- yksikköä kutsutaan "unmapped"-systeemiksi. Muisti jaetaan osiin, partitioihin, joita mapped- systeemeissä on kahta tyyppiä: järjestelmä- ja käyttäjäpartitiot. Järjestelmäpart itioihin voidaan sijoittaa useita prosesseja yhtaikaa; järjestelmä huolehtii muistin jakamisesta. Käyttäjäpartitioon voidaan sijoittaa vain yksi prosessi kerrallaan, mut­

ta käyttäjäpartitio voidaan jakaa korkeintaan seitsemään alipartitioon. Jokaiseen alipartitioon

(10)

KK/TKU/PSc

1979

-

11-15

-

3

-

voidaan myös sijoittaa yksi prosessi ja kaikkia ali- partitioita voidaan käyttää yhtaikaa silloin, kun pääpartitio ei ole käytössä.

Mapped-systeemeissä prosessi voidaan ladata mihin tahansa riittävän suureen partitioon ja prosessin virtuaalinen kantaosoite on aina nolla.

Unmapped-systeemeissä prosessin on aina sijaittava tietyssä partitiossa ja sillä on absoluuttinen kan­

taosoite, joka annetaan prosessille linkityksen yhteydessä.

RSX-11M ei sisällä eräkäsittelyä tukevia piirteitä, eikä ole puhtaasti osituskäyttöjärjestelmä, joskin siihen voidaan liittää jonkinverran aikajakoisuutta.

RSX-11M ei myöskään ole tarkoitettu ympäristöön, jos­

sa järjestelmältä vaaditaan korkeatasoisia suojaus- ominaisuuksia .

Tärkeimmät sovellutusalueet RSX-11M:lle lienevät tietojen keruu, prosessin ohjaus, tuotannon ohjaus ja lääketieteellisissä tai tutkimuslaboratorioissa ta­

pahtuva tietojenkäsittely.

RSX-11M järjestelmä on ominaisuuksiltaan varsin moni­

puolinen ja suorituskykyinen pienkoneen käyttöjärjes­

telmäksi. Useimmat pienkonejärjestelmät esim. sal­

livat vain 1 - 2 yhtaikaista käyttäjää, kun taas RSX-11M on usean käyttäjän järjestelmä. Myös osituskäyttöjärjestelmät sallivat luonnollisesti useampia yhtaikaisia käyttäjiä, mutta tosiaikaisuu­

teen liittyvät piirteet yleensä osituskäyttö- järjestelmistä vastaavasti puuttuvat.

Käyttäjien keskuudessa RSX-11M järjestelmää pidettäneen keskinkertaisena - hyvänä järjestelmänä.

Suhteellisesti eniten ongelmia tuntuu aiheuttaneen järjestelmän installointi , myyjän järjestämän koulu­

tuksen ja dokumentoinnin taso. Järjestelmän raken­

teen monimutkaisuus vaikeuttaa myös järjestelmään tu­

tustumista ja sen monipuolisten piirteiden hyväksikäyttöä.

(11)

KK/ÏKG/PSc 1 979-1 1-1 5 -4-

.2 PDP-11 laitteisto

RSX-11M on suunniteltu Digital Equipment Corporatio­

nin (DECin) PDP-11 sarjan tietokoneille. PDP-11 sar­

ja käsittää useita erikokoisia prosessoreja, mikro­

tietokoneista keskisuuriin tietokoneisiin. Kaikilla sarjan prosessoreilla on mm. seuraavat yhteiset omi­

naisuudet:

- sananpituus 16 bittiä, joka jakaantuu kahteen 8 bitin tavuun.

- 8 yleisrekisteriä, R 0 - R 7, joista R 6 : st a käytetään pino-osoittimena (SP) ja R 7 :ä ä oh j e 1- malaskurina (PC).

- käskyvalikoima käsittää 0,1 ja 2 operandisia käskyjä, joista useimmista on olemassa sekä ta­

vu- että sanamuoto. Osoitusmuotoja on useita.

- muistin laajennus muistinhallintayksikön avulla 128 Iisanaan .

- oheislaitteiden asynkroninen käsittelytapa.

- vektoroidut keskeytykset.

- keskeytysten automaattinen priorisointi.

PDP-11 sarjan prosessoreista RSX-11M on käytettävissä kaikilla niillä, joissa on UNIBUS.

RSX-11M-käyttojärjestelmän vaatima minimikokoonpano on :

- PDP-11/23 -prosessori - 16 Ksanaa muistia - kello

- 1 RKO5 levyasema - konsoli

- jokin apumuistilaite (1 RKO 5, De etape, kaset- tinauha tai levykkö).

PDP-11 sarjan arkkitehtuuri rakentuu pitkälti UMIBUS-väylän pohjalle. UHIBUS-väylä liittää järjestelmän eri osat toisiinsa ja sitä käytetään osoitteiden, tiedon ja ohjaustiedon välitykseen.

KUVA 1.1 UNIBUS-väylä

PDP-11 System Simplified Block Diagram

(12)

KK/TKû/PSc 1 979-1 1-1 5 5-

Laitteiden välinen kommunikointi on kaksisuuntaista ja asynkronista. UkIBUS-väylä on kerrallaan yhden laitteen kontrolloima ja kullakin laitteella on eri­

tyinen UNIBUS-prioriteetti, joka määrää kontrollin- saantijärjestyksen. UUIBUS-väylä käyttää 18-bitin osoitteita, kuten prosessoritkin laitteistotasolla.

PDP-11 : n muis yksikköä 2 p muistinhallint 1. 128 Ksana varattu UNIBUS muistin käyt Ksanaa. Pieni sijaitsevat k ovat parillisi

t o a a i e n

u

a

iavaruus on tenssiin 16 yksikön kanss

. iiuistialu n laiterekis itävissä oi osoitet tava itenkin aina

i t a e e te ev Ук

1 man mui st i n h a11i n ta­

a vua 1 . 32 K s an a a ja 2 pot e nss i in 1 8 t a vua n yli n 4 K san a a on a ina r eill e » j ote n У1 e e ns ä a ma k s imi kok o on 124 s ikkö on tav u » k ä s kyt s anao s oi tt eis s a 7 j o tka

KU VA 1.2 PDP-1 1 : n osoitteet

HIGH BYTE IOW BYTE

J--- .______ ,_____ J_

High & Low Byte

000003

000000

000002

037777 037774 037776 WORD ORGANIZATION

e-BiT Byte

BYTE- ORGANIZATION

000001

000002 000003 000004

037773 037776 037777

Word and Byte Addresses

(13)

KK/TKG/PSc 1 979-1 1-1 5 -6-

.3 TKK/TKO:n järjestelmä

Tämän diplomityön taustana oleva käytännön RSX- tietämys on saavutettu lähinnä TKK:n tietojenkäsit­

telyopin laboratorion käytössä olevan РВР-11/3^:п ja siinä käytetyn RSX-11M ¥3-1:n parissa.

Työhön käytettynä ajanjaksona laitteiston kokoonpano oli pääosan ajasta seuraava:

- 1 1 /34 keskusyksikkö - kello

- muistinhallintayksikkö - 96 Ksanaa muistia

- RK05F 5 Иtavun kiinteälevyasema - RK05J 2,5 Mtavun vaihtolevyasema - 2 RL01 5 Mtavun vaihtolevyasemaa - konsolipääte (LA3Ú-CJ)

- rivikirjoitin (LA1808) - 1 - 2 muuta päätettä.

Käytössä ollut RSX-11M V3-1 on käsittänyt suunnilleen kaikki RSX-11M:n piirteet. Laitteistokokoonpanosta ja historiallisista syistä johtuen ei kuitenkaan esim. RMS - Record Management Services - ohjelmisto eikä osa tukiohjelmista, kuten esim. FLX - File Transfer - ohjelma ole kuulunut järjestelmään.

TKO-laboratorion käytössä olevaa järjestelmää käytetään lähinnä opetus- ja tutkimustoimintaan ja tästä johtuen osa tosiaikaisuuteen liittyvistä piir­

teistä ja järjestelmän toiminnan varmistukseen liit­

tyvistä toiminnoista on jäänyt melko vähälle huomiolle, joskin nämäkin ominaisuudet ovat tarvit­

taessa käytettävissä.

(14)

KK/TKü/PSc 1979-11-15 -7-

.4 Yhteenveto

RSX-11M on pienkoneen tosiaikainen käyttöjärjestelmä, joka soveltuu PDP-11 sarjan prosessoreille.

Käyttöjärjestelmä on levymuistipohjäinen. Proses­

soriaikaa jaetaan merkittävien tapahtumien rajaamissa paloissa.

PDP-11 sarjan prosessoreiden sananpituus on 16 bit­

tiä. Rekistereitä on kahdeksan. Muistiavaruus on muistinhallintayksikön avulla laajennettavissa 128 Iisanaan. Laitteiden välinen kommunikointi tapahtuu UNIBUS-väylää pitkin.

(15)

KK/TKO/PSc 1979-11-15 -8-

PRUSESSORIN HALLINTA

.1 Prosessikäsite

Prosessilla (task) tarkoitetaan R3X- 1 1M ympäristössä suoritettavaa perusyksikköä.

Suoritettavan prosessin kuva (task image) syntyy nor­

maalisti seuraavien vaiheiden kautta : 1. lähdekielisen ohjelman kirjoittaminen.

2. ohjelman kirjoittaminen tekstitiedostoksi editorin avulla.

3• objektitiedoston luominen ao. kielen kääntäjän avulla tekstitiedostosta.

4. prosessin kuvan muodostaminen linkittäjän avulla objektitiedostosta.

Prosessin kuva sisältää prosessin otsikkotietoalueen (task header), pinon ja joukon nimettyjä alueita, ohjelmasektioita.

Prosessin otsikkotietoalue sisältää prosessin tar­

vitsemia osoite- ja tilatietoja.

KUVA 2.1 Prosessin kuva levyllä (yksinkertaistettuna)

koodi- ja data-alue

pino ,

otsikkotietoalue checkpoint-alue label

(16)

KK/TKU/PSc 1979-11-15 -9-

Label sisältää prosessin ulkoisia tietoja, jotka liittyvät prosessin ja siihen liittyvien kirjasto- ohjelmien kokoon, sijaintiin levyllä ym., tiedot laitenumeroiden asettamisesta ja overlay-rakenteeseen liittyviä asioita.

Checkpoint-alue on alue, jolle prosessi talletetaan, jos se joudutaan syrjäyttämään. Checkpoint-alue voi joissakin tapauksissa kuulua prosessin kuvaan, mutta yleisimmin kaikki prosessit käyttävät järjestelmälle yhteisesti määriteltyä checkpoint-tiedostoa.

Label- ja Checkpoint-osia ei tuoda muistiin prosessia luettaessa, vaan lukeminen aloitetaan otsikko- tietoalueesta.

Utsikkotietoalue jakaantuu kahteen osaan: kiinteään ja muuttuvaan. Kiinteä osa sisältää esim. tiedot ohjelmalaskurin ja pino-osoittimen alkuarvosta, systeemidirektiivien käyttämän tilasanan (Directive Status Word) ja prosessin tarvitsemia osoitteita.

Muuttuva osa taas sisältää esim. rekistereiden arvot silloin, kun prosessi ei ole ajossa.

Kun prosessi tuodaan käyttöjärjestelmään, luodaan prosessin kontrollilohko, joka liitetään järjestelmän tuntemien prosessien joukkoon, (System Task Directo­

ry, STD).

Prosessin kontrollilohko (Task Control Block, TCB) on 28 sanan pituinen tietoalue, joka sisältää mm.

prosessin nimen, koon, osoitteen, tapahtumaliput ja osoitekentät, joiden avulla TCB liitetään muiden prosessien TCB:hin.

TCB sisältää kaikki ne parametritiedot prosessista, jotka systeemi tarvitsee voidakseen käynnistää prosessin .

Kuvassa 2.2 on esitetty kontrollilohkoon kuuluvat kentät. Kenttien nimet ovat järjestelmän konvention mukaisia.

(17)

KK/TKU/PSc

1979

-

11-15

-10-

KUVA 2.2 Task Control Block

T.LNK

T . IOC T . PRI T.CPCB

T . NAM

T.RCVL - T.ASTL

T.EF LG T . UCB T.TCBL T.STAT T . ST2 T . S Ï 3

T . LBN T.DPRI T . LDV

T . PCB T.MXSZ T.ACTL T .ATT T . OFF

T.SRCT unused T.RRFL

UTILITY LINK WORD

TASK PRIORITY, I/O PENDING COUNT POINTER TO CHECKPOINT PCB

TASK NAME

RECEIVE QUEUE LISTHEAD AST QUEUE LISTHEAD TASK LOCAL EVENT FLAGS UCB ADDRESS FOR "TI :"

TASK LIST THREAD WORD 1. STATUS WORD

2. STATUS WORD 3. STATUS WORD

LBN OF TASK LOAD IMAGE, TASK'S DEFAULT PRIORITY UCB ADDRESS OF LOAD DEVICE PCB ADDRESS OF TASK PARTITION MAXIMUM SIZE OF TASK IMAGE ACTIVE TASK LIST THREAD WORD ATTACHMENT DESCRIPTOR LISTHEAD OFFSET TO TASK IMAGE IN PARTITION SREF WITH EFN COUNT

RREF LISTHEAD

(18)

KK/TKO/PSc 1979-11-15 -

11

-

Prosessien kontrollilohkot muodostavat järjestelmän tuntemien prosessien joukon, STD:n.

STD sijaitsee fyysisesti käyttöjärjestelmän dynaami­

sella muistialueella. Kaikkien installoitujen prosessien TCB:t kuuluvat STD:hen. Aktiivisten prosessien TCB:t STD:ssä liitetään myös yhteen ja nämä muodostavat aktiivisten prosessien joukon (Ac­

tive Task List, ATL).

Luvun 2 lopussa on liitteenä kuva, joka pyrkii selvittämään RSX-11II:n systeemitaulukoita : järjestel­

mään liittyviä tietorakenteita ja niiden liittymistä toisiinsa .

Järjestelmän tuntemien prosessien joukosta ja ak­

tiivisten prosessien joukosta saa tietoja MCR:n komennoilla TAS, TAL ja ATL.

(19)

KK/TKU/PSc 1979-11-15 -12-

ESIilE RKKI 2.1: liCR : n komento TAS

System Task Directory voisi sisältää seuraavat pro­

sessit :

>TAS

♦ LDR. LDR 248

TKTN 03.7 SYSPAR 248

♦..DMO 03.1 GEN 160

♦♦♦MCR 02 SYSPAR 160

♦♦.мои 03.02 GEN 160 ...SYS 01 GEN 160 F11ACP M0235 FCPPAR 149

♦♦.PLT V02 GEN 110 SHF... 03 SYSPAR 105

♦..INI 03 GEN 100 ...INS 03 GEN 100 ...SAV 03.9 GEN 100

♦..UFD V0407 GEN 100 PRT... 08.04 GEN 70

♦..AT. 04.17 GEN 65

♦..EDI MH GEN 65

...ERF 01 GEN 61

. . .ACS 01 GEN 50 ...BOO 03.2 GEN 50

ERRLOG 01 GEN 50

. ♦ .LOA 03 GEN 50 ...UNL 02 GEN 50, . ♦ .MAC МНЮ GEN 50, . . . TKB M29 GEN 50, . . .FOR MOI GEN 50, ...RAT $FORT GEN 50, . . .PAS 770907 GEN 50,

ACNT 00 GEN 50.

. . .LBR 05.01 GEN 50, CRF... VOI GEN 50, ...HEL 01.15 GEN 50.

.♦.BYE 01.6 GEN 50.

♦..BRO V02.3 GEN 50.

♦.♦RNO M0101 GEN 50.

..♦FTB 01 GEN 50.

♦..PIP M1331 GEN 50.

000000 lbo:-00000000 FIXED 010000 lbo:-00006762

040000 LB0:-00006161 010000 LB0,‘~00006526 040000 LB0:-00006043 010000 LBO:-00006550 026000 LBO:-00006262 016400 LBO:-00000467 010000 LB0:-00007141 040000 LBO:-00006325 040000 LBO:-00006433 040000 LBO:-00006731 040000 LB0:-0O007040 010000 LBO:-00007145 040000 LB0:-00006065 075200 LBO:-00005145 040000 LB0:-00006021 040000 L.BO : -00007177 040000 LBO:-00004715 040000 LBO:-00007215 040000 LBO:-00007047 040000 LB0:-00007103 155700 LBO:-00004345 140500 LBO:-00004472 047700 LBO:-00007713 140700 LBO:-00007550 170300 LBO:-00010103 037600 LBO:-00006362 046200 LB0:~00005336 040000 LBO:-00005023 040000 LBO:-00006201 040000 LBO:-00006012 040000 LBO:-00006466 053600 LB0:-00003461 135700 SYÖ :-00002775 060600 lbo:-00001466

Kustakin prosessista on kerrottu prosessin nimi, ver­

sio, partitio, prioriteetti, prosessin koko, laite, jolta prosessi on ladattu muistiin, osoite ko. lait­

teella ja prosessin tila muistin suhteen.

(20)

KK/TKO/PSc 1979-11-15 -13-

ESIMERKKI 2.2: MCR : n komento A TL

Aktiivisten prosessien joukko voisi sisältää seu- raavat prosessit :

>ATL

. LDR. 047006 LDR 046752 00000000--00000000 F'Rl - 248. DF'RI - 248.

status: -chk fxd stp pro

TI -

coo:

IOC - 0. EFLG - 000001 000000 PS - 170000 PC - 041604 REGS 0-6 000162 003340 177777 061322 047324 061270 046720

♦ .♦MCR 061630 SYSPAR 063734 00064000-00074000 PRI - 160. DPRI - 160.

status: stp -pmd pro nsd cal.

TI - TT1: IOC - O. EFLG - 000001 040000 PS - 170000 PC - 122276 REGS 0-6 000000 120470 121766 120424 122414 000000 120362

...SYS 061270 GEN 047324 00135000-00145000 PRI - 160. DPRI - 160.

status: -chk ckd -pmd pro mcr

TI - TT1: IOC - 0. EFLG - 000001 040000 PS - 170017 PC - 120634 REGS 0-6 000000 131574 075273 000000 000000 000000 001026

FU ACP 062260 FCPPAR 063670 00074000-00122000 PRI - 149. DPRI - 149.

status: stp acp -pmd prv nsd cal

TI -

coo:

IOC - 0. EFLG - 000002 040003 PS - 170000 PC - 121406 REGS 0-6 062272 000000 000012 050144 047534 044022 120252

Kustakin aktiivisesta prosessista on kerrottu jonkin­

verran enemmän tietoja, esim. TCB: n osoite , PCB : n osoite, partition rajat, TCB: n tilaliput ja prosessin tapahtumaliput .

MCR: n komennolla TAL voidaan listata System Task Directoryn tiedot samassa muodossa kuin oheisessa ATL: n listauksessa.

(21)

KK/TKÜ/PSc 1 979-1 1-1 5 -14-

. 2 Prosessin tilat

Prosessi käy elinkaarensa aikana

KUVA 2.3 Prosessin tilakaavio

läpi tietyt tilat .

prosessin

instalLoi nti prosessin poistaminen

DORMANT

prosessi n suorituksen päättyminen

prosessin suorituspyyntö

prosessi n keskeytymine ACTIVE,

READY-TO-RUN

ACTIVE BLOCKED prosessin

odotus päättyy

prosessi jää odottamaan prosessi saa

prosessorin prosessi Xmenettää

\ prosessorin

RUNNING

(22)

KK/TKO/PSc 1 979-1 1-1 5 -15-

Proscssin tilat ovat passiivinen (DORMANT), aktiivi­

nen - ajovalmis (ACTIVE, READ1-TO-RUN ) , aktiivi­

nen - odottava (ACTIVE, BLOCKED) ja ajossa oleva (RUNNING).

Passiivisella prosessilla tarkoitetaan prosessia , joka on installoitu 1. prosessin kontrollilohko (Task Control Block) on liitetty järjestelmäm tuntemien prosessien joukkoon (System Task Directory), mutta prosessi ei ole aktiivinen. Passiivinen prosessi ku­

luttaa hyvin vähän muistia, mutta sen aktivoiminen käy tarvittaessa nopeasti, koska prosessin kuvan osoite sisältyy prosessin kontrollilohkoon ja proses­

si voidaan hakea levyltä suoraan tämän osoitteen perusteella. lleensä järjestelmässä on passiivisia prosesseja huomattavasti enemmän kuin aktiivisia prosesseja .

Aktiivisella prosessilla tarkoitetaan prosessia, jolle on kohdistettu suorituspyyntö ja jonka suoritus ei ole vielä päättynyt.

Aktiivinen prosessi voi olla joko ajovalmis (READi- TO-RUN) tai odottava (BLOCKED). Ajovalmiin prosessin kontrollilohko on liitetty järjestelmän aktiivisten prosessien joukkoon ja se kilpailee prioriteettinsä perusteella prosessoriajasta . Odottava prosessi ei kilpaile prosessoriajasta, koska se ei ole valmis suoritukseen. Odottava prosessi odottaa tyypillisesti synkronointiehtoa tai muuta resurssia kuin proses­

soria.

Prosessin siirtyminen tilasta toiseen tapahtuu prosessin tilaan vaikuttavien tapahtumien seuraukse­

na. Näitä tapahtumia ovat esim. käyttäjän järjestelmälle antamat prosessia koskevat komennot tai prosessin suorittamat systeemikutsut.

Prosessin tuominen järjestelmään tapahtuu instal­

loimalla prosessi (MCR: n komento INStall). Tällöin luodaan prosessin kontrollilohko, joka liitetään muiden kontrollilohkojen joukkoon. Prosessi on ins- talloinnin jälkeen passiivisessa tilassa.

Prosessin poistaminen järjestelmästä tapahtuu M C R: n komennolla REMove. Tällöin prosessin kontrollilohko poistetaan järjestelmän tuntemien kontrollilohkojen joukosta.

(23)

KK/TKÛ/PSc 1979-11-15 -16-

Prosessin siirtyminen passiivisesta tilasta aktiivi­

seen tilaan voi tapahtua käytännössä useammalla eri tavalla. Periaatteessa on aina kyseessä prosessin suorituspyyntö, joka voidaan antaa HCR:n komennolla RUN tai systeemikutsuilla RUN tai REQUEST.

Prosessin suorituksen päättyminen aiheuttaa prosessin siirtymisen aktiivisesta tilasta passiiviseen tilaan.

Suorituksen päättyminen voi aiheutua seuraavista syistä:

- prosessin suorittama systeemikutsu TASK EXIT

EXIT IF EVENT FLAG NOT SET RECEIVE DATA OR EXIT

RECEIVE Bi REFERENCE tietyssä tilanteessa ABORT TASK

- operaattorin antama MCR:n komento ABürt

- sellaisen synkronisen prosessorikeskeytyksen ta­

pahtuminen, jolle ei ole määritelty palveluru- tiinia .

Tilasiirtymät prosessin aktiivisen tilan sisällä, ajovalmiista tilasta odottavaan tilaan ja päinvastoin, tapahtuvat seuraavien ehtojen vallites- s a :

Siirtyminen ajovalmiista tilasta odottavaan tilaan:

- prosessin itsensä suorittamat systeemikutsut SUSPEND

WAITFOR, kun ehto ei ole tosi

- käyttöjärjestelmän suorittama prosessin keskeyt­

täminen ja levylle siirtäminen (checkpointing) muistitilan vapauttamiseksi korkeamman priori­

teetin omaavalle prosessille. Tämä voi myös ta­

pahtua prosessin odottaessa päätteelle suoritet­

tavan s/t-toiminnon päättymistä.

Siirtyminen odottavasta tilasta ajovalmiiseen tilaan:

- toisen prosessin prosessille suorittama sys­

teemikutsu RESUME

- operaattorin antama MCR:n komento RESume

- käyttöjärjestelmän suorittama keskeytetyn prosessin palauttaminen muistiin, kun tarvittava muistitila vapautuu korkeamman prioriteetin omaavalta prosessilta tai prosessin syöttötietojen lukeminen päätteeltä loppuu.

- WAITFOR, kun ehto muuttuu todeksi.

Prosessin saapuminen käyttöjärjestelmän prosessien joukkoon ja sieltä poistuminen tapahtuu aina pas­

siivisen tilan kautta ja operaattorin antamien MCR:n komentojen INStall ja REMove perusteella. Nämä MCR:n komennot ovat usean käyttäjän järjestelmissä

(24)

KK/iKU/PSc 1 979-1 1-1 5 -17-

etuoikeutettuja komentoja, joita voivat suorittaa vain etuoikeutetut käyttäjät. "Rivikäyttäjän"

käytettävissä on kuitenkin HCR: n komento RUN, joka käsitetään tarvittaessa komennoiksi 1ЫStall , RUH ja REMove. Jos prosessin kontrollilohkoa ei löydy järjestelmän tuntemien prosessien joukosta, prosessi siis installoidaan, sille annetaan suorituspyyntö ja suorituksen jälkeen se poistetaan välittömästi.

(25)

KK/TKO/PSc 1 979-1 1-1 5 -18-

.3 Prosessoriajan jako

Prosessoriajan jako RSX-11M:ssä perustuu tapahtumiin ja prosessien prioriteetteihin . Merkittävän tapahtu­

man jälkeen valitaan seuraavaksi suoritettavaksi prosessiksi korkeimman prioriteetin omaava aktiivi­

nen, ajovalmis prosessi. Ajoituspolitiikkaan voidaan valinnaisena optiona ottaa mukaan myös jonkinverran aikajakoisuutta, joskaan aikajakoisuus ei kuulu RSX-11M:n peruspiirteisiin.

RSX-11M on tapahtumaohjattu järjestelmä.

Kun prosessi on saanut haltuunsa prosessorin, se voi käyttää prosessoriaikaa, kunnes tapahtuu merkittävä tapahtuma (significant event).

Merkittäviä tapahtumia ovat:

- syöttö- tai tulostustoiminnan päättyminen - prosessin päättyminen

- SEND DATA systeemikutsu

- SEND BY REFERENCE systeemikutsu - RECEIVE BY REFERENCE systeemikutsu - ALTER PRIORITY systeemikutsu

- DECLARE SIGNIFICANT EVENT systeemikutsu - kellojonon alkion poistaminen

- Round-Robin aikaviipaleen päättyminen.

Prosessien käytettävissä olevat prioriteettitasot ovat välillä 1 - 250. Merkittävän tapahtuman jälkeen järjestelmä tutkii aktiivisten prosessien listaa (ATL) ja valitsee suoritettavaksi ensimmäisen suori­

tettavissa olevan prosessin. Prosessien kontrolli- lohkot on liitetty aktiivisten prosessien listaan prioriteetin mukaiseen järjestykseen.

Round-Robin ajoituspolitiikka on RSX-11M:n valin­

nainen ominaisuus, jonka käyttö ja aikaviipaleen pi­

tuus määritellään systeemin generointivaiheessa.

Periaatteena Round-Robin ajoituksessa on, että saman prioriteetin omaavat prosessin jakavat keskenään ta­

san sen proses soriajan , jonka kyseisen prioriteetti- ryhmän prosessit yhteensä saavat. Ilman Round-Robin ajoitusta käyttöjärjestelmällä on taipumus antaa prosessoriaikaa useammin prosessille, jonka TCB si­

jaitsee STD:ssä ensimmäisenä. (Saman prioriteetin omaavat prosessit ovat STD:ssä installointi- järjestyksessä.)

(26)

KK/TKü/PSc 1 979-1 1-1 5 -19-

Eräs RSX-1 1Ы: n prosessoriajan jakoon vaikuttava omi­

naisuus on prosessien keskeytettävyys (checkpoint­

ing). Prosessin keskeyttämisellä tarkoitetaan muistissa olevan prosessin tilapäistä kirjoittamista levylle tähän tarkoitukseen varatulle alueelle, jotta korkeamman prioriteetin omaava prosessi voidaan si­

joittaa muistiin. Prosessin keskeytettävyyden tar­

koituksena on taata, että keskeyttänyt korkeamman prioriteetin omaava prosessi voidaan tuoda muistiin.

Jotta prosessi olisi keskeytettävissä, se on eksplisiittisesti määriteltävä keskeytettäväksi prosessiksi, (Task Builderin optio CHECKPOINTABLE = YES. )

Prosessien muistitilan jakamisella (RSX-ympäristössä käytetään termiä swapping, jolla ei kuitenkaan tar­

koiteta aivan samaa kuin termillä yleensä) tar­

koitetaan yhteisen muistialueen jakamista useamman, lähes saman prioriteetin omaavien prosessien kesken.

Myös muistitilan jakaminen on systeemin generoinnin yhteydessä valittavissa ja määriteltävissä oleva omi­

naisuus. Muistitilan jakaminen perustuu prosessille määriteltävään muistiprioriteettiin . Kun prosessi tuodaan muistiin, muistiprioriteetti saa alkuarvok- seen prosessin prioriteetin ja määritellyn muistiprioriteettivakion summan. Tietyin, systeemin generoinnin yhteydessä määritellyin aikavälein dekrementoidaan muistiprioriteettia yhdellä kunnes prosessin prioriteetti on tasolla prosessin prioriteetti - nuistiprioriteettivakio tai kunnes jo­

kin odottava prosessi on keskeyttänyt kyseisen prosessin. Muistiprioriteettikäsitteen käyttöönotto mahdollistaa sellaisten odottavien prosessien, joiden prioriteetti on sama tai jopa muistiprioriteettiva­

kion verran alhaisempikin, toimesta tapahtuvan muistissa olevan prosessin keskeyttämisen. Muis­

tiprioriteetti vaikuttaa vain muistinkäyttöön;

prosessin prioriteetti muiden järjestelmän resurssien suhteen ei muutu. Jotta muistissa oleva prosessi yleensä voitaisiin keskeyttää, sen on tietysti oltava keskeytettävissä. Muistin jako-ominaisuutta kannat­

taa käyttää lähinnä suurissa järjestelmissä, joissa tehdään paljon ohjelmankehitystyötä.

(27)

KK/TKO/PSc 1 979-1 1-1 5 -20-

.4 Prosessien synkronointi ja kommunikointi

Prosessin synkronointi RSX-11M:ssä perustuu ta- pahtumalippujen käyttöön (event flags). Kullekin prosessille on määritelty 64 tapahtumalippua, jotka on numeroitu 1 - 64. (Event Flag number, EFN).

KUVA 2.4 Tapahtumalippujen jako

EFN :

järjestelmän yhteiset prosessin paikalliset tapahtuma liput tapahtumaliput

<--- X--- p

57 56 33 32 25 24

järjestelmän käyttöön varatut tapahtuma li put

Prosessi voi käsitellä järjestelmän yhteisiä ja omia paikallisia tapahtumalippujaan. Toisen prosessin paikallisiin tapahtumalippuihin prosessi ei mitenkään pääse käsiksi.

Tapahtumalippujen käsittely tapahtuu erityisillä sys­

teemikutsuilla.

Näitä ovat :

- CLEAR EVENT FLAG - READ ALL EVENT FLAGS - SET EVENT FLAG

- WAIT FOR SINGLE EVENT FLAG

- WAIT FOR LOGICAL 'OR' OF EVENT FLAGS.

Useat muutkin systeemikutsut käsittelevät implisiit­

tisesti tapahtumalippuja. Prosessi voi kunkin sys­

teemikutsun yhteydessä määritellä itse käytettävän tapahtumalipun numeron.

EXITIF: prosessin suoritus päättyy ellei määritelty tapahtumalippu ole asetettu.

MARK TIME: tapahtumalippu nollataan systeemikutsua suoritettaessa ja asetetaan määritellyn ajanjakson

(28)

KK/TKO/PSc 1 979-1 1-1 5 -21 -

kuluttua.

QUEUE I/O REQUEST: tapahtumalippu nollataan kun I/O- pyyntö asetetaan jonoon ja asetetaan kun S/T päättyy.

SEND DATA: tapahtumalippu asetetaan, kun tietolohko asetetaan jonoon.

SEND BY REFERENCE: tapahtumalippu asetetaan lähettävälle prosessille, kun vastaanottava prosessi suorittaa RECEIVE BY REFERENCE systeemikutsun.

Prosessien välinen kommunikointi on RSX-11M:n puit­

teissa mahdollista useammalla eri tavalla. Kommuni­

kointi voi tapahtua joko lähettämällä tietoa suoraan tai lähettämällä tieto tiedon sijainnista.

Tiedon lähettäminen suoraan toteutetaan systeemikut­

suilla SEND/RECEIVE DATA. Lähetettävä tieto si­

joitetaan 13- sanan mittaiseen tietopuskuriin, jonka käyttöjärjestelmä asettaa dynaamiselle muistialueel­

leen (Dynamic Storage Region, DSR) jonoon vastaanot­

tavalle prosessille. Jonoa käsitellään fifo- periaatteella. Vastaanottavalle prosessille välite­

tään paitsi tietopuskuri, myös tieto lähettävästä prosessista. Tiedon välityksen synkronointia ei ole sisällytetty SEND/RECEIVE DATA - systeemikutsuihin, vaan jos synkronointia tarvitaan, se on rakennettava itse tapahtumalippujen avulla.

Tiedon välityksessä käytetyt yhteiset muistialueet voivat olla joko staattisia tai dynaamisia. Tieto sijaitsee muistialueella, joka on kaikkien kommuni­

koivien prosessien osoitettavissa, ts. muistialue on liitetty kunkin prosessin muistiavaruuteen. Staat­

tinen muistialue on olemassa luontihetkestään siihen asti, kunnes se eksplisiittisesti tuhotaan. Staat­

tinen muistialue on luotava ennen minkään kommuni­

koivan prosessin linkittämistä ja se on sijoitettava omaan muistin osaansa, partitioon, jonka tyypiksi on määriteltävä COMMON.

Dynaamisella muistialueella tarkoitetaan muistialuet­

ta, jonka prosessi voi dynaamisesti luoda muistin hallintaan liittyvien systeemikutsujen avulla. Muis­

tialueiden välittäminen prosessilta toiselle voi ta­

pahtua systeemikutsujen SEND/RECEIVE BY REFERENCE avulla tai prosessi voi viitata toisen prosessin luomaan muistialueeseen yksinkertaisesti alueen nimen perusteella edellyttäen, että alue on nimetty ja prosessi tuntee alueen nimen. Dynaamisiin muisti­

alueisiin liittyviä asioita käsitellään perusteel­

lisemmin muistinhallintaa käsittelevässä luvussa 3»

(29)

KK/TKO/PSc 1979-11-15 -22-

Todella suurien tietomäärien siirtoon ainoa käytettävissä oleva keino on yhteisten (data-)tiedostojen käyttö. Tiedoston suojausmekanis- mit ja tiedonsiirron synkronointi on pitkälti raken­

nettava itse .

ESIMERKKI 2.3: Prosessien kommunikointi SEND/RECEIVE systeemikutsujen avulla.

Kommunikoivat prosessit ovat nimeltään SEND ja RE­

CEIV. SEND lähettää prosessille RECEIV tietopuskurin ja jää odottamaan. RECEIV vastaanottaa SENDin lähettämät tiedot, käsittelee ne ja lähettää tieto- puskurin takaisin SENDille.

Ohjelmista on pyritty tekemään mahdollisimman yksin­

kertaisia havainnollisuuden säilyttämiseksi, joten ne eivät sisällä esim. virhetarkistuksia. Jotta ohjel­

mat pysyisivät kohtuullisen kokoisina, ei niissä myöskään ole kovin runsaasti kommentteja.

Ohjelmien listaukset ovat liitteenä seuraavilla sivuilla.

Ajoesimerkki:

>RUN SEND

TASK! SEND JAA ODOTTAMAAN,

RECEIV ON VASTAANOTTANUT TIEDOT?

•t 2 3 4 5

9 10 И i2 13

ÏASKI SEND ON VASTAANOTTANUT TIEDOT;

?_ 4 6 8 10

18 20 22 24 26

RECEIV LOPETTAA,.,

12 14

8

16

(30)

MACRO Ml110 03-0CT-79 16:37 1PAGE 1 LIITE 1-1

1 .TITLE SEND

2 .LIST TTM

3 .NLIST ВЕХ

4 .NLIST SYM

5 ♦MCALL QIOW$C ,SDAT$C » RGST$C

6 .MCALL SPNDSS,RCVD$C,EXIT$S,USIGSS

7 8 9

10 000000 000001 obuff: . WORD 1,2,3,4,5,6,7,8.»9.,10.,11.,12.»13.

11 000032 ibuff: ♦ BLKW 15.

12 000036' ARGBL.K -IBUFF+4

13 000070 012 MSGi : .ASCII <12>/TASKI SEND JAA ODOTTAMAAN./

14 000033 SIZ1='.- MSGI

15 000123 124 EDSTRGÎ .ASCII /TASKI SEND ON VASTAANOTTANUT TIEDOT:

16 000170 045 .ASCIZ /%N%8D%N%5D/

17 000203 msgbuf: . BLKB 100.

13 . EVEN

19 « ENABL L.SB

20 »

21 î

2p 000350 start: SDAT$C RECEIV,OBUFF 9 LÄHETETÄÄN TIETO

23 000356 RQSTSC RECEIV 9 KÄYNNISTETÄÄN RECEIV

24 000364 QIOWSC 10. UVB, 5,5, » , »•ÍMSG1,SIZ1,40>

25 000372 SPNDSS 9

26 27 28

9 JA ODOTETAAN...

000400 RCVDSC ,IBUFF

9

9 VASTAANOTETAAN TIETO 29 000406 012700 MOV *MSGBUF,RO 9 JA TULOSTETAAN

30 000412 012701 MOV tEDSTRG,R1 9

31 000416 012702 MOV ÍARGBLK,R2 9

32 000422 004767 JSR PC,$EDMSG 9

33 000426 GIOUSC 10 . UVB ,5,1 , , » , <ÍMSGBUF» 100.,40>

34 000434 EXIT$S 9

35 000350' . END START

0FtS DETECTED J О

TUAL MEMORY USED: 1971 UORDS ( 8 PAGES) 'AMIC MEMORY: 16962 WORDS ( 65 PAGES) i psed time: oo:oo:36

d,lp:=send

(31)

IV MACRO Ml 110 03 -OCT-79 1

б:зз

PAGE 1

LIITE 1-2

1 ♦TITLE RECEIV

2 ♦ LIST TTM

3 .NLIST BEX

4 .NLIST SYM

5

♦MCALL QIOWSC,SDAT$C, RCVDSC

6

? 8 9 10

♦MCALL RSUMSCуEXIT $Sу USIGSS y

000000 ibuff: . BLKW 15 ♦

У У

11 000004" OBUFF == IBUFF + 4

12 000036 122 MSG2 : ♦ASCII /RECEIV LOPETTAA.../

13 000022 SIZ2=. -MSG2

14 000060 122 EDSTRGÎ ♦ASCII /RECE IV ON VAS TAANOTTANUT TIEDOTî 15 000120 045 .ASCIZ /%N%8DXN%5D/

16 000133 msgbuf: ♦ BLKB 100.

17 ♦ EVEN

18 ♦ENABL LSB

19 У

20 У

21 У

22 000300 start: RCVDSC y IBUFF У VASTAANOTETAAN 23 000306 012700 MOV ♦ MSGBUFy RO у JA TULOSTETAAN

24 000312 012701 MOV ♦ ED3TRG y Rl У

25 000316 012702 MOV ♦OBUFFyR2 У

26 000322 004767 JSR PC y SEDMSG У

27 000326 QIOW$C 10.WVB y 5 y 1 У У У У•íMSGBUF у 100 ♦ у 40>

28 000334 012700 MOV ♦ OBUFFy RO У KERROTAAN ARVOT

29 000340 012701 MOV ♦ 13.y RI У

30 000344 061020

io $:

ADD (RO)y(RO)i У

31 000346 077102 SOB RI y 10$ У

32 000350 SDAT $C SEND yOBUFF У LÄHETETÄÄN TIETO

33 000356 RSUM$C SEND у HERÄTETÄÄN SEND

34 000364 QIOWSC 10♦WVB y 5 y 1 У У У У<MSG2 y SIZ2 у 40>

35 000372 EXITSS

36 000300" ♦ END START

DRS detected: о

гиAL MEMORY USEDî 1805 WORDS ( 8 PAGES) tMIC MEMORY: 16962 WORDS < 65 PAGES)

■■'SED time: 00:00:40

hv,lp:=:receiv

TIETO

КAHDEL

(32)

KK/TKO/PSc 1979-11-15 -23-

.5 Keskeytysten käsittely

Keskeytykset ovat kahta perustyyppiä:

- prosessorin aiheuttamat keskeytykset

- ulkoisten laitteiden aiheuttamat keskeytykset.

Seuraavassa käsitellään käyttöjärjestelmän keskeytys­

ten käsittelyä. Käyttäjä voi myös määritellä omia keskeytyspalvelurutiinejaan, mutta niihin ei puututa tässä yhteydessä.

Prosessorikeskeytykset ovat yleensä synkronisia ja ne voidaan käsittää ohjelmiston aiheuttamiksi. Ulkoiset keskeytykset ovat asynkronisia, oheislaitteiden aiheuttamia keskeytyksiä.

Ulkoisilla laitteilla on laitteisto-osoitin laite­

kohtaiseen sanapariin muistissa. Sanapari sisältää prosessorin uuden tilasanan ja laitteen keskeytys pal- veluohjelman osoitteen.

KUVA 2.5 Laitteistokohtainen sanapari

keskeytyspalveluosoite uusi P S W

Keskeytyksen sattuessa ei siis tarvitse käydä lävitse kaikkia mahdollisia keskeytyksen aiheuttajia vaan tiedetään heti, mikä laite keskeytti. Kun prosessori keskeytetään, prosessorin tilasana (Processor Status Word, PS, PSW) ja ohjelmalaskuri (Program Counter, PC) työnnetään pinoon. Uusi PC ja PS otetaan ylläkuvatusta laitekohtaisesta sanaparista, joka si­

jaitsee muistissa keskeytysvektoreille varatulla alueella. Käsky RTI (Return from Interrupt) palaut­

taa alkuperäisen PS:n ja PC:n.

Ulkoisiin keskeytyksiin liittyy prosessorin priori- teettitaso PR4, PR5, PR6 tai PR7. Prioriteettitaso PR4 on näistä matalin ja PR7 korkein. Ulkoiset keskeytykset ovat täten priorisoitavissa ja ne voidaan tarvittaessa peittää; keskeytykset sallitaan vain, jos keskeyttäjän prioriteetti on suurempi kuin prosessorin nykyinen prioriteetti.

(33)

KK/TKO/PSc 1979-11-15 -24-

Prosessorikeskcytyksiä ei voida peittää, vaan ne käsitellään aina välittömästi. Tärkein proses- sorikeskeytyksen aiheuttaja on käsky EMT (Emulator Trap ) .

Keskeytyksen käsittely käyttöjärjestelmässä suori­

tetaan seitsemän rutiinityypin avulla.

Nämä rutiinityypit ovat :

- Interrupt Service Routines - Trap Service Routines

- The Interrupt Save Routine (INTSV) - The Directive Save Routine (DIRSV) - The Interrupt Exit Routine (INTXT) - The Directive Exit Routine (DIRXT) - The Fork Processor (FORK).

Keskeytysten käsittelyrutiinit voivat olla suori­

tuksessa kolmella eri prioriteettitasolla : priori- teettitasolla 7, keskeytyksen aiheuttajan prioriteet­

titasolla ja Fork-tasolla 1. prioriteetitasolla 0.

Toimenpiteet, joihin keskeytyksen sattuessa ryhdytään, riippuvat keskeytyksen lajista ja siitä, missä systeemin tilassa oltiin, kun keskeytys sattui.

Systeemin tilaa osoittaa STKDP (Stack Depth Indica­

tor):

STKDP = 1 : käyttäjätilassa STKDP <= 0 : systeemitilassa.

Pääsääntöisesti prosessorikeskeytyksiä ilmenee vain käyttäjätilassa, mutta laitekeskeytyksiä sattuu sekä käyttäjä- että systeemitilassa.

Keskeytysten käsittelytapa ratkaistaan seuraavasti :

1 Käyttäjä

-L -L d .

Systeemi

Ulkoinen 1 2

Prosessori 3 4

Keskeytys :

(34)

KK/TKO/PSc 1 979-1 1-1 5 -25-

(1) Käyttäjätilassa tapahtuva ulkoinen keskeytys

- Prosessorin tilasana (PS) ja ohjelmalaskuri (PC) työnnetään pinoon.

- Aloitetaan keskeytys palvelurut iini .

- Jos keskeytyksen palvelu kestäisi yli 100 mikrosekuntia (järjestelmän konventio), ei koko keskeytyksen käsittelyä voida hoitaa prioriteettitasoila 7 eli keskeytykset kiel­

lettynä, vaan on siirryttävä keskeytyksen aiheuttajan prioriteettitasolle. Tämä tapahtuu rutiinin Interrupt Save (IU TSV) avulla. INTSV tallettaa rekisterit RЦ ja R5, dekrementoi STKDP:n arvoa, vaihtaa pinon systeemipinoksi, jos STKDP:n arvo on nolla, ja lataa uuden prioriteettiarvon, joka annetaan INTSV:n kutsussa.

(2) Systeemitilassa tapahtuu ulkoinen keskeytys

- Hoidetaan kuten (1). INTSVrssä ei kuitenkaan tarvitse koskaan vaihtaa pinoa, koska ollaan jo systeemitilassa.

(3) Käyttäjätilassa tapahtuu prosessorikeskeytys

- Prosessorin tilasana (PS) ja ohjelmalaskuri (PC) työnnetään pinoon.

- Aloitetaan keskeytyspalvelurutiini .

- Jos keskeytys on käsky EMT, työnnetään sys­

teemikutsun (direktiivin) parametrit käyttäjän pinoon ennen EMT:n suorittamista.

- Keskeytyspalvelurutiini kutsuu Directive Save rutiinia (DIRSV), joka suorittaa periaatteessa samat toimenpiteet kuin IЫ T S V, mutta tallettaa kaikki rekisterit.

(4) Systeemitilassa tapahtuu prosessorikeskeytys Vain kaksi keskeytystyyppiä ovat sallittuja:

TRAP-käsky ja jännitehäiriö.

TRAP-käsky simuloi FORK-prosessin luomista ja varmistaa systeemin tietokantojen käsittelyn pe­

räkkäisesti. Jännitehäiriö on itseasiassa ul­

koinen keskeytys, joka ei ole koskaan peitettävissä ja käsitellään siksi kuten proses­

sorikeskeytys. Kiellettyjen keskeytysten sat­

tuessa järjestelmän toiminta lopetetaan. TRAP- käsky n ja jännitehäiriön käsittelyyn ei niiden erikoistapauksen luonteen vuoksi puututa tässä.

(35)

KK/TKÛ/PSc 1979-11-15 -26-

Pal ve lua odottavien keskeytysten lukumäärän yläraja on myös riippuvainen keskeytyslajista. Proscs- sorikeskeytyksiä voi olla palvelua jonottamassa vain yksi, koska prosessorikeskeytys tapahtuu pääsääntöisesti käyttäjätilasta ja järjestelmä on käyttäjätilassa vain, jos systeemitilassa ei ole mitään tekemistä. Systeemitilassa voi tapahtua vain ulkoisia keskeytyksiä. Palveltavien keskeytysten jonon pituus on siis käyttäjätilassa korkeintaan yk­

si, mutta systeemitilassa useampiakin keskeytyksiä voi olla odottamassa.

Systeemitilassa on useampien peräkkäisten keskeytys­

ten käsittelyn ongelmat rekursion ja tietokantojen suhteen ratkaistu järjestämällä operaatiot pe­

räkkäisiksi. Systeemin tietokannoilla tarkoitetaan järjestelmään kiinteästi kuuluvia tietorakenteita, jotka sisältävät tiedot prosesseista, muistin käytöstä ja oheislaitteista.

Järjestelmän tavoitteena on toimia keskeytettävissä mahdollisimman suuren osan ajasta. Järjestelmä ei ole keskeytettävissä, jos keskeytystä käsitellään prioriteettitasolla 7, keskeyttäjän prioriteetti on alempi kuin suoritettavan keskeytyksen prioriteetti tai systeemi päivittää tietokantaansa, jonka kon- sistenssia ei voida ylläpitää kieltämättä keskeytyk­

siä.

Usein keskeytysten käsittely vaatii enemmän aikaa kun edellä mainittu 100 mikrosekunttia. Kun prosessi on vaihtanut prioriteettinsä keskeyttäjän prioriteetti- tasolle, se voi jatkaa suoritustaan tällä tasolla 500 mikrosekuntia. Työväline, jolla keskeytystenkäsitte- lyrutiinit jaetaan ei-keskeytettäviin ja keskeytet­

täviin osiin, on FORK PROCESSOR.

Fork on sisäinen aliohjelma, joka järjestää systeemin tietokantoihin tapahtuvat operaatiot peräkkäisiksi.

Peräkkäisrakenteena käytetään aliohjelmaan liittyvää listaa, FORK LIST, jota käsitellään fifo-periaat- teella.

Keskeytysten käsittelyohjelmille asetetaan seuraavat vaatimukset: muut rekisterit, paitsi R4 ja R5 on säilytettävä ja palautettava, jos niitä käytetään, keskeytyksettä voidaan suorittaa korkeintaan 20 käskyä ja kaikki muutokset systeemin tietokantoihin suoritetaan FORK PROCESSORin kautta. Keskeytyksen käsittelyohjelman on kutsuttava FORKia, kun se haluaa siirtyä keskeytettävästä tilasta ei-keskeytettävään tilaan tai muuttaa systeemin tietokantaa.

(36)

KK/TKO/PSc 1979-11-15 -27-

FORKin kutsuminen tapahtuu IЫ T S V : n kautta. FORK tar­

vitsee myös erityisen FORK BLOCKin, jonka se liittää FORK LISTaan. FORK LIST on siis lista niistä sys- teemirutiineista, jotka odottavat suorituksensa päättämistä tai pääsyä systeemin tietokantoihin.

Itseasiassa FORK LIST on toissijainen keskeytysjono, jota käsitellään fifо-periaatteella silloin, kun sys- teemipino on tyhjä. FORK BLOCK sisältää kutsuvan prosessin R4,R5 ja PC:n, jotka tiedot riittävät prosessin uudelleen käynnistämiseksi. FORK sijoittaa FORK BLOCKin FORK LISTaan ja kutsuu INTXTiä.

Systeemitilasta poistuminen tapahtuu keskeytyslajista riippuen joko rutiinin Interrupt Exit (INTXT) tai Directive Exit (DIRXT) kautta. Poistumisrutiinit poistavat peräkkäin kaikki alkiot systeemipinosta ja sen jälkeen FORK LISTasta. Järjestelmän pyrkimyksenä on saattaa kaikki keskeneräiset työt päätökseen niin pian kuin mahdollista. Kun systeemipino ja FORK LIST on käsitelty palataan käyttäjätilaan.

INTXT inkrementoi STKDP:n, palauttaa rekisterit R4 ja R5 ja suorittaa paluun. Jos paluun pitäisi tapahtua käyttäjätilaan, tarkistetaan ensin, onko FORK LIST tyhjä. Jos FORK-lista ei ole tyhjä, talletetaan re­

kisterit R0 - R3 ja kutsutaan DIRXTiä.

DIRXT käynnistää FORK LISTassa olevat työt uudelleen yksitellen, valitsee uuden suoritettavan prosessin, jos ajoitusosoitin (rescheduling pointer, RQSCH) on asetettu ja palaa korkeimman prioriteetin omaavaan prosessiin, jonka tiedot löytyvät systeemipinosta.

Käyttöjärjestelmän rakenne on luonteeltaan pe­

räkkäinen, joten erityisiä synkronointimekanismeja ei tarvita. Rutiinit, jotka on laadittu järjestelmän konventioiden mukaisesti suorittavat systeemin tietokannan päivitykset peräkkäin, eikä niiden tar­

vitse erikseen huolehtia tietokannan varaamisesta yk­

sityiseen käyttöönsä.

(37)

KK/TKO/PSc 1979-11-15 -28-

KUVA 2 .6 Keskeytysten käsittely kaaviona

keskeytys

yli 100ys

<y l L ä tarvitaa

INTXT/DIRXT keskeytyksen

käsittely PRO

kutsutaan INTSV/DIRSV

kutsutaan FORKia

keskeytyksen käsittely PR laite keskeytyksen käsittely PR7

tulo palvelu-- rutii niin

< RT1 )

(38)

KK/TKU/PSc 1979-11-15 -29-

.6 Systeemikutsut

Systeemikutsuilla (sys teemidirekt iiveillä) tarkoite­

taan käskyjä, joilla prosessi pyytää käyttöjärjestel­

mältä palveluja.

Systeemikutsu on makro, jolla on mahdollisesti ar­

gumentteja .

Systeemikutsujen toteutus koostuu kahdesta osasta : 1. Parame tril ohkon (Directive Parameter Block, DPB)

luominen.

2. EMT 377 - käskyn suoritus, joka aiheuttaa prosessorikeskeytyksen, jonka käyttöjärjestelmä palvelee.

Systeemikutsun parametrilohko sisältää kutsun tunnis­

tamiseksi tarvittavat tiedot ja muut mahdolliset ar­

gumentit. DPB voidaan tallettaa pinoon tai prosessin data-alueelle.

KUVA 2.7 Systeemikutsun parametrilohko

DPBSZ DIC

direktiivin argumentit

DPBSZ

DPB: n koko DIC

Direktiivin identifikaatio koodi

Direktiivin identifikaatiokoodi, DIC, on aina pariton luku. Jos DPB luodaan prosessin data-alueelle, sen osoite työnnetään pinoon direktiivin kutsussa. Jos DPB työnnetään kokonaan pinoon, jää pinon päällimmäiseksi sana, joka sisältää DICin. DIC on aina pariton, kun taas osoite on aina parillinen, joten pinon päällimmäinen sana sisältää aina tiedon parametrilohkon sijainnista.

(39)

KK/TKO/PSc 1979-11-15 -30-

Direktiivin identifikaatiokoodille, DICille, varattu tila, 1 tavu, rajoittaa mahdollisten direktiivien määrän 128 : aan. Tällä hetkellä niistä on käytetty hieman yli 50.

Direktiivin kutsu on muotoa : XXXX$Y.

XXXX korvataan direktiivin nimellä ja Y määrittelee direktiivin muodon . Direktiiveistä on yleensä toteu­

tettu kolme erilaista muotoa :

Y muoto

tyhjä DPB prosessin data-alueella, direktiivin suoritus

DIR$ direktiivillä S DPB pinossa

C DPB pinossa data-alueella

XXXX$-muoto vain luo direktiivin parametrilohkon, muoto on siis tarkoitettu käytettäväksi data-alueella määrittelynä. XXXX$-muoto on erityisen hyödyllinen, jos samaa direktiiviä käytetään useamman kerran.

Makron suoritus tapahtuu koodialueella olevan DIR$-makron avulla, joka suorittaa direktiivin prosessoinnin toisen osan : EMT 377 - käskyn.

XXXX$S-muoto työntää direktiivin parametrilohkon pi­

noon ja suorittaa EMT 377 - käskyn. XXXX$S-muoto luo DPB : n vasta suoritusaikana, kun muut muodot luovat sen jo käännösvaiheessa. Jos prosessin on oltava vapaakäyntinen, on direktiiveistä käytettävä XXXX$S- muotoja.

XXXX$C-muoto tuottaa direktiivin parametrilohkon erilliseen ohjelmasektioon $DPB$$. DPB: n luomisen jälkeen palataan kutsussa määriteltyyn ohjelmasek- tioon, työnnetään DPB: n osoite pinoon ja suoritetaan EMT 377 - käsky. XXXX$C-muodon käyttö on suositelta­

vaa, mikäli ohjelman ei tarvitse olla vapaakäyntinen ja makro suoritetaan vain kerran.

(40)

KK/TKO/PSc 1 979-1 1-1 5 -31-

ESIME RKKI 2.4: Systeemikoraento jen eri muodot

Prosessit DIRE, DIRES ja DIREC havainnollistavat sitä, miten eri muodot laventuvat käännösvaiheessa, eli miten eri systeemikutsut itseasiassa on toteutet­

tu .

Kaikki ohjelmat kirjoittavat rivin tekstiä rivikir- joittimelle käyttäen QlO-makroa.

QIO$-muodolla luodaan direktiivin parametrilohko ohjelman data-alueelle ja direktiivin prosessoinnin toinen osa, EMT 377 -käsky suoritetaan DIR$-direlctiivillä.

QlU$S-muoto työntää parametrit pinoon ja suorittaa lopuksi EMT 377 -käskyn.

QIO$C-muoto taas luo parametrilohkon omaan oh je 1- masektioonsa ja parametrilohkon osoite työnnetään pi­

noon ennen EMT 377 -käskyn suoritusta.

Ohjelmalistauksessa ne rivit, joiden alussa on rivi- numerointi, ovat varsinaisia ohjelmarivejä.

Rivinuinerottomat rivit ovat kääntäjän tuottamaa koodia.

(41)

1 2 3 4 5 ó 7 8 9 10 11 12 13 14 15 16 17 18

19

20 21 22 23 24

25 26 27 28 29 30 31 32 33 34

MACRO МНЮ 03-0СТ-79 13Î38 PAGE 1 LIITE 2-1

SYSTEEMIDIREKTIIVI QI0$

.TITLE DIRE .LIST MED .LIST TTM

.MLIST BEX .NLIST SYM 000000 000000'

i

.MCALL

.MCALL

G10*tWTSE*»DIR*»EXIT*S

? GIO -- QUEUE I/O REQUEST

î WTSE - WAIT FOR SINGLE EVENT FLAG 5 DIR - DIREKTIIVIN SUORITTAMINEN

; EXIT - TASK EXIT ALUNSC

000002 start: ALUNSC 5 » LP t0

000000 007 .BYTE 7,4

000002 000005 . WORD 5

000004 114 .ASCII /LP/

000006 000000 .WORD 0

000002 012746 MOV #***f-<SP>

000006 104377 EMT "CK377>

000010 DIR* »WRITE

000010 012746 MOV »WRITE » -<SP) 000014 104377 EMT "0<377>

000016 103412 DCS ERRl

000020 DIR* »WAIT

000020 012746 MOV »WAIT » - < SP) 000024 104377 EMT ~0<377>

000026 126727 CMPB IOST ? »IS♦sue

000034 001010 BNE ERR2

000036 EXIT $S

000036 012746 MOV (PC) + » -(SP)

000040 063 .BYTE 51. » 1

000042 104377 EMT ~0<377>

f ERROR ROUTINES 000044 012700 ERRl : MOV » 11 RO 000050 016701 MOV $DSW tR1

000054 000004 IOT

000056 012700 ERR2Î MOV »2 » RO

000062 016701 MOV IOSTrRl

000066 000004 IOT

(42)

IRE MACRO МНЮ 03-0CT-79 PAGE 2 LIITE 2-2

36 9 -

37 9 DATA

38 9

39 000070 write; QIO$ 10.WVB » 5 » 1 » »IOST » »

000070 001 * BYTE 1 » 12.

000072 OOOOOOG . WORD 10.WVB

000074 000005 ♦ WORD 5

000076 001 . BYTE 1 »0

000100 000124' ♦ WORD IOST

000102 000000 ♦ WORD

000104 000130' .WORD BUFF

000106 000025 .WORD BSIZ

000110 000060 .WORD 60

000112 000000 .WORD 0

000114 000000 .WORD 0

000116 000000 .WORD 0

40 9

41 000120 wait; WTSE* 1

000120 051 .BYTE 41 . »2

000122 000001 .WORD 1

42 9

43 000124 iost; . BLKW 2

44 9

45 000130 124 buff; .ASCII /TAMA ON ESIMERKKI

46 000025 BSIZ-. -BUFF

47 .EVEN

48 9

49 000002' .END START

:rrors DETECTED: О

VIRTUAL MEMORY USED Î 1295 WORDS ( 6 PAGES) DYNAMIC MEMORY; 1Ó962 WORDS ( 65 PAGES) 'lapsed time; oo;oo;43

11RE»LP;-DIRE

AMA ON ESIMERKKIRIVI

(43)

URES MACRO МНЮ 03-0СТ-79 1 з : 4 5 PAGE 1 LIITE 2-3

1 2 3 4

6 .LIST

7 .NL 1ST

8 ,NL1ST

9 .MCALL

10 11 12

13 .MCALL

14 9

15 9--- ---

16 000000 start: ALUNSC

000000 007 .BYTE

000002 000005 .WORD

000004 114 .ASCII

000006 000000 .WORD

000000 012746 MOV

000004 104377 EMT

17 000006 Q10$S

000006 005046 CL.R

000010 005046 CLR

000012 005046 CLR

000014 012746 MOV

000020 012746 MOV

000024 012746 MOV

000030 005046 CLR

000032 012746 MOV

000036 005046 CLR

000040 112716 MOVB

000044 012746 MOV

000050 012746 MOV

000054 012746 MOV

000056 001 .BYTE

000060 104377 EMT

18 000062 103414 BCS

19 000064 UTSESS

000064 012746 MOV

000070 012746 MOV

000072 051 . BYTE

000074 104377 EMT

20 000076 126727 C MP В 21 000104 001010 B NE

pp 000106 E XIT $ S

000106 012746 MOV

000110 063 .BYTE

000112 104377 EMT

SYSTEEMIDIREKTIIVI OIO$S

♦ TITLE DIRES .LIST MED TTM

ВЕХ SYM

Q10$S » WTSE$S, EXIT$S

i QIO - QUEUE I/O REQUEST

; UTSE - LIAIT FOR SINGLE EVENT FLAG î EXIT - TASK EXIT

ALUN$C

5 » LP » О

71 4 5 /LP/

О

t$$$,-(SP)

~0<377>

tI0.WVB,t5,tl,,tIOST,,<tMES,tSIZ,t60 -(SP)

-(SP) - ( SP )

#60»-(SP) tSIZ,-(SP) tMES,-(SP) - ( SP )

Ф108Т,-(SP) -(SP)

•tl > (SP)

»5,-(SP)

»10.WVB,-(SP) (PC) + ,-(SP) 1,12.

"0<377>

ERR'1 tl

tl,-(SP) (PC)+,-(SP) 41 . , 2

~0<377>

IOST,tIS.SUC ERR2

(PC) + ,-(SP >

51 . , 1

"0<377>

Viittaukset

LIITTYVÄT TIEDOSTOT

• M-tiedoston sisältämät komennot suoritetaan kirjoittamalla komentotilas- sa se tiedoston nimi, johon komennot kirjoitettiin: Jos esimerkiksi edito- rissa tallennetaan

Kopioi kurssin kotisivuilta tiedosto nauru.mat koneesi D:/data hakemistoon ja lue tiedoston muuttuja Matlabin työpöydälle (load nauru; whos). Kuuntele tiedoston sisältämä

Raghavan (2014) jatkaa, että tiedot voivat olla hyödyllisiä myös järjes- telmänhallinnassa, koska ne antavat tietoja asiakirjan tai tiedoston luomisesta, käsittelystä, siirrosta

Tiedoston yksittäisten tietojen käyttö ei ole tarkoituksenmukaista, koska nimikekohtaiseen kustannukseen vaikuttavat monet satunnaiset muuttujat ja olosuhde- tekijät ja virheiden

Esimerkiksi seuraava käsky avaa tiedoston, jonka nimi on tekstia.txt lukemista varten niin, että ohjelmassa tiedostoa voidaan käsitellä muuttujan lahtotiedosto avulla:.. lahtotiedosto

Esimerkiksi seuraava käsky avaa tiedoston, jonka nimi on tekstia.txt lukemista varten niin, että ohjelmassa tiedostoa voidaan käsitellä muuttujan lahtotiedosto avulla:.. lahtotiedosto

I K¨ asittelytapojen ero: &#34;w&#34; kirjoittaa olemassaolevan tiedoston p¨ a¨ alle (vanha sis¨ alt¨ o h¨ avi¨ a¨ a kokonaan), &#34;a&#34; kirjoittaa olemassaolevan

 Opettajasi on voinut aktivoida tehtäväpalautukseen ominaisuuden, jossa sinun pitää vielä tallentamisen jälkeen varmistaa, että haluat varmasti palauttaa juuri tämän