WikiDer > MTS tizimining arxitekturasi

MTS system architecture
Michigan Terminal Tizimi (MTS)
MTS signon screenshot.png
A orqali ko'rinib turganidek MTS xush kelibsiz ekrani 3270 terminal emulyatori.
TuzuvchiMichigan universiteti va 7 boshqa universitetlar AQSh, Kanada va Buyuk Britaniyada
Yozilganturli tillarda, asosan 360/370 Assembler
Ishchi holatTarixiy
Dastlabki chiqarilish1967
Oxirgi nashr6.0 / 1988 (final)
Mavjud:Ingliz tili
PlatformalarIBM S / 360-67, IBM S / 370 va vorislari
Odatiy foydalanuvchi interfeysiBuyruqlar satri interfeysi
LitsenziyaOzod (CC BY 3.0)
Rasmiy veb-saytarxiv.michigan-terminal-system.org

MTS tizimining arxitekturasi dasturiy ta'minotini tashkil qilishni tavsiflaydi Michigan Terminal tizimi, a vaqtni taqsimlash kompyuter operatsion tizim 1967 yildan 1999 yilgacha foydalanilgan IBM S / 360-67, IBM System / 370va mos kompyuterlar.

Umumiy nuqtai

MTS me'morchiligi[1]
ShtatRejim[2]VMUzilishlar
Foydalanuvchi dasturlarimuammofoydalanuvchikunikuni
Buyruq tilining quyi tizimlari (CLS),
Qurilmani qo'llab-quvvatlash tartiblari (DSR),
Tizimning pastki dasturlari
tizim
Ish dasturlari (MTS, PDP, DMGR, RM yoki HASP, ...)yoqish yoki o'chirish
Supervisor (UMMPS)nazoratchin / ayopiqyopiq
S / 360-67 yoki S / 370 apparati

Michigan universiteti ko'p dasturlash bo'yicha nazoratchi (UMMPS) apparatni to'liq nazorat qiladi va ish dasturlari to'plamini boshqaradi.[3] Ish dasturlaridan biri MTS, ko'pchilik foydalanuvchilar o'zaro aloqada bo'lgan ish dasturi.[4] MTS buyruqlar tilining quyi tizimlari (CLS) to'plami sifatida ishlaydi. CLSlardan biri foydalanuvchi dasturlarini bajarishga imkon beradi. MTS CLS, foydalanuvchi dasturlari va MTS o'zi uchun mavjud bo'lgan tizim subroutines to'plamini taqdim etadi.[5][6] Boshqa narsalar qatori, ushbu tizim subproutineslari qurilmaga bog'liq kirish / chiqishni amalga oshiruvchi komponentlar - Device Support Routines (DSR) ga standart kirishni ta'minlaydi.

Tashkilot

Tizim o'zaro aniq belgilangan interfeyslarga ega bo'lgan mustaqil komponentlar to'plami sifatida tashkil etilgan.[3]Bu g'oya, albatta, na yangi, na noyob; ammo MTS komponentlari odatda kattaroq, tarkibiy qismlar orasidagi interfeyslar yanada qattiqroq va komponent ko'plab tizimlarga qaraganda kamroq boshqa komponentlar bilan aloqa qiladi. Natijada, tarkibiy qismlar bir-biridan mustaqil bo'lib, boshqalarni ta'sir qilmasdan bitta komponentni almashtirish osonroq bo'ladi.

Nazoratchi bilan interfeys barcha komponentlar uchun bir xil va juda kam sonli holatlarga ruxsat beriladi; masalan, barcha kirish / chiqish operatsiyalari kirish / chiqish kartani o'qish moslamasi, disk xotira qurilmasi yoki boshqa qurilmalar uchun bo'ladimi-yo'qmi bir xil nazoratchi moslamalari yordamida amalga oshiriladi. Nazoratchilarning xizmatlaridan ko'prog'ini olish zarur bo'lgan tizim dasturlari orqali amalga oshiriladi Supervisor chaqirish bo'yicha ko'rsatmalar SVC-lardan bevosita foydalanish o'rniga (SVC). Boshqaruv bloklariga faqat bilvosita boshqaruv blokiga "egalik qiladigan" tarkibidagi subroutines-ga qo'ng'iroqlar orqali erishiladi.

Foydalanuvchi dasturlari foydalanadigan interfeyslar hammasidan toza. Foydalanuvchi dasturlari hech qachon to'g'ridan-to'g'ri biron bir tizimni boshqarish blokiga murojaat qilishi mumkin emas (ma'lumot olish uchun ham, o'zgartirish uchun ham), chunki tizimni boshqarish bloklarini (tizim segmentlarini) o'z ichiga olgan virtual xotira segmentlari (foydalanuvchilari rejimi dasturi) ishning virtual manzil maydonidan o'chiriladi. ishlaydi. Foydalanuvchi dasturlari uchun mavjud bo'lgan subroutine interfeyslari, shuningdek, tizimning aksariyat qismlari tomonidan ishlatiladi (tizim rejimi dasturlari, CLS, ...), hatto tizim rejimida ishlaydigan komponentlar orqali ham "tizim" virtual xotira segmentlariga kirish imkoniyatiga ega. Foydalanuvchi rejimidan tizim rejimiga va orqaga o'tishni "darvoza" nomi bilan tanilgan (dastlab Ueyn shtat universitetida ishlab chiqilgan) maxsus himoyalangan subroutine interfeyslari to'plami boshqaradi.[2]

MTS uchun dasturiy harakatlar gorizontal emas, balki vertikal ravishda bo'linadi. Bu shuni anglatadiki, bir yoki ikkita shaxs komponent uchun javobgarlikni o'z zimmasiga oladi va keyinchalik uni loyihalashtirishdan boshlab amalga oshirish va texnik xizmat ko'rsatish orqali kuzatib boradi. Mas'ul shaxs komponentning ichki tuzilishini loyihalash va hatto interfeyslarni kengaytirish uchun katta erkinlikka ega, chunki mavjud bo'lgan barcha interfeyslar o'zgarishsiz saqlanib qoladi.

Dasturlash tillari va tizim darajasida disk raskadrovka

Nazoratchi, aksariyat ish dasturlari, ko'plab DSR va CLSlarni o'z ichiga olgan MTS-ning katta qismlari 360/370 assembler tilida yozilgan. Bir nechta ish dasturlari va ba'zi bir DSR va CLS-lar, shu jumladan yuqori darajadagi tillarda yozilgan Bundan tashqari yoki GOM. Foydalanuvchi dasturlari assambleyerdan tortib to mavjud bo'lgan har qanday yuqori darajadagi tillarga qadar keng tillarda yoziladi.

Tizimning aksariyat tarkibiy qismlari, shu jumladan foydalanuvchi dasturlari, umumiy virtual xotiraga yuklangan dasturlar, disk raskadrovka va tizimning o'chirilishini talab qilmasdan ishlayotganda ko'pchilikning yangi versiyalari o'rnatilishi mumkin. Nazoratchi va ba'zi ish dasturlarining qismlaridan tashqari barcha komponentlarning shaxsiy nusxasini almashtirish mumkin. MTS ish dasturining (TMTS) "sinov" versiyasi odatiy ishlab chiqarish muhitida sinovdan o'tishga imkon berish uchun mavjud. SWAT - bu odatda foydalanuvchi dasturlarini disk raskadrovka qilish uchun ishlatiladigan Symbolic Debugging System-dan MTS-ni disk raskadrovka qilish uchun foydalanishga imkon beruvchi interfeys.[7] $ PEEK - bu bir ish dasturini boshqasidan tuzatishni osonlashtirish uchun Program Event Recording (PER) va boshqa imkoniyatlardan foydalanadigan imtiyozli MTS buyrug'i.[7] Ushbu usulda disk raskadrovka qilinmaydigan komponentlarni MTS virtual mashinasida (foydalanuvchi dasturi) ishga tushirish orqali disk raskadrovka qilish mumkin.

Nazoratchi

Michigan universiteti ko'p dasturlash bo'yicha nazoratchi (UMMPS) - bu MTS nomidir nazoratchi.[8] UMMPS - bu tizimning S / 360 nazoratchi holatida ishlaydigan yagona qismi. U virtual xotira (ko'chirish) o'chirilgan va apparat uzilishlari o'chirilgan holda ishlaydi. Ko'p protsessorli konfiguratsiyalar bilan bir vaqtning o'zida bir nechta protsessorda bajarilishi mumkin. UMMPS - bu bugungi kunda a mikrokernel, garchi UMMPS ushbu atama keng qo'llanilishidan ancha oldin ishlab chiqilgan.

UMMPS ishlariga S / 360 yoki S / 370 apparatlarining kengaytmasi ko'rinadi va quyidagilar uchun javobgardir:

  • barcha apparat resurslarini taqsimlash (protsessorlar, haqiqiy xotira, kirish / chiqish qurilmalari),
  • I / U operatsiyalarini rejalashtirish,
  • barchasini qayta ishlash apparat uzilishlari shu jumladan ishdagi dasturlarda xatoliklar sababli sahifadagi xatolar va dasturning uzilishi,
  • amalga oshirish virtual xotira shu jumladan:
    • VM manzillarini ajratish,
    • segmentlar va sahifalar jadvallarini boshqarish,
    • saqlash kalitlarini o'rnatish orqali himoyalangan yoki faqat o'qish mumkin bo'lgan xotirani ta'minlash,
    • xotira ma'lumotlarini boshqarish va bitlarni o'zgartirish,
    • nomlangan bo'shliqlarni boshqarish (NAS),
    • qachon va qaysi sahifalarni haqiqiy xotira o'rtasida ko'chirish kerakligini aniqlash ikkilamchi saqlash amalga oshirish paging talab qiladi,
  • chiqadigan ish dasturlariga xizmatlar ko'rsatish Supervisor chaqiruvi (SVC)[9] va Monitor call (MC) ko'rsatmalari, shu jumladan:
    • ish joylarini boshlash va tugatish,
    • kirish / chiqish operatsiyalarini boshlash (kanal dasturlari),
    • rejalashtirish taymerining uzilishlari,
    • tizim operatori bilan aloqa,
    • vazifalararo aloqa xizmatlarini ko'rsatish,
    • dasturiy ta'minot qulflarini sotib olish va chiqarishga ruxsat berish,
    • foydalanuvchi rejimi dasturlari ba'zi virtual xotira segmentlariga va SVC-larning to'liq doirasiga kirish imkoniga ega bo'lmagan foydalanuvchi va tizim rejimiga kirish va chiqishga ruxsat berish,[2]
    • ish dasturlarini sinxronlashtirishga imkon beradigan xizmatlarni ko'rsatish,
    • soya segmenti va sahifa jadvallarini va ish dasturlarini taqdim etishga imkon beradigan boshqa xizmatlarni taqdim etish virtual mashina xizmatlar,
  • S / 360 yoki S / 370 kompyuterlarining ayrimlarida mavjud bo'lgan, ammo hammasida mavjud bo'lgan bir nechta mashina ko'rsatmalarini taqlid qilish,
  • dasturni to'xtatish bo'yicha filialni (BPI) psevdo ko'rsatmalarini simulyatsiya qilish,
  • mashinani tekshirishda xatolarni tiklash,
  • ish damplarini yozish (barcha haqiqiy xotirani, ishning barcha virtual xotirasini, umumiy registrlarini va dastur holatini so'zini magnit lentaga yozish orqali ishning joriy bajarilish holatini suratga olish),
  • ishlatilgan protsessor vaqtini va ish joylari uchun sahifalar sonini kuzatib borish,
  • kunduzgi soat vaqtini saqlash va
  • diagnostik iz lentalarini yaratishda yordam berish.

Ishga tushirilgandan so'ng UMMPS butunlay to'xtatiladi. Uzilishlar rahbarga (SVC) tegishli bo'lishi mumkin[9] yoki xizmatlarni talab qilish uchun ish dasturlari tomonidan chiqarilgan qo'ng'iroq ko'rsatmalarini kuzatib borish, ish dasturida havola qilinganida haqiqiy xotirada bo'lmagan virtual xotira sahifalarida sahifalar xatolarining uzilishi, ish dasturlaridagi g'ayritabiiy sharoitlar tufayli dastur uzilishlari, taymer tomonidan uzilishlar ish dasturlari yoki ichki nazoratchi ichida ishlatiladigan, kirish / chiqish quyi tizimidagi uzilishlar, mashinani tekshirishda uzilishlar, tashqi (operator tomonidan boshlangan) uzilishlar va boshqa protsessorlarning uzilishlari ko'p protsessor konfiguratsiyasida.

Supervizor holatidagi dasturning uzilishi - bu tizimning ishlamay qolishi, natijada bu супервайзер dampini (Super Dump, bu erda mashina holati va barcha real xotiraning tarkibi magnit lentaga yoziladi), so'ngra tizim qayta ishga tushiriladi (qayta IPL).

Dasturni to'xtatish bo'yicha filial (BPI)

Program Interrupt on Branch (BPI) psevdo buyrug'i dasturning uzilishidan keyin boshqaruvni saqlab qolish uchun kodlar ketma-ketligining oddiy usulini taqdim etadi. Parametrlar ro'yxatidagi amaldagi manzillarni sinab ko'rish, hisob-kitoblar paytida toshib ketish, to'lib toshish va boshqa istisnolarni aniqlash yoki dasturning uzilishi mumkin bo'lgan har qanday vaziyat uchun foydali bo'lishi mumkin. BPI-lar dasturni to'xtatib bo'lmaydigan odatda tez-tez uchraydigan holat uchun juda arzon narxlarda ishlatilishi mumkin.

UMMPS, NOP buyrug'ining maxsus turidan foydalangan holda, dasturni to'xtatish bo'yicha filialni (BPI) psevdo buyrug'ini amalga oshiradi.[10] BPI yo'riqnomasining shakli:

  BPI M2, D.2(B.2) [RX]

yoki

  Miloddan avvalgi 0, D.2(M2, B2) [RX]
   Op Code Mask1   Niqob2   Baza siljishi + -------------- + ------- + ------- + ------- + -------- ---- + | x'47 '| 0 | M2  | B2  | D.2       |  +--------------+-------+-------+-------+------------+   0              8       12      16      20         31

Niqob qaerda1 har doim nolga teng, Mask2 bu quyidagi jadvalda tasvirlangan ism yoki qiymat bo'lib, asos va siljish filial manzilini belgilaydi. Bir nechta BPI ko'rsatmalari ketma-ket berilishi mumkin. BPI yo'riqnomasi muammoli vaziyatda hamda nazoratchi-davlatda (ya'ni UMMPS ning o'zida) foydalanish uchun mavjud.

Ko'rsatma dasturning uzilishiga olib kelganda, uning aBPI buyrug'i ekanligini aniqlash uchun quyidagi ko'rsatma tekshiriladi. Agar shunday bo'lsa, sodir bo'lgan dasturning uzilishi turi Maskada ko'rsatilgan kategoriya turi bilan taqqoslanadi2 BPI yo'riqnomasining bir qismi. Agar mos keladigan bo'lsa, shartli kod sodir bo'lgan uzilishni aks ettirish uchun o'rnatiladi va filial olinadi. Aks holda, keyingi ko'rsatma uning BPI yo'riqnomasi va hokazo ekanligini tekshirish uchun tekshiriladi. Agar BPI o'tkazilishi amalga oshirilmagan bo'lsa (BPI yo'riqnomasi bo'lmaganligi sababli yoki dasturning uzilish turi mavjud bo'lgan BPIlarning niqobiga to'g'ri kelmaganligi sababli) ), dastur uzilishining normal ishlashi sodir bo'ladi.

BPI buyrug'i odatdagidek bajarilganda (avvalgi ko'rsatmada dasturning uzilishi bo'lmaganida), bu NOP yoki "filial hech qachon" buyrug'i.

BPI interrupt tipidagi toifalar:

Niqob2
Ism
Niqob2
Qiymat
Interrupt
Raqam
Interrupt
Ism
Shart kodi
filialda
OPCD81Ishlash1
2Imtiyozli operatsiya2
3Ijro eting3
OPND44Himoya0
5Manzil1
6Texnik xususiyatlari2
7Ma'lumotlar3
OVDIV28To'ldirish aniqlandi0
9Ruxsat etilgan bo'linish1
10O'nlikdan oshib ketish2
11O'nli bo'linish3
FP112Ko'rsatkichni to'ldirish0
13Ko'rsatkichni quyi oqim1
14Ahamiyati2
15Suzuvchi nuqta bo'linishi3

Ish dasturlari

S / 360 muammoli holatida ishlaydigan barcha ish dasturlari, virtual manzil yoqilgan yoki o'chirilgan holda ishlashi mumkin va qayta taklif qilinmasligi mumkin yoki bo'lmasligi mumkin (ish dasturining bir nechta nusxalari bajarilishiga ruxsat berilishi mumkin yoki bo'lmasligi mumkin). Ko'p protsessorli konfiguratsiyalar bilan bitta ish bir vaqtning o'zida faqat bitta protsessorda bajariladi, ammo nazoratchi har xil vaqtda turli xil protsessorlarga ishni tayinlashi mumkin.[8]

MTS ish dasturi - ko'pchilik foydalanuvchilar o'zaro ta'sir o'tkazadigan va buyruqlarni talqin qilish, bajarilishini boshqarish, fayllar va qurilmalarni boshqarish va buxgalteriya xizmatlarini ko'rsatadigan dastur.[4] Boshqa ish dasturlari rahbarga yordam beradi (Paging Device Processor yoki PDP, OPERATOR konsol ishi, Disk Manager yoki DMGR, ...), umumiy yoki umumiy xizmatlarni taqdim etadi (o'ralgan orqali mahalliy va masofaviy ommaviy xizmatlar HASP va HASPlings yoki keyinchalik HASP o'rnini bosish uchun Britaniya Kolumbiyasi Universitetida ishlab chiqilgan Resurslar menejeri yoki RM) yoki tizim operatorlariga tizimning holatini ko'rsatish va boshqacha tarzda boshqarish (JOBS, UNITS, STOP, BLAST, GOOSE, STARTUP, SHUTDOWN, REW, WTM, ...).

Birinchi ish joyidan tashqari yangi ish joylari UMMPS-ga boshqa ish joylaridan, ko'pincha OPERATOR ishidan kelib tushgan so'rovlar bilan boshlanadi. Birinchi ish, INIT, darhol keyin boshlanadi IPL va rahbarni ishga tushirish.

24, 31 va 32 bitli manzillar

Boshlanishidan va umrining ko'p qismida UMMPS va MTS ishlatilgan 24-bit murojaat qilish. UMMPS hech qachon 32-bit IBM S / 360-67-da mavjud bo'lgan virtual xotira manzillari.[11]

1982 yil avgust oyida Alberta universiteti UMMPS-ni ishlashga o'zgartirdi 31-bit 16 MB dan ortiq haqiqiy xotiradan foydalanishga imkon beradigan manzil rejimi, ammo 16 MB dan yuqori bo'lgan haqiqiy xotira faqat virtual xotira sahifalarini saqlash uchun ishlatilgan. Ish dasturlari va foydalanuvchi dasturlari 24-bitli manzillardan foydalanishda davom etishdi.

1985 yilda Rensselaer Politexnika Instituti (RPI) S / 370-XA-ni qo'llab-quvvatlash uchun UMMPS-ga o'zgartirishlar kiritdi, bu boshqa narsalar qatori ish dasturlari va MTS ostida ishlaydigan foydalanuvchi dasturlari uchun 24 yoki 31-bitli manzillarni yaratishga imkon berdi. Michigan universiteti 1990 yilda 31-bitli manzillardan foydalanuvchi dasturlarning uzluksiz ishlashiga imkon beradigan o'zgarishlar kiritildi: ob'ekt modullari 31-bitli adreslashni qo'llab-quvvatlovchi sifatida belgilanishi mumkin (yoki yo'q), kompilyatorlar va montajchilar to'g'ri bayroqlarni etkazib berish uchun o'zgartirilgan, dasturlar tizim va foydalanuvchi rejimlari o'rtasida o'tish paytida kerak bo'lganda 24 va 31 bitli adreslash rejimlarini almashtirishi kerak edi.

Himoya

MTS-da virtual xotira apparati va S / 360 va S / 370 apparatlari rahbarlari va muammo holatlarini ishlatadigan va dasturiy ta'minot yordamida muammoli holat bajarilishini tizim (imtiyozli yoki himoyasiz) va foydalanuvchi (himoyalangan yoki imtiyozsiz) rejimlariga ajratadigan kuchli himoya modeli mavjud. Nisbatan kichik kod nazoratchi holatida ishlaydi. Masalan, Device Support Routines (DSRlar, aka drayverlar) nazoratchi tarkibiga kirmaydi va tizim rejimida nazoratchi holatida emas, balki muammoli holatda ishlaydi.[2][12][13]

Virtual xotira va xotira

Virtual xotira (VM) va paging talab qiladi 1967 yil noyabr oyida UMMPS-ga qo'llab-quvvatlash qo'shildi va MTS-ga Dynamic Address Translation (DAT) xususiyatlaridan foydalangan birinchi operatsion tizim bo'ldi. IBM S / 360-67.[3]

UMMPS 4096 baytli virtual xotira sahifalaridan va 256 sahifali virtual xotira segmentlaridan foydalanadi. UMMPS shartli ravishda S / 370 apparatida mavjud bo'lgan kichik (64 betlik) segmentlardan foydalanish uchun yig'ilishi mumkin edi, ammo ish dasturlari har doim katta (256 sahifali) segmentlar bilan taqdim etilardi. Ikkala 2K va 4K blok saqlash kalitlari ham qo'llab-quvvatlanadi.

Uch darajali saqlash iyerarxiyasi mavjud: (1) haqiqiy xotira, (2) yuqori tezlikda ishlaydigan disk xotira qurilmalari va (3) disk xotira disklari. Yuqori tezlikdagi disk xotira qurilmalariga quyidagilar kiradi IBM 2301 baraban, IBM 2305 Ruxsat etilgan bosh fayliVa STC 4305 va Intel 3805 singari turli xil uchinchi tomonning "qattiq holatli" I / U qurilmalari, aylanadigan disklarni simulyatsiya qiladigan yoki tez-tez tashqi RAMga asoslangan xotiraga yanada samarali sobit blok arxitekturasidan (FBA) kirishni ta'minlaydi.[14] Tezkor xotira qurilmalari iloji boricha soniyasiga 3,0 MB gacha ishlaydigan "ikki baytli" I / U kanallari yordamida biriktirilgan. Disk xotira disklari fayl tizimi uchun ishlatilgan disklardan ajralib turar edi va undan yuqori tezlikdagi disk xotira qurilmalari to'lgan bo'lsa ishlatilgan. Virtual xotira sahifalari haqiqiy xotira va disk xotira qurilmalari o'rtasida harakatlanadi. MTS-ning dastlabki versiyalarida shaxsiy disk xotira qurilmalari o'rtasida ko'chib o'tilmagan. Keyingi versiyalarda kamroq ishlatiladigan sahifalar yuqori tezlikda ishlaydigan qurilmalar to'lishga yaqin bo'lganida, tezkor disk xotira qurilmalaridan disk xotira disklariga o'tishlari mumkin edi. Keyinchalik uning hayoti davomida tizim saqlash ierarxiyasining ikkinchi darajasining bir qismi sifatida IBM S / 370-XA Extended Storage-dan foydalanishga va fayl tizimiga va disk raskadrovka uchun bir xil disklardan foydalanishga o'zgartirish kiritildi.

Virtual xotira UMMPS tomonidan Paging Device Processor (PDP) ish dasturining yordami bilan boshqariladi. UMMPS VM-ni ish dasturlaridan ajratish va bo'shatish bo'yicha so'rovlarga javob beradi, VM manzillarini ajratadi, haqiqiy xotirani ajratadi, segmentlar va sahifalar jadvallarini boshqaradi, saqlash tugmachalarini o'rnatadi, mos yozuvlar va o'zgartirish bitlarini boshqaradi, qaysi virtual xotira sahifalari sahifaga joylashtirilishi yoki chiqarilishi kerakligini belgilaydi va XDP bilan aloqa o'rnatadi. Yangi virtual xotira sahifalari birinchi ma'lumotda x'81 '"doimiy doimiy" qiymatiga moslashtiriladi.

PDP - bu haqiqiy xotira dasturi. U disk xotira qurilmalarida joy ajratadi, barcha kiritish-chiqarishni disk xotira qurilmalariga boshlaydi, kiritish-chiqarish xatolaridan qutulish uchun javobgardir va UMMPS bilan bog'lanadi.

Ehtimolini kamaytirish uchun urish UMMPS "katta ish mexanizmi" dan foydalanadi, u eshik chegarasidan ko'ra ko'proq haqiqiy sahifalarni aniqlaydi, ma'lum bir vaqtda bajarilishi mumkin bo'lgan ushbu "katta" ishlarning sonini cheklaydi va katta ish joylarini kengaytiradi. vaqt bo'lagi ular ijro etganda. Bu katta ish joylariga ko'proq haqiqiy xotira sahifalarini to'plash va vaqt tugashiga kelmasdan oldin ushbu sahifalardan yaxshiroq foydalanish imkonini beradi, ammo cheklangan real xotira sahifalariga da'vo qiladigan juda katta ish o'rinlari bo'lganida, katta ish joylari vaqt bo'laklari orasida uzoqroq kutib turadi. Ishdan oldin bo'lishi mumkin bo'lgan sahifalar soni katta deb hisoblanadi (ishning katta chegarasi yoki BJT) va bajarilishi mumkin bo'lgan katta ishlarning soni (NBJ) tashqi parametrlar bo'lib, ular qayta baholanib, har 20 dan keyin rahbardan tashqarida o'rnatiladi. umumiy tizim yukiga asoslangan soniyalar.

Katta ish mexanizmidan tashqari, UMMPS-ni saqlash, protsessor va I / U rejalashtirish mustaqil bo'lib, har bir sohada "o'zi g'amxo'rlik qilish" mumkin.

Virtual xotira quyidagicha mintaqalarga bo'linadi:

  • Segment 0: umumiy virtual real xotiraga teng (faqat o'qish uchun)
  • 1 dan 4 gacha segmentlar: umumiy virtual xotira (faqat o'qish uchun)
  • 5-segment: shaxsiy virtual xotira (tizim segmenti, faqat tizim rejimida (himoyalanmagan) dasturlarda mavjud)[2]
  • 6 dan 12 gacha segmentlar: shaxsiy virtual xotira (foydalanuvchi segmentlari, istalgan dasturga o'qish-yozish)[5]

Vaqt o'tishi bilan turli xil segmentlarga turli xil sonlar ajratildi va 31-bitli adreslash paydo bo'lishi va 16 dan katta VM segmentlardan foydalanish imkoniyati paydo bo'lganda, mintaqalar quyidagicha kengaytirildi:

  • Segment 0: umumiy virtual real xotiraga teng (faqat o'qish uchun)
  • 1 dan 5 gacha segmentlar: umumiy virtual xotira (faqat o'qish uchun)
  • 6-7 segmentlar: shaxsiy virtual xotira (tizim segmentlari, faqat tizim rejimida (himoyalanmagan) dasturlarda mavjud)
  • 8-segment: nomlangan bo'shliqlarni (NAS) biriktirish uchun umumiy virtual xotira (faqat o'qish uchun)
  • 9-55-segmentlar: shaxsiy virtual xotira (foydalanuvchi segmentlari, istalgan dasturga o'qish-yozish)
  • 56-59 segmentlar: shaxsiy virtual xotira (tizim segmentlari, faqat tizim rejimida (himoyalanmagan) dasturlarda mavjud)
  • 60-63 segmentlari: nomlangan bo'shliqlarni (NAS) biriktirish uchun umumiy virtual xotira (faqat o'qish uchun)

Ba'zi bir haqiqiy xotira virtual xotira manzillari yordamida aniqlanmaydi, shuning uchun faqat UMMPS yoki haqiqiy xotira ish dasturlari mavjud. Faqat o'qish uchun mo'ljallangan virtual xotirani xotirani himoyalashni o'chiradigan imtiyozli dasturlar yordamida o'zgartirish mumkin (odatda juda cheklangan vaqt davomida).

Nomlangan bo'shliqlar (NAS) virtual xotiraning nomlangan segmentlarini biriktirishga imkon beradi. Ular biriktirilgan va ma'lum bir ishning virtual manzil maydonidan ajratilishi mumkin bo'lgan umumiy virtual xotira bo'shliqlari va bir xil manzillar nomlangan bo'shliqlar biriktirilganligiga qarab har xil tarkibga ega bo'lishi mumkin. NAS-ni qo'llab-quvvatlash asosan MTS tomonidan tizimning tarkibiy qismlari bilan oldindan yuklangan VM segmentlarini biriktirish uchun ishlatiladi, chunki bu 16 MB sehrli satr ostida VM manzil maydonini ishlatmasdan umumiy virtual xotirani kengaytirish va shu bilan ushbu qimmatli manzil maydonini ko'proq saqlashga imkon beradi. foydalanuvchi dasturlari.

Kirish va loyiha identifikatorlari

MTS-dan foydalanadigan har bir kishiga kirish identifikatori beriladi (shuningdek, foydalanuvchi identifikatori yoki hisoblash markazining identifikatori, CCID).[4] Kirish identifikatorlari har doim 4 ta belgidan iborat. Agar kerak bo'lsa, ". $." Qatoridan foydalanib, qisqa identifikatorlar avtomatik ravishda o'ng tomonga to'ldiriladi. Shunday qilib, "MTS.", "DAB.", "ME $" identifikatorlari. yoki "C. $." mos ravishda "MTS", "DAB", "ME" va "C" shaklida yozilishi mumkin.

Tizimga kirish identifikatorlari har bir seansning boshida berilishi kerak bo'lgan parollar yordamida himoyalangan (qism sifatida yoki undan keyin darhol keyin) $ SIGNON buyruq). Istisnolar - bu yuborilgan ish joylar * MA'LUMOT * yangi ishni taqdim etgan bir xil identifikator ostida ishlaydiganlar, ishlarni rejalashtirilgan bir xil identifikator ostida ishlaydigan ma'lum bir vaqtda yoki ma'lum bir kunda takroriy ishlashni rejalashtirgan ishlarni yoki operatorning konsolidan boshlangan ishlarni. Parollar uzunligi 1 dan 12 gacha belgini tashkil qiladi, kichik harflar katta harflarga aylantiriladi, vergul va bo'sh joylardan tashqari maxsus belgilarga ruxsat beriladi. Parolni o'zgartirish yordamida o'zgartirish mumkin $ SET PW buyruq. Terminal sessiyasidan parolni o'zgartirish uchun asl parolni kiritishni talab qilish kerak va tekshirish uchun yangi parolni ikki marta kiritish kerak.

Noto'g'ri parolni kiritish sanaladi va keyingi muvaffaqiyatli tizimga kirishda foydalanuvchiga xabar qilinadi. Muvaffaqiyatli yozuvsiz parollarning ko'p ishlamay qolishi haqida tizim operatoriga xabar beriladi va muvaffaqiyatli kiritilmasdan parollarning ko'p ishlamay qolishi tizimga kirish identifikatorini biznes idorasi xodimlari tomonidan tiklanmaguncha "qulflanib" qolishiga olib keladi. Parolni kiritishning muvaffaqiyatsiz urinishlari orasida qisqa muddatli kechikish mavjud bo'lib, ko'p sonli parollar "taxminlarini" tezda amalga oshirilishining oldini oladi.

Jismoniy shaxslar turli xil kurslarda, turli xil ilmiy loyihalarda yoki turli xil moliyalashtirish manbalarida (universitet, hukumat, notijorat, sanoat, ...) foydalanish uchun bir nechta identifikatorlarga ega bo'lishlari mumkin. Shaxsiy shaxslar tomonidan tizimga kirish identifikatorlari bilan bo'lishish taqiqlanadi, ammo bu sodir bo'ladi.

Kirish identifikatorlari loyihalarga guruhlangan. Har bir tizimga kirish identifikatori bitta va bitta loyihaning a'zosi. Loyiha identifikatorlari, tizimga kirish identifikatorlari singari, 4 ta belgidan iborat. Ko'pgina loyihalar "Project Leader" identifikatori tomonidan boshqariladi, ular manbalarni loyiha a'zolari hisoblariga (loyihaga ajratilgan resurs chegaralarida) ajratishi mumkin. $ Buxgalteriya hisobini boshqarish buyruq.

Kirish va loyiha identifikatorlari fayllarga kirishni boshqarish va elektron pochta xabarlarini yuborish uchun ham ishlatiladi.

Faqat bitta istisno bilan, identifikatorning o'zi tufayli "maxsus" imtiyozlarga ega tizimga kirish identifikatorlari mavjud emas. Buning o'rniga, maxsus kirish identifikatorlariga imkon beradigan bayroqlar o'rnatilishi mumkin:

  • umumiy fayllarni yaratish va umumiy dastur kalitlarini o'rnatish,
  • nol yoki salbiy hisob balansi bilan ishlash,
  • imtiyozli operatsiyalarni bajarish,[2] shu jumladan:
    • sukut bo'yicha foydalanuvchi (himoyalangan) rejimida emas, balki tizimda (himoyalanmagan) ishlash uchun fayllarni belgilash,
    • dan foydalaning PROT = OFF variantlari $ SET va $ RUN buyruqlar,
    • test buyrug'i tilining quyi tizimidan foydalaning ($ # CLS),
    • ning imtiyozli variantlaridan foydalaning $ SYSTEMSTATUS va boshqa buyruq tillari quyi tizimlari (CLS).

Istisno "MTS." Tizimga kiruvchi identifikator bo'lib, u egalik huquqi yoki ruxsat holatidan qat'iy nazar tizimdagi har qanday faylni o'qiy oladi, lekin o'zgartirmaydi yoki ruxsat bera olmaydi. MTS. ID shuningdek $ SET FILEREF = OFF parametr, bu fayllardagi fayllar sana yangilanishining oldini oladi (fayl tizimidagi muammolarni tiklashda yoki xavfsizlik muammolarini tekshirishda foydalidir).

Dastur yoki foydalanuvchi uchun joriy seansga kirish uchun ishlatilgan imtiyozdan boshqa tizimga kirish identifikatorining imtiyozlarini qabul qilish imkoniyati yo'q. Buning o'rniga, dasturlar va fayllarga tizimga kirish identifikatorlari, loyihalar va dastur kalitlariga yoki kirish identifikatorlari, loyihalar va dastur kalitlari kombinatsiyalariga ruxsat berilishi mumkin.

Terminal, ommaviy va server sessiyalari

MTS terminal, ommaviy va server sessiyalarini qo'llab-quvvatlaydi.[4] Uchalasi ham bir xil buyruq tilidan foydalanadilar.

  • Terminal sessiyalari foydalanuvchi tomonidan ishlab chiqarilgan natijalarga javob bera oladigan interaktiv ravishda xato xabarlar va ko'rsatmalar kiradi.
  • Jamoa ishlari interaktiv emas, shuning uchun ommaviy ish bajarila boshlagandan so'ng, foydalanuvchi kiritishni o'zgartirish uchun (hech bo'lmaganda dasturlashsiz) imkoniyati kam yoki umuman imkoniyati bo'lmagan holda barcha ma'lumotlarni oldindan tayyorlash kerak.
  • Server sessiyalari foydalanuvchini MTS-ga yoki mijozning MTS-ning o'zaro ta'siriga yordam berishi mumkin va foydalanuvchi bilan o'zaro aloqada bo'lishi mumkin bo'lsa-da, MTS buyruqlari odatda buyruq faylidan o'qiladi va foydalanuvchi MTS buyruqlarini bilishi yoki kiritishi shart emas. Server sessiyalari homiylik qilinishi mumkin, bu holda ular foydalanuvchi uchun bepul bo'lib ko'rinadi va foydalanuvchi identifikatori va parolni kiritishni talab qilmaydi. Server seanslari, shuningdek, haqiqiy identifikator va parol uchun haq olinishi va talab qilinishi mumkin. Server sessiyalarini tarmoqdan yoki MTS sessiyasi ichidan boshlash mumkin $ MOUNT buyruq.

Alberta universiteti 1971 yilda FORTRAN, ALGOL, PL / C va 360 Assembler dasturlarini o'rganishni o'rganayotgan bakalavriat talabalari uchun tezkor ish joyini ta'minlash uchun Talabalarga yo'naltirilgan partiyalarni ishlab chiqardi. Bu 5 daqiqali burilishni ta'minlaydigan va har bir ish uchun belgilangan narxda (15 sent) haftada bir necha minglab ishlarni bajaradigan punch-kartani kiritish, printerni chiqarish tizimi edi.

Buyruq tili

MTS dan buyruqlarni o'qiydi *MANBA* pseudo device, bu dastlab foydalanuvchi terminali yoki ommaviy kirish oqimi.[4] Dasturlar CMTS, CMDNOE va COMMAND pastki dasturlarini chaqirish orqali MTS buyruqlarini bajarishi mumkin.[5]

Etakchi va oxirgi bo'shliqlar, shuningdek bo'sh va barcha bo'sh satrlar e'tiborga olinmaydi. Yulduzcha bilan boshlanadigan chiziqlar (* yoki $*) izoh sifatida qaraladi. Davom etish belgisi bilan tugaydigan buyruq satrlari (sukut bo'yicha minus belgisi) keyingi satrda davom etadi. Buyruq satrlari 255 belgigacha bo'lishi mumkin.

MTS kalit so'zga yo'naltirilgan buyruqlar va buyruq variantlaridan foydalanadi. Buyruq fe'l (SIGNON, Yugurish, Tartibga solish, ...) - buyruq satridagi birinchi kalit so'z. Buyruqlar ixtiyoriy dollar belgisi bilan boshlanishi mumkin ($ SIGNON, $ RUN, $ EDIT, ...). Jamoa ishlarida, bekor qilingan buyruqlar va ba'zi boshqa xatolardan so'ng, MTS dollar belgisi bilan boshlanadigan keyingi qatorni qidiradi ($) 1-ustunda navbatdagi buyruq sifatida. Barcha buyruqlar va ko'pgina buyruq parametrlari boshlang'ich pastki satrlarni qisqartirishga imkon beradi (C uchun Nusxalash, R uchun Yugurish, DEB uchun DEBUG, ...). MTS buyruqlari va buyruq variantlarining aksariyati katta-kichikligi sezgir emas.

MTS-da "bir martalik" buyruqlar mavjud (YARATMOQ, FILESTATUS, IMZO QO'YISH; TIZIMDAN CHIQIB KETISH, ...) va pastki buyruq rejimlariga ega bo'lgan buyruqlar (Tartibga solish, KALK, SYSTEMSTATUS, ...). Ko'p buyruqlar rejimiga ega buyruqlar buyruq satrida bir yoki bir nechta kichik buyruqlar berish orqali bir martalik buyruqlar sifatida ham chaqirilishi mumkin.

MTS-ning barcha ish joylari a bilan boshlanadi SIGNON buyrug'i va ko'pi a bilan tugaydi IMZO QO'YISH; TIZIMDAN CHIQIB KETISH buyruq. Buyruqlar fayllarda saqlanishi va yordamida bajarilishi mumkin MANBA buyruq. Buyruqlar har doim darhol bajariladigan signal-fayllarda (sigfiles) yoki project-signon-fayllarda (projectigfiles) saqlanishi mumkin. SIGNON buyruq. Sigillarni bajarish talab qilinishi mumkin (SIGFILEATTN = O'chirilgan) yoki ixtiyoriy (SIGFILEATTN = ON, sukut bo'yicha).

MTS buyruqlari ro'yxati

Global nazorat

SIGYO'Q { ccid | * }  [ variant ... ]  [ sharh ]SIGNOFF [QISQA | $ | UZOQ] [QABULLAR | NORECEIPTS]ACHisoblash variant ... ]ACHisoblash MANAGEMENTMAQOMOTIMENT [ matn ]D.ISPLAY element  [OUTPUT =FDname ]SET variant ...GunohK [ FDname | OLDINGI]SOURCE [ FDname | OLDINGI]SYSTEMSTATUS [ variant ]#CLS FDname  [ imkoniyatlari ] (CLS testini bajaradigan imtiyozli buyruq)[7]

Fayllarni boshqarish

CREAT Fayl nomi  [SIZE = { n | nP}] [MAXSIZE = {n | nP}] [TYPE = {LINE | SEQ | SEQWL}] DESTROY filelist  [OK | ALLOK | PROMPT]DUPLIKAT eski ism  [AS | TO] yangi ism  [ imkoniyatlari ] [OK | ALLOK | PROMPT]EDIT [ Fayl nomi ]  [ :tahrirlash buyrug'i ]EMPTY [ filelist ] [OK | ALLOK | PROMPT]TRUNCATE filelist  [ALLOK | PROMPT]RENAME eski ism  [AS] yangi ism  [OK | ALLOK | PROMPT]RENUMBER filelist  [ birinchi [ oxirgi [ boshlash [ o'sish ]]]] [ALLOK | PROMPT]FILESTATUS [ filelist ]  [ format ]  [ buyumlar ]FILEMENU [ filelist ]  [ buyumlar ]FMENU [ filelist ]  [ buyumlar ]PERMIT filelist  [ kirish [ kiruvchi ] ]PERMIT filelist  Yoqdi 2  [CHISQA kirish [ kiruvchi ] ]QO'LLASH Fayl nomi  [ Qanaqasiga ] [KUTISH | NOWAIT] [ChUIT | NOQUIT]UNLOCK Fayl nomiQulflarTATUS [ Fayl nomi | ISH nnnnnn ] [LOCK] [WAIT]LSTATUS [ Fayl nomi | ISH nnnnnn ] [LOCK] [WAIT]

Fayl va qurilmalarni boshqarish

COCHISH [FROM] { FDlist1  | 'string' } [[TO] [ FDlist2 ] CREAT * pdn *  TYPE = {PRINT | IMPORT | Eksport | DUMMY}DESTROY * pdn *  [OK | ALLOK | PROMPT]LIST FD ro'yxati  [[ON | TO] FDname ] [[BILAN] variant ... ]LIST FD ro'yxati Bilan imkoniyatlari [{ON | TO} FDname ]LISTMOUNT [so'rov [; so'rov] ...]MUMKUNCEL * ... * [[JOB] nnnnnn ] [{ID | CCID} =ccid ]RELEASE EASE {* PRINT * | * PUNCH * | * BATCH * | *pdn* }LOCATE {SYSTEM | Mahalliy | TO'LIQ | QISQA | YORDAM BERING }LOCATE { ish raqami | ish nomi }  [ variant  ...  ]VIEV [ ish raqami [ ; ko'rish buyrug'i ] ]Kirish  [ FDname1 ] {[ON] FDname2 [ format ]  [ imkoniyatlari ] | O'chirilgan}FTP  [ xost nomi ]GEt FDname  (eskirgan va eskirgan, ammo ba'zida hali ham foydali)[7]NUMBER (ma'lumotni faylga kiritishning eskirgan va eskirgan usuli)[7]

Foydalanuvchi dasturining bajarilishi va boshqarilishi

RBMT [ FDname ] [ I / Ounits ]  [ variant ] ... [PAR =parametrlar ]RERBMT [ECHO | NOECHO] [ I / Ounits ]  [ variant ] ... [PAR =parametrlar ]DEBUG [ FDname ] [ I / Ounits ]  [ variant ] ... [PAR =parametrlar ]SDS  [ sds-buyruq ]LOAD [ FDname ] [ I / Ounits ]  [ variant ] ... [PAR =parametrlar ]START [[AT] [RF = {hhhhhh | grx} ] Manzil ]  [ I / Ounits ]  [ variant ] ...RESTART [[AT] Manzil ]  [ I / Ounits ]  [ variant ] ...UNLOAD [CLS =clsname ]ALTER joylashuv qiymati ... ...D.ISPLAY [ format ]  Manzil  [OUTPUT =FDname ]DUDeputat [ format ] [OUTPUT =FDname ]MenF RUNRC holat  tamsayı, MTS buyrug'iERRORDUMP (eskirgan buyruq, foydalanuvchi dasturining g'ayritabiiy tugatilishidan so'ng ommaviy rejimda avtomatik tashlanishni keltirib chiqaradi)[7]

Turli xil

CALC [ ifoda ]MESSAGESYSTEM [ xabar-buyruq ]FSMESSAGE [ FSMessage-buyruq ]NET [ mezbon | *pdn* ]  [ .tarmoq buyrug'i ]HEXQO'ShISH [ oltinchi raqam ]  [ oltinchi raqam ] (eskirgan, o'rniga $ Calc)[7]HEXSUB [ oltinchi raqam ]  [ oltinchi raqam ] (eskirgan, o'rniga $ Calc)[7]PASQILINChI (umumiy faylga kirish huquqi mavjud bo'lgunga qadar eskirgan, olib tashlangan, ommaviy fayllarni o'zgartirishga ruxsat berilgan)

Fayl nomi naqshlari

Fayl nomlari yoki fayllar ro'yxatlaridan foydalanadigan bir nechta MTS buyruqlari fayl nomlari naqshlaridan foydalanishga imkon beradi: Nusxalash, YO'Q, KO'P, Bo'sh, Tartibga solish, FILESTATUS, FILEMENU, Ro'yxat, LOCKSTATUS, RUXSAT, Qayta nomlash, RENUMBERva TRUNCATE. Savol belgisi (?) - bu naqshga mos keladigan belgi. Fayl nomida ishlatiladigan bitta savol belgisi nol yoki undan ortiq belgiga to'g'ri keladi. "?"joriy kirish identifikatori uchun barcha fayllarga mos keladi,"? .S"bilan tugaydigan barcha fayllarga mos keladi".S", "A? B"bilan boshlangan barcha fayllarga mos keladi"A"va" bilan tugaydiB", "A? B? C"bilan boshlangan barcha fayllarga mos keladi"A"," bilan tugaydiC", va"B". Ikki yoki undan ortiq ketma-ket savol belgilari mos keladi"n-1 "belgi."???. S"bilan tugaydigan barcha to'rtta fayl nomlariga mos keladi".S", va"????"barcha uchta belgi fayl nomlariga mos keladi."W163 :?"kirish identifikatori ostidagi barcha fayllarga mos keladi"W163"unga hozirgi foydalanuvchi biroz kirish huquqiga ega.

Makrolar buyrug'i

MTS buyrug'i so'l protsessori foydalanuvchilarga o'zlarining MTS buyruqlarini aniqlashga imkon beradi.[15] U "buyruq fayllari" tilini shartli buyruqlar bilan ta'minlaydi va har qanday satrlardan o'qish uchun foydalanish mumkin *MANBA* foydalanuvchi dasturlari yoki buyruq tilining quyi tizimlari hamda MTS buyruqlari bilan. Ibratli protsessor liniyalari odatda belgidan kattaroq (>). Buyruqning so'l protsessori $ SET buyrug'i, shuningdek FDnames-da I / U modifikatorlari tomonidan.

Prefiks belgilar

Foydalanuvchilarga qaysi buyruq, buyruq quyi tizimi yoki dasturi bilan ishlayotganini va kiritish kutilayotganda kuzatishda yordam berish uchun MTS har bir kirish va chiqish satrining old qismida foydalanuvchi terminaliga yozgan prefiks belgisini yoki ba'zan prefiks satrini aks ettiradi. Umumiy prefikslar:

# MTS buyruq rejimi # - MTS buyrug'ini davom ettirish rejimi? Takliflar> Nusxalash va Ro'yxat buyruqlar. Program loaderblank Foydalanuvchi dasturlari: Editor + Symbolic Debugging System (SDS) @ Message Systemftp> FTP (File-Transfer)

Buyruq tilining quyi tizimlari

MTS ish dasturi har doim bir nechta buyruqlar tilining quyi tizimlaridan yoki CLSlardan birini bajaradi. MTS-ning ko'plab buyruqlari MTS-da o'rnatilgan va MTS CLS-ning bir qismi sifatida bajariladi. Foydalanuvchi dasturlari USER CLS sifatida ishlaydi. USER CLS, tuzatuvchi faol bo'lganda, Symbolic Debugging System (SDS CLS) bilan alohida munosabatda bo'ladi. MTS-ning boshqa buyruqlari alohida virtual modul sifatida amalga oshiriladi, ular chalkashlik bilan buyruq tilining quyi tizimlari yoki CLS deb nomlanadi, ular umumiy virtual xotiradan bajarilishi yoki fayllardan yuklanishi mumkin.

Ushbu alohida CLSlarning har biri o'zining to'rtta belgi nomiga ega va ular atamaning asl ma'nosida alohida CLS sifatida bajariladi. Ushbu CLS-larning ko'pi, ammo barchasi hammasi emas, balki alohida sub-buyruq tilini taqdim etadi. Lar bor $ SET buyruq variantlari, mavjud versiyalardan ko'ra, CLS-larning eski yoki yangi versiyalariga sabab bo'lishi mumkin. Da variant mavjud $ UNLOAD CLS-ni o'chirish buyrug'i (u foydalanayotgan virtual xotirani bo'shating, har qanday FDname-ni yoping va u ochilgan har qanday qurilmalarni yoki yolg'on qurilmalarni chiqaring).[7]

Bir vaqtning o'zida faqat bitta CLS ijro etilmoqda, lekin har bir turdagi bitta CLS faol bo'lishi mumkin va asl CLS-dan chiqmasdan yoki tushirmasdan bitta CLS-dan boshqasiga o'tish mumkin, so'ngra asl CLS-ga qaytib, qaerdan ishlashni davom ettirish mumkin bittasi qoldirilgan. O'zining pastki buyruqlariga ega bo'lgan CLSlar odatda a ni qo'llab-quvvatlaydi TO'XTA CLS-dan chiqish buyrug'i, an MTS va / yoki a QAYTISH chaqiradigan CLS yoki MTS buyruqlar rejimiga qaytish buyrug'i va dollar belgisi bilan boshlanadigan buyruqlar ($) are executed as MTS commands with an immediate return to the original CLS.

All CLSs except for the USER CLS execute in system mode in problem state.

Limited-service state

MTS sessions normally operate in "full-service state", but during times of extreme system overload terminal sessions may be placed into "limited-service state" (LSS).[4] The LSS mechanism is manually enabled by the system operator and is normally only used when the hardware system is operating at reduced capacity due to a malfunction.

A terminal session is placed into LSS if LSS has been enabled by the system operator and the system is overloaded at signon. LSS sessions may only issue MTS commands and run programs with a short local time limit. Rather than giving all users poor performance, LSS limits the size of the tasks that some users may perform to relatively small tasks such as editing of files and reading of messages in order to allow other users to receive reasonable performance on larger tasks. Users may request that their session be changed to full-service state ($SET LSS=OFF) and such requests are granted if the system is not overloaded at the time the request is made.

Command statistics

Each MTS command that is issued is recorded, first to a disk file and later to magnetic tape. This information is only available to staff and is used to investigate software problems, security problems, rebate requests, and to provide statistics about how the command language is used.

User programs

User program refers to a program run by the user and which is not necessarily a program that belongs to or that was created by a user. User programs may be supplied in public files, in files available under the OLD: or NEW: signon IDs, in files belonging to other users and permitted for use by others, or user programs may be developed by the current user in files that they own.

User programs are executed using the $RUN, $RERUNva $DEBUG commands or less often using the $LOAD va $START buyruqlar. The $RESTART command may be used to restart execution of a program following an attention interrupt that was not handled by the program, a program interrupt that was not handled by the program (although restarting after a program interrupt usually does not work well), or following an explicit return to MTS from a call to the MTS subroutine.

MTS loads programs using a dynamic linking loader (UMLOAD) that reads loader records (ESD, TXT, CSI, RDL, LCS, END, ...) from the file or device specified by the user and will selectively include subroutines from libraries supplied by the user, from system subroutine libraries such as *LIBRARY, and from system subroutines pre-loaded in shared virtual memory. MTS uses standard OS/360 loader records which makes it fairly easy for MTS to use compilers developed for use under other IBM operating systems.[3]

When a program starts execution a number of logical I/O units will be set either explicitly on the $RUN or other command or by default. Any text string given following the PAR= keyword is passed to the program as a parameter.

By default user programs execute with the program key *EXEC, but a different program key may be set using the $CONTROL buyruq.[4] Programs may call a system subroutine to shorten the program key they are using or switch to the *EXEC program key thus temporary giving themselves less access to files, devices, and other services controlled using program keys. Programs may also call a system subroutine to lengthen or restore their program key according to some pre-established rules.

MTS uses the standard S-type and, less often, R-type calling sequences used in OS/360.[5]

By default user programs execute in user mode in problem state.[2] User mode programs do not have access to the system virtual memory segment and therefore have no access to system control blocks, may not call privileged system subroutines, and may not issue privileged supervisor calls (SVCs). User mode programs can issue non-privileged SVCs, but few programs do so directly and instead call system subroutines to obtain system services. User mode programs may call system subroutines that switch to system mode after checking that the protected service is allowed for the particular caller, there is a return to user mode when the system subroutine returns.

Selected user programs can be flagged to run in system rather than user mode by staff with privileged signon IDs or staff with privileges can cause a user program to run in system mode using a keyword on the $RUN yoki $SET buyruq.[7]

Device independent input/output

All input/output requests, whether by the MTS job program itself or by a program running under MTS, is done using a common set of subroutine calls (GETFD, FREEFD, READ, WRITE, CONTROL, GDINFO, ATTNTRP, ...). The same subroutines are used no matter what program is doing the I/O and no matter what type of file or device is being used (typewriter or graphics terminal, line printer, card punch, disk file, magnetic and paper tape, etc.). No knowledge of the format or contents of system control blocks is required to use these subroutines. Programs may use specific characteristics of a particular device, but such programs will be somewhat less device independent.

MTS input/output is record or line oriented. Programs read lines from a terminal, card reader, disk file, or tape and write lines to a terminal, printer, disk file, or tape. Conversion to and from ASCII/EBCDIC and end-of-line processing is usually done by a front end processor or Device Support Routine (DSR) and so is not a concern of most programs. While it is possible to do character I/O to a terminal by reading or writing single character lines, reading or writing many such very short lines is not very efficient.

Each line read or written consists of from 0 to 32,767 bytes of data and an associated line number (a signed integer number scaled by 1000) giving the line's location. The length of each line read or written is given explicitly, so programs do not need to do their own processing of line ending characters (CR/LF, NL) or other terminators (null). Some devices support zero length lines, while others do not. For many files and devices the line number is simply a sequential count of the lines read, while some file types explicitly associate a specific line number with each line of the file, and in other cases the line number is synthesized from data that appears at the start of an input line or the line number can be prepended to an output line.

File or device names

Input/output is done directly by referencing a file or device by its name (FDname) or indirectly by referencing a logical I/O unit (SCARDS yoki INPUT, SPRINT yoki PRINT, SPUNCH yoki OBJECT, GUSER, SERCOM, 0 ga 99). FDnames are assigned to logical I/O units using keywords in the command language or by default.

FDnames can be a simple file name such as MYFILE, a simple device name prefixed with a greater than sign such as >T901, or a pseudo-device name such as *PRINT*. All FDnames are converted to uppercase before they are used, so like MTS commands, FDnames are case independent.

I/O modifiers, line number ranges, and explicit concatenation can be used to create complex FDnames from simple FDnames. Masalan:

 FILE1@-TRIM  (I/O modifier that retains trailing blanks) FILE2(1,10)  (line number range that reads lines from 1 to 10 inclusive) FILE3+*SOURCE*  (explicit concatenation) FILE4(1,10)@-TRIM+*TAPE*@-TRIM (all of the above in a single complex FDname)

Pseudo device names

Pseudo device names (PDNs) begin and end with an asterisk (e.g., *name*). Common pseudo devices include:

The $SOURCE va $SINK commands may be used to reassign the FDnames assigned to *SOURCE* va *SINK*. The $MOUNT command assigns pseudo device names (e.g. *T22*, *NET*) to devices such as magnetic and paper tapes and network connections (including server connections). The $CREATE command can be used to create pseudo device names for use with BITNET import and export, for spooled print jobs, and for dummy devices.

I/O modifiers

I/O modifiers, possibly negated, may be associated with an FDname to modify default behaviors.

An I/O modifier is specified by appending an at-sign followed by the modifier's name to an FDname. Masalan, *SOURCE*@UC would cause lines read from *SOURCE* to be converted to uppercase before they are presented to a program and MYFILE@UC@-TRIM would cause lines read from the file MYFILE to be converted to uppercase and any trailing spaces at the end of the line would be retained. Some commonly used I/O modifiers are: @S (sequential), @I (indexed), @FWD (forward), @BKWD (backward), @EBCD (EBCDIC), @BIN (binary), @UC (uppercase), @CC (logical carriage control), @MCC (machine carriage control), @NOCC (no carriage control), @TRIM (trim all but last training blank). Some I/O modifiers are processed in a device independent fashion by MTS and others are device dependent and processed by the Device Support Routines (DSRs).

Not all files or devices support all I/O modifiers. Different files and devices have different default I/O modifiers and a few I/O modifier defaults can be changed using the $SET buyruq.

Line number ranges

Specific parts of a file or device can be referenced by including starting and ending line numbers and possibly a line number increment in parentheses separated by commas. The line numbers and increment are integers scaled by 1000 and can be positive or negative (±nnnnn.nnn). Masalan, SIMPLE.F(-35,197.5) would open the file SIMPLE.F, starting at the first line number greater or equal to -35 and return an 'end of file' instead of the first line number greater than 197.5. One can also include line number increments—as an example: SIMPLE.F(2,200,2) would return all (and only) even line numbers between 2 and 200 (inclusive).

The symbolic line numbers BIRINChI yoki *F, LAST yoki *L, MINva MAX may refer to the first, last, minimum possible, and maximum possible lines, respectively. Masalan, SIMPLE.F(*F,0) would refer to the 'negative' lines of the file SIMPLE.F. This is where programmers might place self-documentation for a (often binary) file, actual data in the file would start at line number 1.

One can also do simple addition and subtraction with the symbolic line numbers: FIRST±m, *F±m, LAST±m, *L±m, MIN+m, MAX-m, qayerda m is an integer with or without a decimal point scaled by 1000 (±nnnnn.nnn). So to add new lines to the end of an existing file one could use an FDname of the form SIMPLE.F(LAST+1).

File or device concatenation

Explicit concatenation allows FDnames to be connected using a plus-sign, as NAMEA+NAMEB. In this case MTS transparently returns the contents of NAMEA followed by the contents of NAMEB or writes to NAMEB after writing to NAMEA reaches an end of file or other error condition.

Implicit concatenation occurs when an input line contains the string:

$CONTINUE WITH FDname

MTS will continue with the FDname given as the new source of data. Or, if a line of the form:

$CONTINUE WITH FDname QAYTISH

is read, MTS will return the contents of the new FDname until and End-of-File is reached and then return the next line of the original FDname (note that, a file that continues with itself causes an infinite loop, usually a mistake, but sometimes used to good effect).

While the line starts with a dollar-sign, $CONTINUE WITH is not an MTS command, but rather a delimiter.

The @IC I/O modifier and the command $SET IC={ON | OFF} can be used to control implicit concatenation.

$ENDFILE lines

If a line contains the string $ENDFILE, MTS returns a 'soft' end of file.

While the line starts with a dollar-sign, $ENDFILE is not an MTS command, but rather a delimiter.

The @ENDFILE I/O modifier and the command $SET ENDFILE={ALWAYS | SOURCE | NEVER} can be used to control $ENDFILE qayta ishlash.

$9700 and $9700CONTROL lines

Lines that begin with the strings "$9700"yoki"$9700CONTROL" may be copied or written to *PRINT* to control print options on the Xerox 9700 page printer. $9700 lines take effect at the point where they occur, while $9700CONTROL lines apply to the entire print job in which they occur. While these lines have a form similar to MTS commands, they are really device commands and not true MTS commands.

Fayllar

IBM 2314 disk drives and IBM 2540 card reader/punch at the University of Michigan Computing Center, c. 1968 yil
IBM 2321 data cell at the University of Michigan Computing Center, c. 1968 yil

MTS files are stored as 4096 byte "pages" on one or more public or private disk volumes.[16] Volumes have volume labels, volume numbers, and volume names (usually MTS001, MTS002, ..., MTSnnn). Disk volumes are stored on traditional cylinder-track-record va fixed block architecture (FBA) disk drives or at one time on the IBM 2321 Data Cell.

Individual files do not span disk volumes. The maximum size of a file is limited to the free space available on the disk volume where it resides. By default, files are created one page in size, but a larger size as well as a maximum size may be specified ($CREATE ism SIZE=nP MAXSIZE=nP). Files will automatically expand until they reach their maximum size or the disk space limit for the owner's signon ID is exceeded. Users may request that a file be created on a specific disk volume ($CREATE ism VOLUME=ism).

MTS files fall into one of three categories: public files, user filesva temporary files:

  • Ommaviy fayllar are files whose names begin, but do not end, with an asterisk (e.g., *LIBRARY, *USERDIRECTORY). Public files, often called 'star files', are publicly available files that contain programs and data that are widely available to all users. Masalan, *LIBRARY is a library of commonly used system subroutines. In the earliest days of MTS public files were the only files that could be shared and then only as read-only files. Later, public files could be permitted and shared in the same fashion as any other files.
  • User files are files whose names do not begin with an asterisk or a minus sign. They must be explicitly created ($CREATE) and destroyed ($DESTROY). They are owned by and initially permitted to just the userID that creates them, but they can be permitted for use by other userIDs using the $PERMIT buyruq. To reference a file belonging to another user, the file name is prefixed with the owner's userID followed by a colon (e.g., W163:MYPROGRAM). There are charges for the amount of disk space used and most signon IDs have a maximum disk space limit.
  • Vaqtinchalik fayllar are files whose names begin with a minus sign (e.g., -TEMP). Their names are unique within a single session. They are created implicitly on first use, are not charged for, do not count against a signon ID's disk space limit, and are automatically destroyed when the terminal or batch session ends.

MTS doesn't implement kataloglar, but there is a amalda two-tier grouping of files owing to the inclusion in a file's name of its owner's four-character MTS user ID.

File names, like all FDnames, are converted to uppercase before use and so are case-insensitive.

Fayl turlari

MTS supports three types of file, line files, sequential files, and sequential with line number files, but line files were by far the most common:

Line files

Line files ($CREATE ism yoki $CREATE ism TYPE=LINE) are line-oriented files which are indexed (and randomly accessible) by line number. Allowed line numbers are ±2147483.647—essentially a signed integer value divided by 1000, but command line references were limited to ±99999.999. Regular writes to a file increase the line number by 1. Lines are variable length, and a line can be rewritten to any length between 1 and the line length limit (originally 256, but later changed to 32767) without affecting the surrounding lines. Rewriting a pre-existing line to a length of zero deletes that line without affecting surrounding lines.

By default the first line number written to an empty file is 1, and is incremented by 1 with each subsequent write. By default, reading a file starts with the first line number at or above 1 and continues by reading each line in order of increasing line numbers. This means that negative line numbers are 'invisible' parts of a file, which require specific references to read.

There are commands (and system subroutines) to renumber lines. A contiguous set of lines can be renumbered to any combination of start and increment as long as lines of the file are not re-ordered. For example, if a file consists of lines 10, 20, 30, 40 and 50, lines 30–40 can be renumbered as 35,36, but not as 135,136, as that would change the sequence of lines.

The line index and data are stored on separate disk pages except for the smallest (one page) files, where the line index and data are stored together.

The $CREATE command creates line files by default.

A side effect of the line-based file system is that programs can read and write individual lines incrementally. If one edits a file (usually a text file) with the MTS file editor ($EDIT), any changes made to lines are written immediately, as are insertions and deletions of specific lines. This makes it quite different from most (byte-oriented) file systems where a file is usually read into and changed in memory, and then saved to disk in bulk.

Due to hardware or software problems, line files can become corrupt. Dastur *VALIDATEFILE checks the structure of line files.

Sequential files

Sequential files ($CREATE ism TYPE=SEQ) are line-oriented files with the first line number being implicitly 1 and incremented by 1 for each line. Once written the length of a line (other than the last line of a file) can not be changed, although any line can be replaced by a line of the same length. Sequential files are generally only readable sequentially from start to end, or written by appending to the end. One can, however, request a reference for the current line of a sequential file, and use that reference to jump to that specific location again.

Sequential files are somewhat more efficient in terms of space than line files and can be more efficient in terms of CPU time too when compared with large disorganized line files. But the main reason for the existence of SEQ files is that they supported long lines (up to 32767 characters) before line files did. Sequential files were less common once line files could support long lines. Sequential files are also used to force new lines to be appended to the end of the file without the need to give the line number range (LAST+1).

Sequential with line number files

Sequential With Line Number files ($CREATE ism TYPE=SEQWL) are similar to Sequential Files, except that their line numbers were explicitly stored. They have all the restrictions of Sequential Files, except that the line number could be specifically supplied when writing to a file (as long as it is greater than the last line number written to the file). Unlike Line Files, the first read of an SEQWL file returns the first line of the file, even if it was negative.

SEQWL files were rarely used, and were not officially supported or were removed from the documentation by some MTS sites. Because line files did not work well with the Data Cell, SEQWL files were implemented as a way to allow the Data Cell to be used for longer term less expensive storage of files while still preserving line numbers.

Shared files

Over time the sharing of files between MTS users evolved in four stages.[17]

Stage one allowed for limited file sharing, where public or library files (files whose names start with an asterisk) were readable by all users and all other files (user files) could only be accessed by their owners. Public files were owned and maintained by Computing Center staff members, so at this stage only Computing Center files were shared.[18]

Stage two allowed for limited file sharing, where the program *PERMIT could be used to (i) make a file read-only (RO) to the file's owner and all other MTS users, (ii) make a file available for copying by members of the same project as the file's owner using the program *COPY, or (iii) make a file available for copying by all other users using the program *COPY. As for stage one, by default owners had unlimited access to their own files and the files were not accessible to other users.[19]

Stage three allowed for "really shared files", where the $PERMIT command or the PERMIT subroutine can be used to share a file in a variety of ways with lists of other users, projects, all other users, or a combination of these. The types of access that can be allowed are read, write-extend, write-change or empty, renumber or truncate, destroy, and permit. As for stages one and two, by default a user file is permitted with unlimited access for its owner and no access for others. A file's owner's access can also be changed, although an owner always retains permit access. The $FILESTATUS command or FILEINFO and GFINFO subroutines can be used to obtain a file's permit status.[16][20]

Stage four added program keys (PKeys) to the list of things to which a file can be permitted. Thus files can be permitted to users, projects, all other users, program keys, or a combination of these. Program keys were associated with MTS commands and files, which allowed files to be permitted to specific programs or to specific MTS commands. Among other things this allowed the creation of execute-only or run-only programs in MTS.[2]

Files can also be permitted to the initial sub-string of a userID, projectID, or program key. As a result, it may happen that a single userID, projectID, and program key may potentially have more than one type of access. In such cases, the actual access is resolved according to the following rules: (i) userIDs, alone or in combination with program keys, take precedence over projectIDs and program keys, ii) projectIDs, alone or in combination with program keys, take precedence over program keys, (iii) longer sub-string matches take precedence over shorter sub-string matches, and (iv) if there is no specific userID, projectID, or program key match then the access specified for "others" is used.[21]

The PKEY subroutine can be used to shorten the program key of the currently running program or switch the program key of the currently running program to *EXEC and later restore the program key, allowing a program to voluntarily limit the access it has to files by virtue of its program key.[21]

Faylni bloklash

As part of "really shared files" (stage three above), file locking was introduced to control simultaneous access to shared files between active MTS sessions (that is, between separate running tasks or processes).[2] File locking does not limit or block access to files within a single MTS session (between command language subsystems or user programs running as part of the same MTS session).[2]File locking in MTS is mandatory rather than advisory. Files are locked implicitly on first use of a particular type of access or explicitly using the $LOCK command or the LOCK subroutine. Files are unlocked implicitly when the last use of a file within a task is closed or explicitly using the $UNLOCK command or the UNLK subroutine. The $LOCKSTATUS command or LSFILE and LSTASK subroutines can be used to obtain a file's or a task's current lock status.[21]

A file may be "open", "not open", or "waiting for open" and "not locked", "locked for read", "locked for modify", "locked for destroy", "waiting for read", "waiting for modify", or "waiting for destroy". A file's open status is independent of its lock status. Locking a file for modification also locks the file for reading and locking a file for destroying also locks the file for modification and reading. Any number of tasks can have a file locked for reading at any given time, but only one task can have a file locked for modification at any given time and then only if no task has the file locked for reading, or locked for destroying. Only one task can have a file locked for destroying at any given time, and then only if no task has the file open, locked for reading, or locked for modification.

When an attempt to lock a file cannot be satisfied, the calling task will wait either indefinitely or for a specific period for another task to unlock the file, or until an attention interrupt is received. If the file cannot be locked, an error indicating this is returned. The file locking software detects deadlocks between tasks using Warshall algoritmi[22] and returns an error indication without locking the file and without waiting.

Locking a file is in effect locking the name of that file.[21] For example, the following sequence of commands can be executed while leaving FILE1 locked even though a file with the name FILE1 does not always exist:

    $lock FILE1 RENAME    $rename FILE1 as FILE2    $create FILE1

At a later date this capability to lock names allowed the "file" locking routines to be used to implement record level locking between tasks accessing the centrally managed file *MESSAGES that was used by the MTS $Messagesystem to hold mailboxes and messages for individual users.

The addition of file locking allowed removal of the restriction that a single userID could only be signed on once. Instead, the number of simultaneous sign ons was controlled by a maximum that could be set in the user's accounting record by the project manager or a site's business office.

File save and restore

Files are regularly backed up to tape unless they have been marked as NOSAVE. The file save process includes full and partial backups. Full saves are typically done once a week with no users signed on to the system. Partial saves save just the files that have changed since the last full or partial save and are typically done once each day in the late evening or early morning during normal operation with users signed on to the system.

At the University of Michigan two copies of the full save tapes were made and one copy was stored "off-site". Save tapes were kept for six weeks and then reused. The tapes from every sixth full save were kept "forever".

Files are saved to allow recovery from "disk disasters" in which the file system becomes damaged or corrupt, usually due to a hardware failure. But users could restore individual files as well using the program *RESTORE.

Terminalni qo'llab-quvvatlash

An early computer terminal, the Teletype Model 33 ASR with attached paper tape reader/punch
A DEC VT100 display terminal
PDP-8 Data Concentrator at the University of Michigan, c. 1971 yil
A Tektronix 4014 display terminal
Touch-tone Telephone
Merit PDP-11 based Primary Communications Processor (PCP) at the University of Michigan, c. 1975 yil
IBM 3279 display terminal

At its peak, MTS at the University of Michigan simultaneously supported more than 600 terminal sessions as well as several batch jobs.[4]

Terminals are attached to MTS over dial-in modems, leased or dedicated data circuits, and network connections. The Michigan Communications Protocol (MCP), a simple framing protocol for use with asynchronous connections that provides error detection and retransmission, was developed to improve the reliability of terminal to MTS and computer to MTS connections.[23]

Juda keng doiradagi terminallar are supported including the 10 character per second (cps) Teletayp Model 33, the 30 cps LA-36 and 120 cps LA-120 DECWriter, the 14 cps IBM 2741, and at ever increasing speeds up to 56,000 bits per second, the VT100 display, the Visual 550 display, the Ontel OP-1 and OP-1/R displays, Tektronix 4000 series of graphic displays, and shaxsiy kompyuterlar from Apple (AMIE for the Apple ][), IBM (PCTie for DOS), and others running terminal emulyatsiyasi programs, including some specifically developed for use with MTS. Most terminals that are compatible with any of these models are also supported.

MTS also supports access from 10- or 12-button touch-tone telephones via the IBM 7772 Audio Response Unit[24][25] va keyinroq Votrax Audio Response Unit,[26][27] IBM 1052 consoles, IBM 3066 console displays, and IBM 3270 family of locally attached displays (IBM 3272 and 3274 control units, but not remote 3270 displays).

Front-end communication processors

MTS can and does use communication controllers such as the IBM 2703 va Memorex 1270 to support dial-in terminals and remote batch stations over dial-in and dedicated data circuits, but these controllers proved to be fairly inflexible and unsatisfactory for connecting large numbers of diverse terminals and later personal computers running terminal emulation software at ever higher data rates. Most MTS sites choose to build their own front-end processors or to use a front-end processor developed by one of the other MTS sites to provide terminal support.

These front-end processors, usually DEK PDP-8, PDP-11, yoki LSI-11 based with locally developed custom hardware and software, would act as IBM control units attached to the IBM input/output channels on one side and to modems and phone lines on the other. At the University of Michigan the front-end processor was known as the Data Concentrator (DC).[28] The DC was developed as part of the CONCOMP project by Dave Mills and others and was the first non-IBM device developed for attachment to an IBM I/O Channel.[29] Initially a PDP-8 based system, the DC was upgraded to use PDP-11 hardware and a Remote Data Concentrator (RDC) was developed that used LSI-11 hardware that connected back to a DC over a synchronous data circuit. The University of British Columbia (UBC) developed two PDP-11 based systems: the Host Interface Machine (HIM) and the Network Interface Machine (NIM). The University of Alberta used a PDP-11 based Front-end processor.

These front-end systems support their own command language of "device commands", usually lines prefixed with a special character such as a percent-sign (%), to allow the user to configure and control the connections.[30] The $CONTROL command and programs running on MTS can use the CONTROL subroutine to issue device commands to front-end and network control units.

Network support

Over time some front-ends evolved to provide true network support rather than just providing support for connections to MTS.

At the University of Michigan (UM) and Wayne State University (WSU) there was a parallel development effort by the Merit Network to develop network support. The Merit nodes were PDP-11 based and used custom hardware and software to provide host to host interactive connections between MTS systems and between MTS and the CDC SCOPE/HUSTLER system at Michigan State University (MSU). The Merit nodes were known as Communication Computers (CCs) and acted as IBM Control Units on the one side while providing links to other CCs on the other side. The initial host to host interactive connections were supplemented a bit later by terminal to host (TL) connections, and later still by host to host batch connections which allowed remote jobs submitted from one system to be executed (EX) on another with printed (PR) and punched card output (PU) returned to the submitting system or to another host on the network. The remote batch jobs could be submitted from a real card reader or via *BATCH* yordamida #NET "card" at the front of the job.

Merit renamed its Communication Computers to be Primary Communication Processors (PCPs) and created LSI-11 based Secondary Communication Processors (SCPs). PCPs formed the core of the network and were attached to each other over Ethernet and dedicated synchronous data circuits. SCPs were attached to PCPs over synchronous data circuits. PCPs and SCPs would eventually include Ethernet interfaces and support mahalliy tarmoq (LAN) attachments. PCPs would also serve as gateways to commercial networks such as GTE's Telenet (later SprintNet), Timetva ADP's Autonet, providing national and international network access to MTS. Later still the PCPs provided gateway services to the TCP / IP networks that became today's Internet.

The Merit PCPs and SCPs eventually replaced the Data Concentrators and Remote Data Concentrators at the University of Michigan. At their peak there were more than 300 Merit PCPs and SCPs installed, supporting more than 10,000 terminal ports.

Virtual environments

UMMPS provides facilities that allow the creation of virtual environments, either virtual machines or virtual operating systems. Both are implemented as user programs that run under MTS.

The initial work on the first MTS virtual machine was done at the University of Michigan to simulate the IBM S/360-67 and allow debugging of UMMPS and MTS. Later the University of British Columbia did the initial work to create a S/370 MTS virtual machine. In theory these virtual machines could be used to run any S/360 or S/370 system, but in practice the virtual machines were only used to debug MTS and so there may be subtle features that are not used by MTS that are not completely or correctly implemented. The MTS virtual machine was never updated to support the S/370-XA architecture (instead other tools such as SWAT and PEEK were used to debug MTS and IBM's VM/XA yoki VM / ESA were used to debug UMMPS).

In the early 1970s work was done at Wayne State University to run a version of OS/MVT in a modified virtual machine (VOS) under MTS as a production service.[31]

"Student" virtual machines in MTS have also been created as teaching tools. Here the OS running in the virtual machine (written by the student) uses simulated devices and has no connection to the "real" outside world at all (except possibly a console).

In addition to virtual machines, MTS provides two programs that implement virtual operating system environments.[32] *FAKEOS, developed at the University of Michigan, allows programs from OS/360 to run as user programs in MTS. *VSS, developed at the University of British Columbia, allows programs from OS / VS1 va MVS/370 to run as user programs in MTS.[33] Neither program actually runs the IBM operating system, instead they simulate enough of the operating environment to allow individual programs developed for those operating systems to run. Both programs can be run directly, but often they are run from driver files that give an end user the impression that they are running a regular MTS user program.

Elektron pochta

At least three different implementations of elektron pochta were available under MTS at different times:

  • *MAIL from NUMAC, but not available at all MTS sites;
  • CONFER, the computer conferencing system written by Robert Parnes at UM; va
  • $MESSAGESYSTEM from the University of Michigan Computing Center.[4][34]

CONFER and *MAIL only sent and received mail to and from "local" users.

Available to users in July 1981,[35] $MESSAGESYSTEM is the last of the three systems to be implemented and became the most widely used. Between 1981 and 1993 it was used to send and receive more than 18 million messages at the University of Michigan.[36] It can send:

  • local and network e-mail messages,
  • dispatches (immediate messages displayed at another user's terminal unless dispatches were blocked by the other user),
  • bulletins (messages sent by the system operator to particular users delivered automatically at the beginning of an MTS session), and
  • signon messages (messages sent by the system operator to all users delivered automatically before the start of an MTS session).

Some notable features of $MESSAGESYSTEM include the ability:

  • to send to individuals by signon ID or name, to groups of individuals by signon ID, project ID, or group name, or to the system operator;
  • to send to a list stored in a file;
  • to use the program *USERDIRECTORY to create and maintain a database of e-mail names for individuals and for groups including names and groups that include remote or network users;
  • to recall/delete messages that hadn't already been read;
  • to add or remove recipients to messages after they had been sent;
  • elektron pochta zanjiridagi xabarlar tarixini har bir yangi xabarga eski xabarlardan matn kiritishni hojat qoldirmasdan ko'rsatish;
  • elektron pochta xabarlari uchun amal qilish muddatini belgilash va sanalar va vaqtgacha ushlab turish;
  • kiruvchi va chiquvchi xabarlarning holatini ko'rsatish uchun;
  • ma'lumotlar bazasi modeli (kiruvchi, chiquvchi, yangi, eski / ko'rilgan, to) yordamida kiruvchi va chiquvchi xabarlarni olish oluvchilar, dan oluvchilar, xabar raqami, yuborilgan sana, amal qilish muddati, ...);
  • pochta qutisiga pochta qutisi egasidan boshqa identifikatorlardan foydalanishga ruxsat beruvchi pochta qutisiga ruxsat berish;
  • xabarlarni avtomatik ravishda bitta pochta qutisidan boshqasiga yuborish;
  • eski xabarlarni arxivlash uchun va
  • buyruqlarga qo'shimcha ravishda subroutine interfeysi yordamida xabarlarni yuborish va qabul qilish.

Apple Macintosh uchun dastur, InfoX (aka MacHost), MTS xabar tizimiga zamonaviy interfeysni taqdim etish uchun ishlab chiqilgan va * FOYDALANISH.

1984 yilda MTS butun dunyo bo'ylab 300 dan ortiq saytlarga elektron pochta xabarlarini yuborish va qabul qilish uchun ishlatilishi mumkin edi.[4]

Uzoq tizimlarda (masofaviy xabarlar yoki tarmoq pochtalari) foydalanuvchilarga elektron pochta xabarlarini yuborish va qabul qilishning birinchi qobiliyati 1982 yilda amalga oshirildi[35] MAILNET loyihasining bir qismi sifatida 16 ta universitet va EDUCOM (keyinchalik EDUCAUSE) tomonidan moliyalashtirildi Karnegi korporatsiyasi. MIT MAILNET saytlari orasidagi o'rni markazi va unga kirish eshigi bo'lib xizmat qildi CSNET, ARPANETva BITNET. Michigan Universitetidagi MTS o'z ulanishlaridan foydalangan Merit Network va Merit to orqali GTE tijorat X.25 tarmoq, Telenet (keyinchalik SprintNet), MIT bilan aloqa o'rnatish. Michigan Universitetidagi MTS UM kampusidagi boshqa saytlar va MIT-da MAILNET releyiga to'g'ridan-to'g'ri kirish imkoni bo'lmagan boshqa MTS saytlari uchun estafeta maydoni bo'lib xizmat qildi.

Michigan Universitetidagi MTS foydalanuvchisi uchun masofaviy elektron pochta manzillari:

  • ism@ UMich-MTS.Mailnet (MAILNET va BITNET saytlaridan)
  • ism%[email protected] (CSNET va ARPANET saytlaridan)
  • ism@UM (boshqa UM yoki MTS saytlaridan)

Uzoqdagi saytga elektron pochta xabarini yuborish uchun Michigan universiteti MTS foydalanuvchilari quyidagi manzillardan foydalanganlar:

  • ism@CARNEGIE (Karnegi-Mellon universitetiga MAILNET saytiga)
  • ism@ CARNEGIE.MAILNET (CMU uchun rasmiy, ammo uzoqroq ism)
  • ism@WSU (Ueyn davlat universitetiga MTS saytiga)
  • ism@ Wayne-MTS.Mailnet (WSU uchun rasmiy, ammo uzoqroq ism)
  • ism%[email protected] (Braun Universitetiga CSNET Phonenet saytiga)
  • ism@ cornell.ARPA (Cornell Universitetiga CSNET yoki ARPANET saytiga)
  • ism@ STANFORD.BITNET (Stenford Universitetiga BITNET saytiga)

Vaqt o'tishi bilan tobora ko'proq kompyuterlar Internetga to'g'ridan-to'g'ri ulanganligi sababli, MAILNET o'rni yondashuvi elektron pochta xabarlarini etkazib berish va elektron pochta manzillarining Internet-domen uslubi bilan to'g'ridan-to'g'ri va ishonchli almashtirildi (ism@ um.cc.umich.edu).

InfoX

Deraza haqida InfoDisk-ning skrinshoti, 1988 yil sentyabr

InfoX ("info-ex" deb talaffuz qilinadi, dastlab InfoDisk) bu uchun dastur Apple Macintosh Michigan universiteti Axborot texnologiyalari bo'limi tomonidan ishlab chiqilgan.[34] Bu MTS elektron pochtasini tekshirish, ishtirok etish uchun ishlatilishi mumkin bo'lgan zamonaviy foydalanuvchi interfeysini (menyular, piktogramma, oynalar va tugmalar) taqdim etadi. II konferentsiya konferentsiyalar, MTS foydalanuvchi katalogiga kirish va fayllarni yaratish, tahrirlash va boshqarish. InfoX MTS, $ Message, $ Edit va CONFER buyruq satrlari interfeyslarida mavjud bo'lgan an'anaviy tahrirlash funktsiyalariga Macintosh uslubidagi so'zlarni qayta ishlash funktsiyalarini qo'shadi. Matnni istalgan Macintosh faylidan ko'chirish uchun Macintosh Edit menyusi ostida standart Kesish, Nusxalash va Yopish buyruqlaridan foydalanish mumkin.

Buxgalteriya hisobi va zaryadlash

Har bir kirish identifikatoriga identifikator tomonidan bajarilishi mumkin bo'lgan ishlarning miqdori va turlarini boshqaradigan resurs cheklovlari (pul, disk maydoni, ulanish vaqti, ...) ajratilgan.[4] Shaxsiy identifikatorlar faqat terminal sessiyalaridan yoki shunchaki ommaviy ishlardan foydalanish bilan cheklanishi mumkin yoki narxlar past bo'lgan kun yoki haftaning kunlari davomida ishlash bilan cheklanishi mumkin. Har bir kirish identifikatoriga amal qilish muddati beriladi.

To'lov olinadigan manbalarga quyidagilar kiradi:

  • CPU vaqti - protsessor vaqtining soniyalarida zaryadlanadi
  • Xotiradan foydalanish - protsessor-VM ajralmas sifatida zaryadlanadi ... masalan. 10 soniya davomida ishlatiladigan 40 ta virtual xotira 400 sahifa-soniya sifatida olinadi
  • Printerdan foydalanish - qog'oz varaqalari va chiqish satrlari (chiziqli printerlar uchun) yoki sahifalar va varaqlar (sahifa printerlari uchun) sifatida olinadi
  • Ishlatilgan disk maydoni - sahifa-oylarda zaryadlangan (bitta sahifa = 4096 bayt)
  • Terminal yoki tarmoq bir necha daqiqada quvvatlanadi
  • Kartalar karta tomonidan o'qiladi va musht bilan to'ldiriladi
  • Oyoq bilan zaryadlangan qog'oz lenta
  • O'rnatilgan lentalar va lenta ishlatilish vaqtini, o'rnatilgan lentalarning soni va foydalanish daqiqalari bilan belgilanadi
  • Dastur mahsulotiga qo'shimcha to'lovlar (ba'zi litsenziyalangan dastur mahsulotlari uchun dastur asosida dastur asosida olinadi)
  • Boshqa manbalar (masalan, plotterlar, fotosuratlar va boshqalar)

Shuni esda tutingki, ishlatilgan virtual xotira uchun to'lov mavjud bo'lsa-da, ishlatilgan haqiqiy xotira uchun to'lov olinmaydi. Shuni ham unutmangki, sahifada kirish operatsiyalari uchun hech qanday o'zgarish yo'q, garchi ular tizimga kirishda bildirilgan sessiya xulosasi ma'lumotlariga kiritilgan bo'lsa.

Loyihalarning turli sinflari (ichki, tashqi, tijorat, ...) va kunning turli vaqtlari yoki haftaning kunlari uchun har xil tariflarni o'zgartirish mumkin. Turli xil saytlardagi siyosat va amaliyotga qarab, to'lovlar "haqiqiy pul" yoki "yumshoq pul" uchun olinishi mumkin (yumshoq pul ba'zan "kulgili pul" deb ham ataladi, garchi bu qanchalik kulgili bo'lsa, odatda kim to'layotganiga yoki to'lamaganiga bog'liq) qonun loyihalari).

Foydalanuvchilar sessiya narxini $ DISPLAY NARXI buyrug'i, yordamida o'zlarining qoldiqlarini ko'rsatishi mumkin $ HISOB HISOBI buyrug'i, va sessiya xarajatlari va hisobning qolgan qoldig'i ish yoki sessiya tugashi bilan ko'rsatiladi. Variant ham mavjud ($ SET COST = ON), bu har bir MTS buyrug'i bajarilgandan so'ng ortib boruvchi va yig'iladigan seans xarajatlarini ko'rsatishga olib keladi.

Foydalanuvchini o'z hisob raqamidan olib tashlamaslik uchun, foydalanuvchi tizimga kirishga harakat qilganda pul chegarasi tekshiriladi. Agar hisob balansi nol yoki salbiy bo'lsa, tizimga kirishga ruxsat berilmaydi. Ommaviy ish joylari uchun, agar hisob balansi ish uchun taxmin qilingan xarajatlarni qoplash uchun etarli bo'lmasa, ish bajarilmaydi. Terminal sessiyalari uchun, hisob balansi bir dollardan pastga tushganda, "Pulingiz tugadi" degan ogohlantirish, so'ngra amaldagi qoldiq chop etiladi. Ushbu "puldan tashqarida" xabari foydalanuvchi hisobdan chiqmaguncha ma'lum vaqt oralig'ida takrorlanadi. Kirish identifikatorlari salbiy balansga ega bo'lishi mumkin, lekin odatda katta emas yoki tasodifan. Ma'lum bir saytdagi ma'muriy siyosatiga qarab, loyihalar ko'pincha foydalanilgan resurslar uchun, agar ular vakolatli miqdordan oshib ketgan bo'lsa ham to'lashlari kerak.

Istalganidan tezroq ko'proq resurslardan foydalanishi mumkin bo'lgan baxtsiz hodisalardan qo'shimcha himoya qilish uchun foydalanuvchilar CPU vaqtidan foydalanish bo'yicha global va mahalliy cheklovlarni o'rnatishi mumkin. Global vaqt chegaralari ($ SIGNON ccid T =maksimal vaqt) butun ish yoki sessiyaga murojaat qilish. Shaxsiy dasturlar uchun mahalliy vaqt chegaralari qo'llaniladi ($ RUN dastur T =maksimal vaqt). Bosib chiqariladigan sahifalar va zarb qilinadigan kartalar sonining global va mahalliy chegaralari ham belgilanishi mumkin ($ SIGNON ccid P =maksimal sahifalar C =maxcards va $ RUN dastur P =maksimal sahifalar C =maxcards). Belgilangan mahalliy protsessor uchun vaqt chegarasi $ SET TIME =maksimal vaqt buyruq.

Adabiyotlar

  1. ^ MTS 1-ma'ruza, Mayk Aleksandr, Don Bettner, Jim Xemilton va Dag Smit tomonidan Michigan Terminal tizimining ichki qismidagi ma'ruzalar turkumidagi birinchisining transkripsiyasi, v. 1972 yil
  2. ^ a b v d e f g h men j "Axborotni umumiy maqsadda vaqtni taqsimlash sharoitida himoya qilish", Gari C. Pirkola va Jon Sanguinetti, IEEE 1977 yildagi tendentsiyalar va ilovalar bo'yicha simpozium materiallari: kompyuter xavfsizligi va yaxlitligi, vol. 10 yo'q. 4,, 106-114-betlar
  3. ^ a b v d "Michigan Terminal tizimining tashkil etilishi va xususiyatlari", M. T. Aleksandr, p. 586, 1972 yil may oyida bo'lib o'tgan AFIPS baholi qo'shma kompyuter konferentsiyasi materiallari
  4. ^ a b v d e f g h men j k MTS 1-jild: Michigan Terminal tizimi, 9,13-14 betlar, 1991 yil noyabr, Michigan universiteti hisoblash markazi, Ann Arbor, Michigan
  5. ^ a b v d MTS 3-jild: Tizim subroutine tavsiflari, Michigan universiteti hisoblash markazi, Ann Arbor, Michigan
  6. ^ Michigan Terminal tizimi (MTS) subseriesi, Hisoblash markazi nashrlari, 1965-1999, Bentley tarixiy kutubxonasi, Michigan universiteti
  7. ^ a b v d e f g h men j k MTS 1-jild: MTS tizimlari nashri, eskirgan va ichki buyruqlar, 1991 yil noyabr, Michigan universiteti, 60pp.
  8. ^ a b "Vaqtni taqsimlash bo'yicha nazoratchi dasturlari", ning rahbarlari dasturlarini taqqoslaydigan yozuvlar CP-67, TSS / 360, MTS va Multics Maykl T. Aleksandr tomonidan, Tizimlarni dasturlash bo'yicha rivojlangan mavzular (1970, qayta ko'rib chiqilgan 1971), Michigan universiteti muhandislik yozgi konferentsiyasi
  9. ^ a b UMMPS D6.0 Supervisor qo'ng'iroqlarining tavsiflari, 1987 yil noyabr, Michigan universiteti, 156p.
  10. ^ MTS 14-jild: MTS-da 360/370 yig'uvchilar, Michigan universiteti hisoblash markazi, Ann Arbor, Michigan
  11. ^ MTS-ning tarqatuvchilariga kiritilgan yangilanish jurnallarining sharhlari bilan kuchaytirilgan MTS ishlab chiqaruvchilarining eslashlari MTS (Michigan Terminal Tizimi), 1968-1996 yy, Hisoblash markazi (Michigan universiteti) 1952-1996 yillarda, Michigan universiteti Bentli tarixiy kutubxonasida
  12. ^ "IBM 370 arxitekturasida domenni almashtirishni amalga oshirish uchun monitorni chaqirish yo'riqnomasidan foydalanish", Jon Sanguinetti, Michigan universiteti hisoblash markazi, ACM SIGOPS operatsion tizimlarini ko'rib chiqish, 15-jild, 4-son (1981 yil oktyabr), 55-61 betlar
  13. ^ "Michigan Terminal tizimining penetratsion tahlili", B. Xebbard, P. Grosso va boshqalar. al., ACM SIGOPS operatsion tizimlarini ko'rib chiqish, 14-jild, 1-son (1980 yil yanvar), 7-20 betlar
  14. ^ "Vaqtni taqsimlashning katta tizimidagi qattiq holatdagi peydjing qurilmalarining ta'siri", Jon Sanguinetti, Michigan universiteti hisoblash markazi, ACM SIGMETRICS ishlash samaradorligini baholash, 10-jild, 3-son (1981 yil kuz), 136–153-betlar, ISSN 0163-5999
  15. ^ MTS 21-jild: MTS buyruq kengaytmalari va makrolar, Michigan universiteti hisoblash markazi, Ann Arbor, Michigan
  16. ^ a b "Vaqtni umumiy foydalanish uchun mo'ljallangan fayl tizimi", G. C. Pirkola, IEEE ish yuritish, 1975 yil iyun, 63-jild. 6, 918-924-betlar, ISSN 0018-9219
  17. ^ "MTS fayl tizimining rivojlanishi", Gari Pirkola, Mayk Aleksandr va Jeff Ogden, Michigan Terminal tizimining arxivi, 2014 yil 7-iyun kuni.
  18. ^ MTS I jild: Michigan terminal tizimi, Ikkinchi nashr, hisoblash markazi, Michigan universiteti, 1967 yil dekabr, 415 bet.
  19. ^ "Maykdan * PERMIT va * COPY haqida javob", Mayk Aleksandr, Michigan Terminal tizimining arxivi, 2014 yil 24-may, 2014 yil 7-iyun kuni.
  20. ^ "Umumiy fayllar - bu haqiqiy narsa", Hisoblash markazi yangiliklari, Michigan universiteti, 2-jild, 15-son, 1972 yil 23-oktabr, 1-bet, 2014 yil 7-iyun.
  21. ^ a b v d MTS 1-jild: Michigan terminal tizimi, Michigan universiteti hisoblash markazi, 1991 yil noyabr, 382 bet.
  22. ^ "Mantiqiy matritsalar haqidagi teorema", Stiven Uorshall, ACM jurnali, Jild 9, № 1 (1962 yil yanvar), 11-12 betlar, doi: 10.1145 / 321105.321107.
  23. ^ MTS 4-jild: MTS-da terminallar va tarmoqlar, Michigan universiteti hisoblash markazi
  24. ^ Ovozga javob berish birligining foydalanuvchi qo'llanmasi, Duglas B. Smit, CONCOMP loyihasi, Michigan universiteti, 1970 y
  25. ^ "IBM System / 360-dan ovozli chiqish", A. B. Urquhart, IBM, afips, 857-bet, Kuzgi qo'shma kompyuter konferentsiyasi materiallari, 1965
  26. ^ "Michigan universiteti ovozli javob tizimi va nutqni sintez qilish vositasi", Edvard J. Froncak, Ikkinchi AQSh Yaponiya Kompyuter Konferentsiyasi, Ishlar, 380-84 betlar, 1975 y
  27. ^ "Michigan universiteti matnidan segmentli fonemalar yaratish uchun audio reaksiya tizimining ichki dizayni", Eduard J. Fronczak va Jeyms F. Blinn, Xalqaro kompyuter simpoziumi materiallari 1975 y, 404-10 betlar, Vol. 1, 1975 yil avgust
  28. ^ The Ma'lumotlar kontsentratori, System / 360 Model 67 ga interaktiv terminallarni ulash uchun mo'ljallangan maxsus periferik qurilma, umumiy ko'rinish va fotosuratlar Deyv Mills, uni ishlab chiqish jarayonida loyiha rahbari va bosh dizayner
  29. ^ Ma'lumotlar kontsentratori, Devid L. Mills, CONCOMP loyihasi, Michigan universiteti, 1968 yil
  30. ^ Ma'lumotlarni kontsentratori uchun qo'llanma, Devid L. Mills, Jek L. Di Juzeppe va V. Skott Gerstenberger, CONCOMP loyihasi, Michigan universiteti, 1970 yil aprel
  31. ^ "Virtual mashinani samarali amalga oshirish", R. J. Srodawa va L. A. Bates, Veyn davlat universiteti, afips, 301-bet, Milliy kompyuter konferentsiyasi materiallari, 1973
  32. ^ MTS 2-jild: Ommaviy fayl tavsiflari, Michigan universiteti hisoblash markazi, Ann Arbor, Michigan
  33. ^ MSC / NASTRAN * VSS dan foydalanishning dastlabki namunasi, ehtimol juda erta, qarang Michigan universitetida MSC / NASTRAN, Uilyam J. Anderson va Robert E. Sandstorm, 1982 yil, Michigan universiteti muhandislik kolleji
  34. ^ a b MTS 23-jild: MTS-da xabarlar va konferentsiyalar, Michigan universiteti hisoblash markazi, Ann Arbor, Michigan
  35. ^ a b "MTS xronologiyasi", Axborot texnologiyalari dayjesti, Michigan universiteti, 9-10 bet, 5-jild, № 5 (1996 yil 13-may)
  36. ^ Michigan universiteti prezidenti Jeyms J. Dyuderstadtning 1993 yil 12 yanvarda UM hisoblash markazining sobiq xodimi va MTS xabar tizimining asosiy muallifi Jim Sterkenga maktubi.