(.. покажи всичко ..) (.. свий&скрий всичко ..) .. to the bottom ..
За компютритѣ полиномиално
- 1. Преамбюл: общ раздѣл
- 2. О, мина̨ло бързозабравимо: 5-тѣ дупки на перфолентата
- 3. За компютритѣ полиномиално
- 4. Бродерия на тракащ принтер
- 5. ЕГН-то отвѫтрѣ
- 6. Дисковата памет на System/360
- 7. Виртуалната памет на компютритѣ
- 8. [Draft] Хуманната аритметика на компютър
- 9. Прѣпратки (references)
- 10. Коментари, въпроси и отговори (comments, Q&As)
►► 1. Преамбюл: общ раздѣл (.. покажи го преамбюлът ..) (.. разгъна̨то ..)
- Сега съм пенсионер.
- Всѣ̋ка от тѣзи бесѣди е независима от другитѣ и може да се чете отдѣлно.
▼▼ 1. Преамбюл: общ раздѣл (.. скрий го преамбюлът ..) (.. свий го ..) (.. разгъни го ..)
- ►► Прѣдговор на преамбюлът (.. покажи го прѣдговорът на преамбюлът ..)
-
▼▼
Прѣдговор на преамбюлът
(.. скрий го прѣдговорът на преамбюлът ..)
- Прѣз 2018 се пенсионирах, слѣд като придобих изискващитѣ се стаж и възраст за това.
- Пенсионирах се слѣд 40 години работа като компютърен програмист и софту̌ерен инженер.
- В сѫщност бѣ̋х много добър кодировчик.
- Много добрѣ съм се разбирал с компютритѣ.
- Влизал съм им под тенекиитѣ - при битоветѣ.
- Защото тѣ само от битове разбират.
- В тази публикация ще се помѫча̨ да събера̨ спомени от далечното мина̨ло.
- На дърти години човѣк се вдѣтинѣ̋ва.
- Натам съм се запѫтил и аз.
- Това тука ме връща към младежкитѣ ми години.
- Като взема̨т да ме налѣ̋гат и дѣтски спомени, ще стане крайно врѣме да спра̨ да пиша̨.
- Но ако по спомени захвана̨ нѣ̋коя тема, ще прослѣдя̨ и слѣдващото ӥ развитие.
- Тоест, това нѣ̋ма да сѫ само младежки спомени.
- А за занимавка и за гимнастика на умът, не искам да спирам да пиша̨ софту̌ер.
- Упражнявам се на JavaScript.
- Така че ще има много софту̌ер втъка̀н в тази публикация.
- There will be much software behind.
- .. скрий го прѣдговорът на преамбюлът .. (.. скрий го преамбюлът ..) (.. свий го ..) (.. разгъни го ..)
- ►► Всѣ̋ка бесѣда е независима от остана̨литѣ (.. покажи ..)
-
▼▼
Всѣ̋ка бесѣда е независима от остана̨литѣ
(.. скрий ..)
- Всѣ̋ка бесѣда е от този сборник с бесѣди е независима от остана̨литѣ
- и може да се чете отдѣлно.
- Всѣ̋ка една е прѣдизвикана от нѣ̋какъв мой далечен спомен.
- Обикновено се прослѣдява и развитието на проблемът прѣз слѣдващитѣ години.
- Всѣ̋ка от бесѣдитѣ е свързана по нѣ̋какъв начин с компютритѣ.
- Все пак в детайли не съм навлизал.
- От читателитѣ не се изискват знания в областта на компютритѣ или софту̌ерът.
- В нѣ̋кои от бесѣдитѣ е втъка̀н софту̌ер.
- Той демонстрира нѣщо.
- Написан е на JavaScript.
- Може да се тества.
- .. скрий я̨ независимостта на бесѣдитѣ .. (.. скрий го преамбюлът ..) (.. свий го ..) (.. разгъни го ..)
- ◄► Засега не всички планирани бесѣди сѫ завършени.
- Но всички планирани бесѣди си имат вече заглавия и се появяват в таблицата на съдържанието.
- ◄► (.. скрий го преамбюлът ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
►► 2. О, мина̨ло бързозабравимо: 5-тѣ дупки на перфолентата (.. покажи я̨ първата бесѣда ..) (.. разгъна̨то ..) .. към началото ..
- По споменитѣ ми от 9-ти клас.
- Срѣдно образование съм завършил с квалификация "изчислител-кодировчик".
- Кодирането на музиката - музикалнитѣ ноти - се учѣше едно врѣме в 3-то отдѣление.
- А много по-важното кодиране за компютритѣ май само експерти го зная̨т. ::2021-11-05 13:10::
▼▼ 2. О, мина̨ло бързозабравимо: 5-тѣ дупки на перфолентата (.. скрий я̨ първата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
::2021-11-05 13:10::- ►► Прѣдговор, който трѣ̋бва да се прочете първо (.. покажи го прѣдговорът на първата бесѣда ..)
-
▼▼ Прѣдговор, който трѣ̋бва да се прочете първо
(.. скрий го прѣдговорът на първата бесѣда ..)
- Мина̨лото бива мина̨ло незапомнено и мина̨ло бързозабравимо.
- Прогресът на човѣшкото общество се дължи само на напрѣдъкът на технологиитѣ.
- Революциитѣ не мога̨т да водя̨т до прогрес.
- Революциитѣ мога̨т да причиня̨т регрес в обществото, ако се прѣвърна̨т в спирачка на технологичното развитие.
- А иначе революциитѣ сѫ най-обикновени актове на насилие, каквито човѣчеството познава открай врѣме:
- братоубийства, грабежи, войни, масови убийства.
- До напрѣдък тѣ на водя̨т.
- Пенсионирал съм се слѣд 40 години стаж в компютърната индустрия - като компютърен програмист и софту̌ерен инженер.
- И този текст тука е посветен на далечната история на компютърната индустрия,
- далечната - отпрѣди аз да влѣ̋за̨ професионално в индустрията.
- Иска ми се да материализирам споменитѣ си:
- какво съм учил в девети клас в търновската гимназия прѣз 1969.
- Да, в девети клас учѣхме за машинното кодиране на Минск-2.
- Нѣ̋какви общи познания сѫ ни били прѣподавани в десети клас - схеми, алгоритми, кодировки, нотации.
- А в единадесети клас учихме езикът за програмиране от високо ниво Алгол-60.
- В дипломата ми за срѣдно образование има и нѣ̋каква професионална квалификация: изчислител-кодировчик.
- Нашата паралелка 'Д' завършвахме като изчислители-кодировчици.
- Други паралелки завършваха̨ като автомонтıори, електротехници, ..
- Най завиђахме на шофıоритѣ от 'Г'-паралелка - завършваха̨ гимназия с шофıорска книжка.
- Прѣз животът си никога не съм програмирал на Минск-2, нито за Минск-22 или Минск-32.
- Нито пък съм виђал компилатор от Алгол-60.
- Но програми на Алгол-60 съм писал.
- Вѣроятно единственитѣ входно-изходни устройства на "дрѣвнитѣ" компютри Минск-2 сѫ били вход и изход на петпѫтечкова перфолента, заимствана от телеграфът.
- Затова в двата раздѣла тука давам общи свѣдения за:
- Но да караме наред.
- Идеитѣ на Charles Babbage и Ada Lovelace от 19-ти вѣк сѫ изпрѣварващи - врѣмето на компютърната техника още не било дошло.
- Но доста технологични постижения от 19-ти вѣк и от първитѣ десетилѣтия на 20-ти вѣк сѫ допринесли за развитието на компютърнитѣ технологии:
- жакардовитѣ станове
- телеграфът
- холеритовата техника на IBM
- автоматичнитѣ телефонни централи
- и разбира се,
- радиотехниката.
- Напримѣр:
- Елементната база на съврѣменнитѣ компютри е тръгна̨ла от радиотехниката.
- Обаче първия̌т програмируем компютър на Konrad Zuse (1941) е бил построен с елементи на телефонията, на автоматичнитѣ телефонни централи.
- Първо прочетѣте за 7-битовата срѣда̀, 7-битовата срѣда̀, 7-битовата среда̀, 7-битовата среда̀, 7-bitovata sredà, 7-bitovata sredà, за 7-битовата бариера и за прѣодоляването ѝ в началото на 21-ви вѣк.
- Тука ще стане дума за петбитовата кодировка, стандартизирана за петпѫтечковитѣ перфоленти, използвани в телеграфията, но и в "дрѣвнитѣ" компютри Минск-2.
- .. скрий го прѣдговорът на първата бесѣда .. (.. скрий го мина̨лото незапомнено ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Кодировката на петпѫтечковитѣ перфоленти (.. покажи я̨ ..) (.. разгъна̨то ..) .. към началото ..
-
▼▼ Кодировката на петпѫтечковитѣ перфоленти
(.. скрий я̨ ..)
(.. свий я̨ ..)
(.. разгъни я̨ ..)
- ►► Телеграфът (.. покажи ..)
-
▼▼ Телеграфът
(.. скрий го ..)
- В тесен смисъл телеграфията прѣдставлява дистанционно прѣдаване на електрически импулси.
- Важни сѫ съпѫтстващитѣ устройства.
- [A] Перфоратор с клавиатура
- Устройство с клавиатура, приличащо на пишеща машина, което вмѣсто да отпечатва буквитѣ, цифритѣ, точкитѣ и запетайкитѣ на хартия във вид, удобен за човѣк, дупчи кодоветѣ им на перфолента.
- [B] Пишеща машина без клавиатура
- Чете от перфолента кодоветѣ на букви, цифри, точки и запетайки, и ги отпечатва във вид, удобен за човѣк.
- [C] Четец на перфолента
- Чете кодове от перфолента и ги праща по телеграфна линия до отдалечено мѣ̋сто или пък ги подава на компютър - той да прави каквото иска с тѣ̋х.
- [D] Перфоратор без клавиатура
- Дупчи на перфолента или импулситѣ, получени по телеграфна линия от отдалечено мѣ̋сто, или кодоветѣ, получени от компютър.
- В самата телеграфия чрѣз устройство A телеграмата се отпечатва на перфолента,
която се подава на устройство C, за да бѫда̨т пратени кодоветѣ до дестинацията,
къдѣто устройство D дупчи полученитѣ сигнали на перфолента,
която се подава на устройство B, за да бѫде текстът отпечатан на хартия.
Така получената телеграма се врѫчва на получателя̌т. - Тази услуга, която пощитѣ прѣдоставяха̨, е от 19-ти вѣк.
- В началото на 21-ви вѣк телеграфията излѣзе от употрѣба, защото услугата "електронна поща" на интернет и услугата SMS на GSM-комуникациитѣ я̨ замѣстиха̨.
- Българскитѣ пощи спрѣ̋ха̨ да пращат телеграми прѣз 2005.
- Послѣдната телеграма в свѣтът е била пратена на 2013-07-14.
- Устройствата, обслужващи телеграфията, сѫ били използвани при първитѣ компютри, включително и при Минск-2, за които ще стане дума.
- Забѣлѣжка_1: Вѣроятно винѫги е имало хора, способни да чета̨т кодирани перфоленти и да записват на рѫка или да диктуват полученитѣ телеграми.
- Забѣлѣжка_2: Разбира се, телеграфията от послѣднитѣ десетилѣтия е използвала по-съврѣменни електронни устройства с памет.
- (.. скрий го телеграфът ..) (.. скрий я̨ кодировката на петпѫтечковитѣ перфоленти ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Кодировката (.. покажи ..)
-
▼▼ Кодировката
(.. скрий я̨ ..)
Подредба на таблицата:
- Двата реда с десетични числа прѣдставят перфориранитѣ кодове в двѣ нотации: с младшия̌т бит отгоре (BigEndian) и с младшия̌т бит отдолу (LittleEndian).
- Таблицата може да се покаже с три подредби на колонитѣ:
- според горнитѣ битовѣ - тѣ сѫ най-значими: BigEndian
- според долнитѣ битовѣ - тѣ сѫ най-значими: LittleEndian
- според клавиатурата: QWERTY
0 2 8 4 29 25 16 10 1 21 28 12 3 13 24 20 18 22 11 5 26 30 9 17 23 14 15 19 6 7 27 31 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 0 8 2 4 23 19 1 10 16 21 7 6 24 22 3 5 9 13 26 20 11 15 18 17 29 14 30 25 12 28 27 31 NUL CR LF SP Q W E R T Y U I O P A S D F G H J K L Z X C V B N M ESC DEL NUL CR LF SP 0 1 2 3 4 5 6 7 8 9 - ' WRU ! & # BEL ( ) + / : = ? , . ESC DEL NUL CR LF SP Я В Е Р Т Ы У И О П А С Д Ф Г Х Й К Л З Ь Ц Ж Б Н М ESC DEL NUL CR LF SP 0 1 2 3 4 5 6 7 8 9 - ' WRU Э Ш Щ Ю ( ) + / : = ? , . ESC DEL - Има два регистъра:
- основен регистър - регистър на буквитѣ
- алтернативен регистър - регистър на формитѣ - цифри, скоби, запетаи, ..
- Има и два режима:
- латиница
- кирилица
- Само в странитѣ с писменост на кирилица сѫществува режим кирилица.
- Повечето страни се задоволяват само с режим латиница.
- Четиритѣ реда в таблицата сѫ както слѣдва:
- основен регистър - режим латиница
- алтернативен регистър - режим латиница
- основен регистър - режим кирилица
- алтернативен регистър - режим кирилица
- Контролнитѣ знаци NUL, LF, SP, CR, ESC, DEL се кодират еднакво в двата регистъра и двата режима.
- От основен към алтернативен регистър се прѣминава със ESC.
- А обратно от алтернативен към основен регистър се прѣминава със DEL.
- Макар кодировката да е 5-битова, двата регистъра - основен и алтернативен - позволяват 52 знака, освѣн 6-тѣ контролни знака.
- Ако сѫществува режим кирилица, то слѣд NUL се влиза в този режим, а слѣд DEL се прѣминава в режим латиница - основен регистър.
- NUL означава непродупчена перфолента.
- Ако режим кирилица не сѫществува, NUL не може да се срѣща вѫтрѣ в съобщение.
- Иначе, ако режим кирилица сѫществува, то това е началния̌т режим. Повечето телеграми не налагат прѣвключване към режим латиница, но ако се наложи, това става с DEL.
- (.. скрий я̨ петбитовата кодировката ..) (.. скрий го подраздѣлът ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Перфоленти с повече от пет пѫтечки (.. покажи ..)
-
▼▼ Перфоленти с повече от пет пѫтечки
(.. скрий ..)
- Петпѫтечковата перфолента с кодировката, показана по-горѣ, опрѣдѣля петбитовата бариера.
Компютритѣ Минск-2, за които ще стане дума по-долу, сѫ били установени на тази бариера.
Аз не съм работил с компютри на петбитовата бариера, нито с петпѫтечкови перфоленти. - Когато аз започна̨х работа, перфолентитѣ, използвани от индустрията, бѣ̋ха̨ осемпѫтечкови, а компютритѣ бѣ̋ха̨ установени на седембитовата бариера, в 7-битова срѣда̀.
- Едно врѣме - в първитѣ мои години в индустрията -
перфолентитѣ се използваха̨, за да се заређат тестови програми, или - рѣ̋дко - при начално заређане (boot).
- [Q]Въпрос: А сега как се заређат тестови програми на полу-умрѣ̋л харду̌ер?
- [A]Отговор: Сега цѣлия̌т чип се изхвърля и се замѣня с нов.
- Едно врѣме любимата дрѣха на човѣк в течение на годинитѣ се сдобивала с кръпки.
- Сега човѣк си изхвърля скѫсаната дрѣха, колкото и да му е любима, и си купува нова.
- Това е технологичен прогрес.
- Новото производство е достатъчно евтино и не си струва старото да се ремонтира.
- Сега има реална възможност хартията да се изхвърли от информационнитѣ технологии.
- Пластика, имплантирани чипове - какво му трѣ̋бва на човѣк ..
- Даже любовни писма на хартия вече нѣ̋ма.
- Лично аз имам богат опит с перфокарти, а не толкова с перфоленти.
- Но перфокартитѣ сѫ извън обхватът на този разказ.
- (.. скрий ги 8-пѫтечковитѣ перфоленти ..) (.. скрий я̨ кодировката на петпѫтечковитѣ перфоленти ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- Петпѫтечковата перфолента с кодировката, показана по-горѣ, опрѣдѣля петбитовата бариера.
- ◄► (.. скрий я̨ кодировката на петпѫтечковитѣ перфоленти ..) (.. свий я̨ ..) (.. разгъни я̨ ..) (.. скрий го мина̨лото незапомнено ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Компютритѣ Минск-2 - в далечното мина̨ло на съвѣтската индустрия (.. покажи ..) (.. разгъна̨то ..) .. към началото ..
-
▼▼ Компютритѣ Минск-2 - в далечното мина̨ло на съвѣтската индустрия
(.. скрий ..)
(.. свий ..)
(.. разгъни ..)
- ►► И какво все пак е стана̨ло с компютритѣ Минск-2 (.. покажи ..)
-
▼▼ И какво все пак е стана̨ло с компютритѣ Минск-2
(.. скрий ..)
- Прѣз сѫщата година, когато в девети клас съм учил кодирането на Минск-2, заводът в град Минск бил спрѣ̋л производството на тѣзи компютри.
- Слѣдващитѣ модели Минск-22 и Минск-32 донѣ̋къдѣ сѫ били програмно съвмѣстими с Минск-2.
- Нѣ̋колко компютъра Минск-32 сѫ били инсталирани и експлоатирани в България.
- При Минск-32 за приложно програмиране се използваше най-вече езикът COBOL.
- Освѣн в град Минск, развойни центрове за компютърна техника в бившия̌т Съвѣтски съюз имаше в още нѣ̋колко града. На първо мѣ̋сто в Москва и в Киев. Но България е била клиент на заводът в Минск.
- Както при всичко остана̨ло, и при компютритѣ съвѣтското производство отстѫпваше на западното - и по качество, и по цѣна, и по всичко.
- В срѣдата на 60-тѣ години в индустрията на Запад голѣ̋м успѣх е постигна̨ла фирмата IBM със своята System/360. Донѣ̋къдѣ била стана̨ла индустриален стандарт, с развит пазар не само за харду̌ер, но и за софту̌ер.
- Във връзка с това в Москва сѫ рѣшили да направя̨т "голѣ̋м скок".
- Издадена е била командата всички стари проекти да се канцелират и всички ресурси да се впрегна̨т в reverse-engineering на IBM System/360 под означението ЕС ЭВМ.
- Повече никакви странни модели със странни архитектури!
- Равняваме се по първитѣ. Крадем от първитѣ.
- Равняваме се по IBM. Крадем от IBM.
- Слѣд години почна̨хме да крадем и от фирмата DEC.
- В reverse-engineering-ът бѣ̋х добър.
- Та това е сложило край на компютритѣ от серията Минск.
- Специалиститѣ от град Минск и тамошния̌т завод успѣшно сѫ се прѣквалифицирали за IBM System/360, пардон за ЕС ЭВМ.
- Само да отбѣлѣжа̨, че независимата държава Бѣлорусия е наслѣдила от бившия̌т Съвѣтски съюз сравнително развита компютърна индустрия.
- По-развита от българската.
- (.. скрий го края̌т на Минск-2 ..) (.. скрий го подраздѣлът за компютритѣ Минск-2 ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Отклонение: Из "дрѣвноститѣ" на българската компютърна индустрия (.. покажи ..)
-
▼▼ Отклонение: Из "дрѣвноститѣ" на българската компютърна индустрия
(.. скрий ..)
- Като студент в университетът и в първитѣ години на професионалната ми кариера съм работил на IBM System/360 (т.е. на ЕС ЭВМ). На изложеното в това отклонение не съм свидѣтел.
- Първо и Второ.
- Първо. В годинитѣ 1960-63 български учени в един екземпляр сѫ разработили компютър Витоша.
- Ето нѣ̋кои фрагментарни свѣдения за него.
- В машинната инструкция се указват адреситѣ не само на операндитѣ, но и на слѣдващата инструкция. Ето защо.
- Оперативната памет (RAMът) е бил[а] реализиран[а] на магнитен барабан.
- Докато централния̌т процесор изпълнява текущата инструкция, барабанът се е завъртѣ̋л и е подмина̨л мѣ̋стото на слѣдващата по разположение инструкция. Затова се налага в машинната команда да се укаже адресът на само на операндитѣ, но и на слѣдващата инструкция за изпълнение.
- Второ.
Прѣз годинитѣ 1967-1971 в софийския̌т ЗИТ (заводът за изчислителна техника) се произвеђали компютри с означение ЗИТ-151,
по лиценз за Facom-230–30 от японската фирма Facom.
- Нѣ̋кои новосъздадени териториални изчислителни центрове, наред със съвѣтскитѣ компютри модѣл Минск-32, били оборудвани и с компютри ЗИТ-151 (Facom).
- Kомпютритѣ ЗИТ-151 (Facom), както и компютритѣ Минск-32, нѣ̋мали дискова памет, т.е. външна енерго-независима (трайна) памет с бърз достѫп. Външната им памет е била на магнитни ленти, a оперативната им памет - на феромагнитни мрѣжички (core: connecting others reaching everyone).
- Производството на ЗИТ-151 е било спрѣ̋но, когато свыше е дошла височайша заповѣд всичкитѣ усилия на компютърнитѣ специалисти в пространството от Бранденбургската врата до Владивосток да се включа̨т в reverse-engineering (разбирай крадене) на продуктовата линия System/360 на фирмата IBM. Не само ЗИТ-151 е бил спрѣ̋н от производство, сѫщото е сполетѣ̋ло и Минск-32, както и ред други съвѣтски разработки.
- Забѣлѣжѣте, че българската компютърна индустрия (а вѣроятно и съвѣтската) е била подтикна̨та към кражби на интелектуална собственост едва с височайшата заповѣд да се слѣдва IBM System/360.
- Прѣз 80-тѣ в Чехословакия бѣ̋ха̨ разработили оригинална операционна система за IBM System/370. Дори фирмата IBM нѣ̋маше такава разработка. Да, като всѣки нов софту̌ер, чешката система бѣ доста бъгава, но другитѣ страни от СИВ можѣхме да помогнем в дебъгването. Нищо такова не стана̨. Чешката система бѣ изхвърлена.
- Неусѣтно стигна̨х до събития, на които съм свидѣтел.
- Общо наблюдение: Както и при всички остана̨ли продукти, компютритѣ западно производство по качество и надѣђност в пѫти надвишаваха̨ компютритѣ съвѣтско производство. Които пък от своя страна по качество и надѣђност надвишаваха̨ компютритѣ българско производство.
- (.. скрий ги дрѣвноститѣ на българската компютърна индустрия ..) (.. скрий го подраздѣлът за компютритѣ Минск-2 ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Пак отклонение: бит и байт (.. покажи ..)
-
▼▼ Пак отклонение: бит и байт
(.. скрий ..)
- В паметта на компютритѣ има битове, много битове.
- Един бит има двѣ състояния.
- Това означава, че в един бит от паметта на компютърът се записва един бит информация.
- Битът е естествено понятие.
- Един бит има двѣ състояния. Тѣ физически мога̨т да имат различно изражение.
- Напримѣр на опрѣдѣлена позиция на перфолентата нѣ̋ма дупка или има дупка.
- Обаче е прието хората да означават двѣтѣ състояния на бит с цифритѣ 0 и 1.
- Най-често се използват не отдѣлни битове, а групи от сѫсѣдни битове, които прѣдставят нѣ̋какво число или код.
- Когато централния̌т процесор чете данни от оперативната памет (от RAMът) или записва там данни, винѫги чете или пише наведнѫж група от сѫсѣдни битове.
- Когато централния̌т процесор чете данни от оперативната памет (от RAMът) или записва там данни, той адресира мѣ̋стото.
- Адресът прѣдставлява число, което обикновено се интерпретира като двоично число без знак.
- Стѫпката на адреситѣ нѣ̋кога бѣше основна част от компютърната архитектура.
- Прѣз колко бита адресът на мѣ̋стото в оперативната памет се промѣня с единица:
- При Минск-2: прѣз 37 бита.
- При ЗИТ-151 (Facom-230): прѣз 10 бита.
- При ИЗОТ-310 (PDP-8): прѣз 12 бита.
- При съврѣменнитѣ компютри тази стѫпка е винѫги осем (8).
- Група от осем сѫсѣдни байта на общ адрес от паметта е била нарѣчена байт (byte).
- Тази архитектурна черта на съврѣменнитѣ компютри се нарича байтова организация.
- Тази мода се е установила вѣроятно заради доминирането на IBM System/360 в момент от мина̨лото.
- У нас понятието байт и компютри с байтова организация се появиха̨ с IBM System/360 и ЕС ЭВМ.
- Компютритѣ Витоша, Минск-2 и ЗИТ-151, за които стана̨ дума, нѣ̋мат байтова организация и понятието байт при тѣ̋х не се използва.
- ◄►
Отклонение_1: Относно мѣркитѣ за количество информация.
- Основната мѣ̋рка за количество информация, зададена от природата, е бит.
- Обикновено скоростта на интернет се мѣри в "Мегабитове на секунда" - MegaBits per second - Mbps.
- Мегабит - MegaBit - това сѫ (1024*1024=)1048576 бита.
- Не се използва байт, понеже отдѣлнитѣ битове от един байт мога̨т да пѫтуват по различни пѫтища из дебритѣ на интернет.
- Осем бита информация прѣдставляват един байт (byte).
- 1024 байта прѣдставляват един килобайт (kilobyte, Kb).
- 1024 килобайта прѣдставляват един мегабайт (megabyte, Mb, голѣ̋м байт).
- 1024 мегабайта прѣдставляват един гигабайт (gigabyte, Gb, гигантски байт).
- 1024 гигабайта прѣдставляват един терабайт (terabyte, Tb, звѣрски байт).
- Основната мѣ̋рка за количество информация, зададена от природата, е бит.
- ►► Отклонение_2: Да обясня̨ терминитѣ 16-битови, 32-битови или 64-битови компютри (.. покажи ..)
-
▼▼ Отклонение_2: Да обясня̨ терминитѣ 16-битови, 32-битови или 64-битови компютри
(.. скрий ..)
- И тъй, компютритѣ сѫ с байтова организация. В паметта им битоветѣ сѫ организирани в байтове.
- В един байт може да се запише число (двоично без знак) от 0 до 255.
- Ако адресът на байт от паметта се съдържаше само в един байт, то щѣше да е възможно да се адресират само 256 байта - твърдѣ малко за почти всѣ̋ко приложение.
- Ето защо за адреси се използват по-голѣми числа (двоични без знак), записани в нѣ̋колко сѫсѣдни байта.
- Ако адресът се съдържа в два сѫсѣдни байта, то компютърът ще може непосрѣдствено да адресира 65536 байта (с двоично беззнаково число међу 0 и 65535).
- Такъв компютър се означава като 16-битов.
- Ако адресът се съдържа в четири сѫсѣдни байта, то компютърът ще може непосрѣдствено да адресира 4294967296 байта или 4 GigaBytes (с двоично беззнаково число међу 0 и 4294967295).
- Такъв компютър се означава като 32-битов.
- Ако адресът се съдържа в осем сѫсѣдни байта, то компютърът ще може да има непосрѣдствен достѫп до адресно пространство с космически размѣри.
- Такъв компютър се означава като 64-битов.
- И тъй, компютърът е с байтова организация и използва за адреси беззнакови двоични числа, разположени в нѣ̋колко сѫсѣдни байта.
- Всѣки от тѣзи нѣ̋колко сѫсѣдни байта, заедно прѣдставляващи беззнаково двоично число, използвано за адрес, всѣки от тѣ̋х си има свой адрес.
- Но адреситѣ им сѫ сѫсѣдни числа. Най-малкото от тѣзи числа се използва за адрес на адресът.
- Адресът на адресът адресира адрес - затова е адрес на адресът. Но това си е адрес, значи е и адрес на байт. Е, този байт каква позиция има в числото, в беззнаковото двоично число, прѣдставляващо адресът?
- Ако това е младшия̌т байт - компютърът е LittleEndian.
- Ако това е старшия̌т байт - компютърът е BigEndian.
- Компютритѣ от серията ЕС ЭВМ (IBM System/360/370) сѫ BigEndian.
- Компютритѣ с архитектури PDP-11 (DEC), VAX (DEC), X86 (Intel) сѫ LittleEndian.
- Характеристиката LittleEndian/BigEndian има значение и при кодировкитѣ, когато различни компютри си обмѣнят кодове, понеже тя се отнася не само до адреситѣ, които сѫ двоични беззнакови числа, но и при всѣ̋какви числа.
- (.. скрий го отклонението за 16-32-64-битовитѣ компютри ..)
- (.. скрий го отклонението за бит и байт ..) (.. свий го ..) (.. разгъни го ..) (.. скрий го подраздѣлът за компютритѣ Минск-2 ..) (.. свий го ..) (.. разгъни го ..)
- ►► Нѣ̋кои свѣдения за компютритѣ Минск-2 (.. покажи ..)
-
▼▼ Нѣ̋кои свѣдения за компютритѣ Минск-2
(.. скрий ..)
- Наврѣмето знаѣх да пиша̨ машинни програми за Минск-2.
- Сега съм забравил. Цѣлта на този текст е да си припомня̨, каквото мога̨.
- Прѣз професионалната си кариера владѣѣх машинния̌т код на IBM/System/360/370, PDP-11 и VAX.
- Но това бѣше прѣз първата половина на професионалната ми кариера.
- Прѣз втората половина на професионалната ми кариера не ми се е налагало да слизам на това ниво.
- Минск-2 бѣше 37-битов компютър.
- Сѫсѣдни 37 бита от паметта образуваха̨ клѣтка (memory cell, ячейка памяти).
- Всѣ̋ка клѣтка си има адрес.
- Адресът прѣдставлява 12-битово двоично число без знак.
- Слѣдователно, адресът прѣдставлява число от 0 до 4095.
- При моделът Минск-22 адресът е 13-битово число от 0 до 8191.
- Слѣдователно, при Минск-2 максималния̌т и реалния̌т размѣр на оперативната памет е 4096 37-битови клѣтки, или общо (4096*37=) 151552 бита, което е 18944 съврѣменни байта, 18.5 килобайта.
- При моделът Минск-22 - двойно.
- Когато с такива адреси работѣха̨ хора - програмисти и кодировчици, един 12-битов адрес се прѣдставяше чрѣз 4-цифрово беззнаково число в осмична система от 0000 до 7777 (което значи от 0 до 4095 десетично).
- И тъй, размѣрът на оперативната памет при Минск-2 в съврѣменни мѣрки е 18 и половина килобайта.
- За сравнение:
- Когато завърших и постѫпих на работа, компютърът, с който си имах работа, имаше оперативната памет 128 килобайта. ЕС ЭВМ (IBM System/360).
- Едно врѣме 32-битовото адресно пространство на VAX (4 гигабайта) ни изглеђаше огромно.
- Личния̌т ми лаптоп, на който пиша̨ това, има 16 гигабайта оперативна памет.
- Друго компютърче, лично мое, пак с нѣ̋колко гигабайта памет, си го нося̨ в џобът и го ползвам като телефонче.
- Свидѣтел съм и на дрѣвнитѣ, и на модернитѣ врѣмена.
- Клѣтката, както писах, прѣдставлява 37 сѫсѣдни бита.
- Разбира се, такава клѣтка можѣше да съдържа 37-битово двоично число със или без знак.
- Компютърът можѣше да извършва операции с такива числа.
- Сѫщо така, една такава клѣтка можѣше да съдържа машинна команда за изпълнение.
- Когато с такива 37-битови числа или машинни команди работѣха̨ хора - програмисти и кодировчици,
една 37-битова клѣтка се прѣдставяше чрѣз 12-цифрово число в осмична система със знак отпрѣд.
- Напримѣр, +100001770200.
- Като двоично число (с фиксирана точка) това е числото 8590454912 в десетичен запис.
- Като машинна команда, тази 37-битова клѣтка инструктира компютърът:
- Да прочете в суматорът съдържанието на клѣтка на адрес 0177 осмично (десетично 127).
- Да прибави към него съдържанието на клѣтка на адрес 0200 осмично (десетично 128).
- Резултатът от суматорът (сумата на двѣтѣ числа) да запише обратно в паметта на адрес 0200 осмично (десетично 128).
- Общия̌т формат на машинната команда при Минск-2 е слѣдния̌т:
- Старшитѣ 7 бита сѫ кодът на операцията.
- Остават 30 бита.
- Слѣдващитѣ 6 бита задават индексния̌т регистър.
- Остават 24 бита.
- Слѣдват двата операнда, всѣки указан с 12-битов адрес.
- Всичкитѣ битове в клѣтката влѣ̋зоха̨ в употрѣба.
- Старшитѣ 7 бита сѫ кодът на операцията.
- Относно индексния̌т регистър.
- Обикновено централния̌т процесор на един компютър има на свое разположение близо до себе си, "на една рѫка разстояние", нѣ̋колко регистъра, съдържащи данни, нужни в текущия̌т момент или пък в непосрѣдственото бѫдеще.
- Броя̌т на тѣзи регистри не може да е много голѣ̋м, понеже програмиращитѣ на машинен език или на асемблер трѣ̋бва да държа̨т тѣзи регистри в човѣшката си памет.
- 16 е прилично число за този брой.
- Ако тѣ сѫ 16, такъв регистър се указва с число от 0 до 15.
- Диапазонът от 0 до 15 е миниатюрно адресно пространство за тѣзи регистри, извън адресното пространство на оперативната памет.
- Оперативната памет е "на един поглед разстояние", по-далече от регистритѣ.
- В компютърът Минск-2 практически има само един такъв регистър - суматорът. Той винѫги се указва неявно и не се нуђае от адрес.
- Той - суматорът - не може да служи за индексен регистър.
- В машинната команда на Минск-2 за адрес на клѣтка от оперативната памет (за адрес на операнд) се задѣлят 12 бита, а за номер на индексен регистър се задѣлят 6 бита.
- Възможнитѣ адреси на клѣтки от паметта осмично сѫ от 0000 до 7777, или десетично от 0 до 4095.
- В 6-тѣ бита, задѣлени за номерът на индексния̌т регистър, може да се запише осмично число от 00 до 77, или десетично от 0 до 63.
- В Минск-2 първитѣ 64 клѣтки от оперативната памет, клѣткитѣ с адреси от 00 до 77 осмично или 0 до 63 десетично, мога̨т да се използват като индексни регистри.
- Адресирането на тѣзи клѣтки с 12-битов адрес на операнд си остава възможно.
- В Минск-22 като индексни регистри мога̨т да се използват само първитѣ 16 клѣтки от паметта.
- За адресирането им сѫ достатъчни 4 бита: от 00 до 17 осмично или от 0 до 15 десетично.
- В Минск-22 за всѣки от двата операнда се взема един бит и се слага като старши бит на адресът на операндът.
- Така в Минск-22 адреситѣ на операндитѣ стават 13-битови, което позволява максимален размѣр на оперативната памет 8192 37-битови клѣтки.
- Как в Минск-2 се използва индексния̌т регистър.
- От неговитѣ 37 бита, само 24-тѣ бита, разположени на позиция на адрес на операнд, се използват.
- Остана̨литѣ битове трѣ̋бва да сѫ нули или се приемат за нули.
- Съдържанието на индексния̌т регистър се добавя към машинната команда.
- По този начин адреситѣ на двата операнда мога̨т да бѫда̨т модифицирани.
- Тази техника е необходима при програмиране на цикли.
- Помня̨, че в архитектурата IBM/System/360/370 (ЕС ЭВМ) да се укаже номер 0 (нула) за индексен или за базисен регистър означава да не се използва такъв регистър.
- Не помня̨ дали подобно правило имаше и при Минск-2.
- Заключение: Колко първобитно е било машинното програмиране за Минск-2.
- В девети клас никой не ни е учил към какъв интерфейс да се придържаме при извикване на подпрограма.
- Явно, при Минск-2 човѣк сам е трѣ̋бвало да си разработи такъв интерфейс.
- За сравнение, при IBM/System/360/370 (ЕС ЭВМ) и при всички слѣдващи компютърни архитектури, ако не знаеш този интерфейс, значи не владѣеш машинното програмиране.
- Изключително трудно е програмата да се направи relocatable.
- Слѣдващитѣ компютърни архитектури прѣдоставят такива възможности.
- Сега практически всѣки компилатор произвеђа позиционно-независим код (PIC: position-independent code).
- Истински стек (stack) нѣ̋маше и в архитектурата IBM/System/360/370 (ЕС ЭВМ).
- Не е оправдано в Минск-2 да очакваме улеснения за stack.
- Има ли смисъл изобщо да се говори за sharable-програми, понеже нѣ̋ма много нишки (threads), нѣ̋ма много процеси, нѣ̋ма много пoтрѣбители.
- Изключително трудно е програмата да се направи reentrant.
- В частност, изключително трудно е да се програмира рекурсия.
- Чудя̨ се дали за машинитѣ Минск е имало компилатор на Алгол.
- Защо в единадесети клас учихме Алгол?
- Експлоатацията на компютритѣ Минск-32 у нас се е основавала на Кобол.
- И послѣдно: нѣ̋мам прѣдстава каква дѫлбочина на софту̌ерът е била достигна̨та при Минск-2.
- (.. скрий ги свѣденията за компютритѣ Минск-2 ..) (.. скрий го подраздѣлът за компютритѣ Минск-2 ..) (.. свий го ..) (.. разгъни го ..)
- ◄► (.. скрий ги компютритѣ Минск-2 ..) (.. свий ги ..) (.. разгъни ги ..) (.. скрий го мина̨лото незапомнено ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
-
►► References: прѣпратки
(.. покажи ги ..)
-
▼▼ References: прѣпратки
(.. скрий ги ..)
(.. скрий го мина̨лото незапомнено ..)
(.. свий го ..)
(.. разгъни го ..)
- christotamarin.blogspot.com: 7-битовата срѣда̀
- christotamarin.blogspot.com: The JCUKEN keyboard layout
- christotamarin.blogspot.com: 7-битовата срѣда̀
- christotamarin.blogspot.com: The JCUKEN keyboard layout
- christotamarin.blogspot.com: 7-битовата среда̀
- christotamarin.blogspot.com: The JCUKEN keyboard layout
- christotamarin.blogspot.com: 7-битовата среда̀
- christotamarin.blogspot.com: The JCUKEN keyboard layout
- christotamarin.blogspot.com: 7-bitovata sredà
- christotamarin.blogspot.com: The JCUKEN keyboard layout
- christotamarin.blogspot.com: 7-bitovata sredà
- christotamarin.blogspot.com: The JCUKEN keyboard layout
- wikipedia: Baudot code#ITA2
- wikipedia: МТК-2
- wikipedia: Punched tape
- Виртуальный компьютерный музей: Серия ЭВМ «Минск»
- Виртуальный компьютерный музей: Электронная цифровая вычислительная машина Минск-2
- ◄► (.. скрий я̨ първата бесѣда ..) (.. свий я̨ ..) (.. посвий или поразгъни ..) (.. разгъни я̨ ..) .. към началото ..
►► 3. За компютритѣ полиномиално (.. покажи я̨ втората бесѣда ..) (.. разгъна̨то ..) .. към началото ..
- По споменитѣ ми от 11-ти клас, 1971..72.
- Иска ми се да си докажа̨, че сега не съм по-тѫп, отколкото съм бил тогава.
- Заглавието на тази бесѣда го сложих като заглавие на цѣлия̌т този сборник с бесѣди.
▼▼ 3. За компютритѣ полиномиално (.. скрий я̨ втората бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Постановка на задачата (.. покажи го прѣдговорът на бесѣдата ..) (.. покажи го разгъна̨то ..)
-
▼▼
Постановка на задачата
(.. скрий го прѣдговорът на бесѣдата ..)
(.. свий го ..)
(.. разгъни го ..)
- ►► Срѣдношколски спомени (.. покажи ..)
-
▼▼
Срѣдношколски спомени
(.. скрий ..)
- Завършил съм гимназия (11-ти клас) прѣз 1972 със специалност "изчислител-кодировчик".
- Съученицитѣ ми от сѫсѣдната "Г" паралелка завършваха̨ като шофıори.
- В деня̨т на навършване на пълнолѣтив всѣки от тѣ̋х можѣше да отиде да си я̨ вземе шофıорската книжка.
- В 11-ти клас по прѣдмѣтът за компютърна подготовка (АСМ) изучавахме езикът за програмиране Algol-60.
- Компилатор от Algol-60 не съм виђал.
- Езикът се използваше за публикуване на алгоритми,
- което значи, че аз съм го използвал по прѣдназначение.
- В Algol-60 имаше странно прѣдаване на параметритѣ към подпрограмитѣ.
- А това бѣше трудно за реализация.
- Как да е. Макар езикът Algol-60 да не се използваше за реално програмиране, синтаксисът му е повлиял на много други компютърни езици (PL/I, Pascal, C, Java, JavaScript, ..).
- Написах програма на Algol-60 за намиране на реалнитѣ корени на полином с реални коефициенти.
- Учителя̌т ни по математика я̨ прати в нѣ̋какво списание и май я̨ публикуваха̨.
- Но тогава тя не бѣше тествана.
- (.. скрий ги срѣдношколскитѣ ми спомени ..) (.. скрий го прѣдговорът на втората бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Завършил съм гимназия (11-ти клас) прѣз 1972 със специалност "изчислител-кодировчик".
- ►► Спомен от около 1980 (.. покажи ..)
-
▼▼
Спомен от около 1980
(.. скрий ..)
- Когато прѣз 1979 постѫпих на работа, по едно врѣме получих неограничен достѫп до компютър ЕС-1020 (равностоен с младши модел на IBM/360).
- Рѣших да не стоя̨ без работа, а да изтествам алгоритъмът на програмата за намирането на реалнитѣ корени на полином с реални коефициенти, която бѣ̋х написал като ученик в 11-ти клас на езикът Algol-60.
- Алгоритъмът го помнѣх.
- Написах програмата на езикът PL/I.
- Наложи се да симулирам рекурсията.
- Да, програмата работѣше.
- Но тестването ӥ бѣше повърхностно.
- Нѣ̋мах врѣме за повече.
- (.. скрий го споменът ми от около 1980 ..) (.. скрий го прѣдговорът на втората бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Като пенсионер се връщам към споменитѣ си отпрѣди десетилѣтия (.. покажи ..)
-
▼▼
Като пенсионер се връщам към споменитѣ си отпрѣди десетилѣтия
(.. скрий ..)
- Дал ми сега Господ много врѣме.
- Мога̨ да се върна̨ към задачата за намирането на реалнитѣ корени на полином с реални коефициенти.
- Имам врѣме за обстойно тестване.
- Имам врѣме да разработя̨ и срѣда̀ за тестване.
- Технологиитѣ много напрѣдна̨ха̨.
- Мога̨ да пиша̨ на език като JavaScript и "програмата да се публикува за всенародно тестване".
- Не си поставям за цѣл да гоня̨ най-мощното и най-напрѣдничавото.
- Има вѣроятно срѣдства за чертане на графики, което би могло добрѣ да илюстрира бесѣдата.
- Но все пак, софту̌ерът, който ползвам, трѣ̋бва да ми е лесно достѫпен, да го има и на моето лаптопче, и на почти всѣ̋ко друго компютърче - лаптопче, таблетче или смартфонче.
- Като пенсионер нѣ̋мам програмистки достѫп до сървър.
- Затова - JavaScript.
- (.. скрий го пенсионерското ми ежедневие ..) (.. скрий го прѣдговорът на втората бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ◄►
Намирането на реалнитѣ корени на полином с реални коефициенти -
- това е задачата.
- ►► Задачата е математическа и алгоритъмът се основава на математиката (.. покажи ..)
-
▼▼
Задачата е математическа и алгоритъмът се основава на математиката
(.. скрий ..)
- Нѣ̋ма да изнасям урок по математика.
- Нищо нѣ̋ма и да доказвам тука.
- Софту̌ер се тества, не се доказва.
- Но нѣ̋кои нѣща - основанията за алгоритъмът - трѣ̋бва да се напиша̨т.
- Нека аргументът на полиномът, както обикновено, да означаваме с буквата x.
- Ако x0 е корен на полиномът (на многочлѣнът), тогава за стойност на аргументът x0
стойността на полиномът е нула (0).
Това е дефиниция на корен на полином. - Ако x0 е корен на полиномът (на многочлѣнът), тогава биномът (двучлѣнът) (x - x0) е дѣлител на полиномът.
- Коренът на полиномът си има своята кратност.
- Ако x0 е двукратен корен на полиномът, тогава (x - x0)2 е негов дѣлител.
- Ако x0 е трикратен корен на полиномът, тогава (x - x0)3 е негов дѣлител.
- Без ограничение на общността можем да считаме, че старшия̌т коефициент на полиномът е положителен.
- Ако е отрицателен, ще го умножим полиномът по -1 и ще получим полином с положителен старши коефициент и със сѫщитѣ корени.
- Полиномът е гладка непрѣкѫсна̨та функция.
- Щом старшия̌т коефициент на полиномът е положителен, то той клони към +∞, когато аргументът клони към +∞.
- Ако при нѣ̋каква стойност на аргументът x1 стойността на полиномът е отрицателна, то нѣ̋къде в интервалът от x1 до +∞ графиката му ще прѣсѣче абсцисната ос, тоест нѣ̋къде в интервалът от x1 до +∞ сѫществува поне един корен на полиномът.
- Щом старшия̌т коефициент на полиномът е положителен, когато аргументът клони към −∞,
полиномитѣ от нечетна степен клоня̨т към −∞, а
полиномитѣ от четна степен - към +∞.
- Ако при нѣ̋каква стойност на аргументът x1 стойността на полином от четна степен е отрицателна, то нѣ̋къде в интервалът от −∞ до x1 сѫществува поне един корен.
- Ако при нѣ̋каква стойност на аргументът x1 стойността на полином от нечетна степен е положителна, то нѣ̋къде в интервалът от −∞ до x1 сѫществува поне един корен.
- Ясно е, че полиномът се разглеђа като функция на аргументът си.
- И като функция той има производна.
- Производната на полином е пак полином, но с една степен по-ниска.
- Ако x0 е двукратен корен на полиномът, тогава x0 е корен и на производната.
- Ако x0 е трикратен корен на полиномът, тогава x0 е корен и на производната и на нейната производна (тоест на първата и на втората производна).
- Полиномът е гладка непрѣкѫсна̨та функция.
- Ако x0 е корен на производната, тогава при тази стойност на аргументът x0 самия̌т полином има или локален минимум, или локален максимум, или инфлексна точка.
- Ако x1 е най-малкия̌т корен на производната, тогава в отворения̌т интервал от −∞ до x1 сѫществува най-много един корен на полиномът.
- Ако x2 е най-голѣмия̌т корен на производната, тогава в отворения̌т интервал от x2 до +∞ сѫществува най-много един корен на полиномът.
- Ако x1 и x2 сѫ два послѣдователни корени на производната, тогава в отворения̌т интервал от x1 до x2 сѫществува най-много един корен на полиномът.
- (.. скрий ги математическитѣ основи на алгоритъмът ..) (.. скрий го прѣдговорът на втората бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Самия̌т алгоритъм (.. покажи ..)
-
▼▼
Самия̌т алгоритъм е рекурсивен.
(.. скрий ..)
- Реалнитѣ корени на полиномът се намират, слѣд като сме намѣрили реалнитѣ корени на производната му.
- Производната на един полином пак е полином, но от по-ниска степен.
- Коренът на полином от първа степен се намира елементарно.
- Във всѣки един от интервалитѣ, опрѣдѣлени от коренитѣ на производната, може да има най-много един корен.
- Дали има или нѣ̋ма - това се опрѣдѣля от стойноститѣ на полиномът в краищата на интервалът.
- Ако бѫде опрѣдѣлено, че в интервалът има корен, интервалът се дѣли на два по-малки интервала, и се опрѣдѣля в кой от тѣ̋х е коренът.
- Ако интервалът, за който знаем, че съдържа корен, стане достатъчно малък, това значи, че сме го намѣрили коренът.
- Колко малък да стане интервалът?
Каквато точност на резултатът ни е нужна. - (.. скрий го алгоритъмът ..) (.. скрий го прѣдговорът на втората бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Аналогичната задача в полето на комплекснитѣ числа (.. покажи ..)
-
▼▼
Аналогичната задача в полето на комплекснитѣ числа
(.. скрий ..)
- За обобщението в полето на комплекснитѣ числа може да се докаже слѣдното:
- Един полином от n-та степен с коефициенти от полето на комплекснитѣ числа има точно n корена в полето на комплекснитѣ числа, като всѣки корен се брои според кратността си.
- Както и при реалнитѣ числа,
- ако комплексното число x0 е корен на полиномът (на многочлѣнът), тогава биномът (двучлѣнът) (x - x0) е дѣлител на полиномът.
- ако комплексното число x0 е двукратен корен на полиномът, тогава (x - x0)2 е дѣлител на полиномът.
- Не съм се занимавал със задачата за намирането на коренитѣ на полином в полето на комплекснитѣ числа.
- И тази бесѣда нѣ̋ма нищо общо с комплекснитѣ числа.
- От теорията на комплекснитѣ числа се ползва само резултатът, че коренитѣ на полином от n-та степен сѫ точно n на брой.
- Ако се ограничим до полето на реалнитѣ числа, както правя̨ в тази бесѣда, то твърдението се изказва така:
- Един полином от n-та степен с реални коефициенти има най-много n реални корена, като всѣки корен се брои според кратността си.
- (.. скрий ги комплекснитѣ числа ..) (.. скрий го прѣдговорът на втората бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- За обобщението в полето на комплекснитѣ числа може да се докаже слѣдното:
- ◄► В бесѣдата сѫ включени и двѣ отклонения от темата.
- ◄► (.. скрий го прѣдговорът на втората бесѣда ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ втората бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Полиноми с реални коефициенти (.. покажи го въведението за полиномитѣ ..) (.. покажи го разгъна̨то ..)
-
▼▼
Полиноми с реални коефициенти
(.. скрий го въведението за полиномитѣ ..)
(.. свий го ..)
(.. разгъни го ..)
- ◄► В този раздѣл се демонстрира и тества
въвеђането на полином.
- Този раздѣл е стѫпка към крайната цѣл - детайлно тестване на програмата за намиране на реалнитѣ корени на полином с реални коефициенти.
- ►► Що е то полином (.. покажи ..)
-
▼▼
Що е то полином
(.. скрий ..)
- Този подраздѣл нѣ̋ма да бѫде урок по математика, нито урок по алгебра.
- Цѣлта ми е само да се уточня̨т понятията и терминитѣ.
- Ако не помните от срѣдното училище какво е това полином, наричано още многочлѣн, откажѣте се.
- Ако не сте учили за комплексни числа, то за Вас всички числа сѫ реални и понятието полином с реални коефициенти означава просто полином.
- Полиномът е функция с един аргумент.
- Аргументът се означава с латинска буква, обикновено буквата x.
- В математическата литература е прието аргументитѣ да се означават с нѣ̋коя от послѣднитѣ букви на латинската азбука, а първитѣ букви се използват за коефициентитѣ, ако тѣ сѫщо сѫ промѣнливи.
- В тази бесѣда нѣ̋ма да става дума за полиноми с промѣнливи коефициенти.
- Един полином, наричан още многочлѣн, прѣдставлява сума (сбор) от едночлѣни.
- А пък един едночлѣн прѣдставлява
аргументът на нѣ̋каква степен, умножен по коефициент.
- Коефициентът е число, в случая̌т реално число.
- Степента е цѣ̋ло неотрицателно число.
- Ако тя е нула, едночлѣнът се нарича свободен члѣн.
- Едночлѣнитѣ (члѣноветѣ на многочлѣнът) с нулеви коефициенти обикновено не се пиша̨т.
- Но присѫтстват при избраното вѫтрешно прѣдставяне в компютърът.
- При прѣдставянето на полиномът (многочлѣнът), члѣноветѣ му (едночлѣнитѣ) обикновено се подређат по намаляване на степента си.
- Едночлѣнитѣ от една и сѫща степен се събират е едни члѣн.
- Свободния̌т члѣн - този с аргумент на нулева степен - е послѣден.
- Първия̌т члѣн с ненулев коефициент - този с най-високата степен на аргументът - е старши члѣн.
- Коефициентът му е старши коефициент на полиномът (на многочлѣнът).
- Степента му става степен на полиномът.
- (.. скрий що е то полином ..) (.. скрий го въведението за полиномитѣ ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
-
Буква за аргументът: - ►► Как да въвеђаме полином (.. покажи ги правилата ..)
-
▼▼
Как да въвеђаме полином
(.. скрий ги правилата ..)
- По-горѣ в този раздѣл, при въвеђането на полином с реални коефициенти, в сила сѫ слѣднитѣ правила и свободи:
- Шпации (интервали, space characters) сѫ допустими навсѣ̋къдѣ, освѣн вѫтрѣ в числата и међу двѣтѣ звѣздички ** на знакът за степенуване.
- Полиномът (многочлѣнът) се въвеђа като сума от едночлѣни.
- Може и да е съставен само от един члѣн.
- Не се изисква подредба на съставящитѣ едночлѣни по степен.
Програмата ще ги подреди. - Разрѣшава се въвеђане на нѣ̋колко едночлѣна от една и сѫща степен.
Програмата ще ги обедини, слѣд като сумира коефициентитѣ им. - Едночлѣнът започва с коефициентът си.
Коефициентът може да се пропусне, ако е равен на единица. - Слѣд коефициентът на едночлѣнът, се въвеђа буквата за аргументът.
- Тя може да се пропусне, ако степента на едночлѣнът е нула (т.е. ако това е свободен члѣн).
- Међу коефициентът и аргументът, ако и двѣтѣ присѫтстват, може да се сложи звѣздичка * като знак за умножение.
- Но звѣздичката може да се пропусне.
- Слѣд буквата за аргументът като цѣ̋ло число се пише степента на едночлѣнът.
- Степента може да се пропусне, ако е единица.
- Међу буквата за аргументът и степента, ако и двѣтѣ присѫтстват,
мога̨т да се сложа̨т двѣ звѣздички ** като знак за степенуване.
Но знакът за степенуване може да се изпусне.
- Примѣри за едночлѣни от нулева степен:
5*x**0 1024*x**0 3.14*x**0 2.56*x**0 -1*x**0 -100*x**0 5x**0 1024x**0 3.14x**0 2.56x**0 -1x**0 -100x**0 5x**0 1024x**0 3.14x**0 2.56x**0 -x**0 -100x**0 5*x0 1024*x0 3.14*x0 2.56*x0 -1*x0 -100*x0 5x0 1024x0 3.14x0 2.56x0 -1x0 -100x0 5x0 1024x0 3.14x0 2.56x0 -x0 -100x0 5 1024 3.14 2.56 -1 -100 - Примѣри за едночлѣни от първа степен:
1*x**1 1024*x**1 3.14*x**1 2.56*x**1 -1*x**1 -100*x**1 1x**1 1024x**1 3.14x**1 2.56x**1 -1x**1 -100x**1 x**1 1024x**1 3.14x**1 2.56x**1 -x**1 -100x**1 1*x1 1024*x1 3.14*x1 2.56*x1 -1*x1 -100*x1 1x1 1024x1 3.14x1 2.56x1 -1x1 -100x1 x1 1024x1 3.14x1 2.56x1 -x1 -100x1 1*x 1024*x 3.14*x 2.56*x -1*x -100*x 1x 1024x 3.14x 2.56x -1x -100x x 1024x 3.14x 2.56x -x -100x - Међу едночлѣнитѣ, съставящи въвеђания̌т полином, се слага само един знак + (плюс) или - (минус).
- Прѣд първия̌т едночлѣн може да се сложи знак - (минус).
- Примѣр:
1*x**2 - 2*x**1 - 3*x**1 + 6*x**0 -2*x**3 + 3*x**2 - 1*x**1 + 7 1*x**2 - 5*x**1 + 6*x**0 -2x3 + 3x2 - x + 7 x2 - 5x + 6 2x3 - 3x2 + x - 7 - Забѣлѣжѣте, че за цѣлитѣ на основната задача програмата ще осигури положителен старши коефициент на полиномът.
- Ако при въвеђането той е бил отрицателен, програмата ще умножи всички коефициенти по -1.
- Ако бѫде въведен полином от втора или от по-висока степен, ще се появи бутон
.
Слѣдващия̌т раздѣл е за умножението на полиноми.
Бутонът ще Ви прати там. - Страничен ефект. Жълтото поле горѣ - там, къдѣто се въвеђа полиномът,
може да се използва като прост калкулатор.
- Там могат да се събират и извађат числа.
- Програмата възприема всѣ̋ко въведено число като коефициент на едночлѣн от нулева степен и сумира тѣзи коефициенти.
- (.. скрий ги правилата ..) (.. скрий го въведението за полиномитѣ ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
-
►►
.. Покажи код на JavaScript ..
-
▼▼
Код на JavaScript
(.. скрий го кодът ..)
- Класът RealPolynom е разширение на Array.
Обект от класът RealPolynom е прѣди всичко Array, масив от числа.- Числата от масивът сѫ коефициентитѣ на полиномът.
- Броя̌т им е с единица по-голѣ̋м от степента на полиномът.
- Елементът [0] е старшия̌т коефициент - коефициентът прѣд най-високата степен.
- Послѣдния̌т елемент е коефициентът прѣд нулевата степен (свободния̌т члѣн)
- Всички нулеви коефициенти присѫтстват в масивът на мѣстата си, макар обикновено да не се показват.
-
class RealPolynom extends Array { argLetter = "x"; toString(raw) { var n = this.length; if(!n) { return ""; } if((n == 1) && !this[0]) { return "0"; } var t = ""; for(let j = 0; j < this.length; j++) { n--; if ( ! this[j] ) { continue; } if ( ( this[j] > 0 ) && j ) { t += "+" } t += this[j].toPrecision(10)*1; //.toString(); if (raw) { if ( n > 0 ) { t += this.argLetter; } if ( n > 1 ) { t += n; } } else { if ( n > 0 ) { t += "*<"+"b>"; t += this.argLetter; t += "<"+"/b>"; } if ( n > 1 ) { t += "<"+"sup>" t += n; t += "<"+"/sup>" } } } return t; } // toString doitRegular(positive) // Ensure non-zero/positive first coefficient { if (this.length == 1) { if(typeof(this[0]) != "number") { this.splice(0); } return; } if (this.length == 0) { return; } var m = 1; var t = 0; for(let j = 0; j < this.length; j++ ) { if(typeof(this[j]) != "number") { continue; } if ( t > 0 ) { } else if ( this[j] == 0 ) { continue; } else if(( this[j] < 0 ) && ((typeof(positive) != "boolean") || positive)) { m = -1; } else { } this[t] = this[j] * m; t++; } if ( t > 0 ) { this.splice(t); } } // doitRegular getDegree() // Returns -1 if not a regular RealPolynom { for(let j = 0; j < this.length; j++) { if(isNaN(this[j]) || (typeof(this[j]) != "number")) { return -1; } } if (this[0] == 0) { return -1; } return this.length - 1; } // getDegree }
- Методът toString() показва полиномът в обичаен вид.
Члѣноветѣ с нулев коефициент се изпускат.
Аргументът в нулева степен не се показва.
За да може кодът на този метод да се покаже тука, налага се html-таговетѣ да се декомпозират. - Методът getDegree() провѣрява дали всички елементи от масивът сѫ числа.
Ако не, връща -1.
Ако старшия̌т коефициент this[0] е нула, пак връща -1 като резултат.
Иначе дава степента на полиномът - броя̌т на числата без 1. - Методът doitRegular() осигурява старшия̌т коефициент да е положително число.
За тази цѣл може да бѫде намален броя̌т на числата.
За тази цѣл всички коефициенти може да бѫда̨т умножени по -1. - Програмитѣ, които приемат входът от екранът и прѣобразуват въведеното в обект от клас RealPolynom, не се показват.
- (.. скрий го кодът на JavaScript ..) (.. скрий го въведението за полиномитѣ ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Класът RealPolynom е разширение на Array.
- ◄► Този раздѣл от бесѣдата може да се пропусне.
- Той е просто послѣдователна стѫпка към крайната цѣл.
- Всичко от този раздѣл се повтаря в слѣдващитѣ раздѣли.
- Освѣн калкулаторът за събиране и извађане - той работи само тука.
- ◄► (.. скрий го въведението за полиномитѣ ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ втората бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ◄► В този раздѣл се демонстрира и тества
въвеђането на полином.
- ►► Полиноми-множители (.. покажи го умножението на полиноми ..) (.. покажи го разгъна̨то ..)
-
▼▼
Полиноми-множители
(.. скрий го умножението на полиноми ..)
(.. свий го ..)
(.. разгъни го ..)
- ◄► Този раздѣл от бесѣдата може да се пропусне.
- Той е просто послѣдователна стѫпка към крайната цѣл.
- Всичко от този раздѣл се повтаря в слѣдващия̌т раздѣл.
- ►► Защо в темата се намѣсва умножение на полиноми? (.. покажи ..)
-
▼▼
Защо в темата се намѣсва умножение на полиноми?
(.. скрий ..)
- Този раздѣл е стѫпка към крайната цѣл - детайлно тестване на програмата за намиране на реалнитѣ корени на полином с реални коефициенти.
- Подготвяме полином, който да дадем на тази програма, че тя да му намѣри коренитѣ.
- Или трѣ̋бва прѣдварително да знаем кои сѫ тѫрсенитѣ корени, ..
- или за всѣки намѣрен от програмата корен трѣ̋бва да можем да провѣрим дали наистина е корен на полиномът.
- Намирането на реалнитѣ коренитѣ на зададен полином с реални коефициенти е в слѣдващия̌т раздѣл.
- В по-слѣдващия̌т раздѣл ще може да се провѣри дали намѣренитѣ корени наистина сѫ корени на полиномът.
- А в настоящия̌т раздѣл се показва как да подготвим полином за тестване, такъв че прѣдварително да му знаем коренитѣ.
- Нека буквата за аргументът да е x.
- Полиномът x-5 има еднократен реален корен 5.
- Полиномът x+2 има еднократен реален корен -2.
- Полиномът x има еднократен реален корен 0.
- Ако умножим тритѣ полинома (x-5)*(x+2)*x, произведението им x3-3x2-10x, което е полином от 3-та степен,ще има точно три реални корена 5, 0 и -2.
- Полиномът x има еднократен реален корен 0.
- Полиномът x2 има двукратен корен 0.
- Полиномът x3, който е полином от 3-та степен, има трикратен корен 0.
- Полиномът x-5 има еднократен реален корен 5.
- Произведението на послѣднитѣ два полинома x3*(x-5) е полином от 4-та степен x4-5x3, които има четири корена: веднѫж 5 и три пѫти 0.
- Полиномът от 2-ра степен x2+x+1 нѣ̋ма реални корени, понеже стойноститѣ му сѫ строго положителни.
- Това се виђа, ако се прѣдстави във видът (x+0.5)2+0.75.
- Разбира се, ако свободния̌т члѣн е по-голѣ̋м от 0.25, напримѣр 2, то полиномът x2+x+2 пак нѣ̋ма реални корени.
- Ако за множител се вземе полином от 2-ра или 4-та степен без реални корени, то липсата на реални корени трѣ̋бва да бѫде отчетена в резултатът.
- Един полином примѣрно от 6-та степен има най-много 6 реални корени.
Може да нѣ̋ма и нито един. - Един полином примѣрно от 7-ма степен има най-много 7 реални корени.
Има поне един. Полином от нечетна степен има поне един реален корен.
- Та така: в този раздѣл се демонстрира умножението на полиноми.
- Това ще се ползва, за да се получи полином, реалнитѣ корени на който сѫ извѣстни.
- Функционалността от този раздѣл е повторена в слѣдващия̌т раздѣл.
- Затова този раздѣл може да се пропусне.
- Все пак, получения̌т в този раздѣл полином може да бѫде прѣнесен в слѣдващия̌т раздѣл, за да се тества.
- (.. скрий я̨ тукашната цѣл на умножението на полиноми ..) (.. скрий го умножението на полиноми ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ◄► Ако въведете полином от нулева степен,
- тоест число - константа,
- програмата ще го прѣобразува във бином (полином от първа степен),
- коренът на който е въведеното число.
- Напримѣр, ако въведете 5, все едно че сте въвели x-5.
- Ако буквата за аргументът е x, разбира се.
-
Буква за аргументът: -
►►
.. Покажи кодът на JavaScript ..
-
▼▼
Код на JavaScript
(.. скрий го кодът ..)
-
class RealPolynom extends Array { doitRegular(positive) // Ensure non-zero/positive first coefficient { if (this.length == 1) { if(typeof(this[0]) != "number") { this.splice(0); } return; } if (this.length == 0) { return; } var m = 1; var t = 0; for(let j = 0; j < this.length; j++ ) { if(typeof(this[j]) != "number") { continue; } if ( t > 0 ) { } else if ( this[j] == 0 ) { continue; } else if(( this[j] < 0 ) && ((typeof(positive) != "boolean") || positive)) { m = -1; } else { } this[t] = this[j] * m; t++; } if ( t > 0 ) { this.splice(t); } } // doitRegular getDegree() // Returns -1 if not a regular RealPolynom { for(let j = 0; j < this.length; j++) { if(isNaN(this[j]) || (typeof(this[j]) != "number")) { return -1; } } if (this[0] == 0) { return -1; } return this.length - 1; } // getDegree
multiplyBy(a) { if (!(a instanceof RealPolynom)) { return; } this.doitRegular(); const gth = this.getDegree(); if ( gth < 0 ) { return; } a.doitRegular(); const ga = a.getDegree(); if ( ga < 0 ) { this.splice(0); return; } var th = new RealPolynom; for ( let i = 0; i < this.length; i++ ) { th[i] = this[i]; } for ( let i = 0; i <= (ga+gth); i++ ) { this[i] = 0; } for ( let i = 0; i <= gth; i++ ) { for(let j = 0; j <= ga; j++) { this[i+j] += (th[i]*a[j]); } } } // multiplyBy
} - Програмитѣ, които приемат входът от екранът и извеђат резултатът на екранът, не се показват.
- (.. скрий го кодът на JavaScript ..) (.. скрий го умножението на полиноми ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
-
- ◄► (.. скрий го умножението на полиноми ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ втората бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ◄► Този раздѣл от бесѣдата може да се пропусне.
- ►► Реалнитѣ корени на полином с реални коефициенти (.. покажи как се намират ..) (.. покажи разгъна̨то ..)
-
▼▼
Реалнитѣ корени на полином с реални коефициенти
(.. скрий ги ..)
(.. свий ги ..)
(.. разгъни ги ..)
- ◄► Това е основния̌т раздѣл на бесѣдата.
- Тука се демонстрира и тества програмата за намиране на реалнитѣ корени на полином с реални коефициенти.
- ►► За цѣлитѣ на тестването полиномът може да се въвеђа по множители (.. покажи ..)
-
▼▼
За цѣлитѣ на тестването полиномът може да се въвеђа по множители
(.. скрий ..)
- Подготвяме полином, който да дадем на тази програма, че тя да му намѣри коренитѣ.
- Или трѣ̋бва прѣдварително да знаем кои сѫ тѫрсенитѣ корени, ..
- или за всѣки намѣрен от програмата корен трѣ̋бва да можем да провѣрим дали наистина е корен на полиномът.
- Намирането на реалнитѣ коренитѣ на зададен полином с реални коефициенти е в този раздѣл.
- В слѣдващия̌т раздѣл ще може да се провѣри дали намѣрен корен наистина е корен на полиномът.
- За цѣлта полиномът и прѣсмѣтна̨титѣ в този раздѣл негови корени мога̨т да бѫда̨т прѣнесени в слѣдващия̌т раздѣл за провѣрка.
- А в настоящия̌т раздѣл да видим как да подготвим полином за тестване, такъв че прѣдварително да му знаем коренитѣ.
- Нека буквата за аргументът да е x.
- Полиномът x-5 има еднократен реален корен 5.
- Полиномът x+2 има еднократен реален корен -2.
- Полиномът x има еднократен реален корен 0.
- Ако умножим тритѣ полинома (x-5)*(x+2)*x, произведението им x3-3x2-10x, което е полином от 3-та степен,ще има точно три реални корена 5, 0 и -2.
- Полиномът x има еднократен реален корен 0.
- Полиномът x2 има двукратен корен 0.
- Полиномът x3, който е полином от 3-та степен, има трикратен корен 0.
- Полиномът x-5 има еднократен реален корен 5.
- Произведението на послѣднитѣ два полинома x3*(x-5) е полином от 4-та степен x4-5x3, които има четири корена: веднѫж 5 и три пѫти 0.
- Полиномът от 2-ра степен x2+x+1 нѣ̋ма реални корени, понеже стойноститѣ му сѫ строго положителни.
- Това се виђа, ако се прѣдстави във видът (x+0.5)2+0.75.
- Разбира се, ако свободния̌т члѣн е по-голѣ̋м от 0.25, напримѣр 2, то полиномът x2+x+2 пак нѣ̋ма реални корени.
- Ако за множител се вземе полином от 2-ра или 4-та степен без реални корени, то липсата на реални корени трѣ̋бва да бѫде отчетена в резултатът.
- Един полином примѣрно от 6-та степен има най-много 6 реални корени.
Може да нѣ̋ма и нито един. - Един полином примѣрно от 7-ма степен има най-много 7 реални корени.
Има поне един. Полином от нечетна степен има поне един реален корен.
- (.. скрий го въвеђането на полиномът по множители ..) (.. скрий ги коренитѣ на полином ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
- ◄► Разбира се, можете да въведетѣ цѣлия̌т полином като един множител.
- ◄► Ако въведете полином от нулева степен,
- тоест число - константа,
- програмата ще го прѣобразува във бином (полином от първа степен),
- коренът на който е въведеното число.
- Напримѣр, ако въведете 5, все едно че сте въвели x-5.
- Ако буквата за аргументът е x, разбира се.
-
Намиране на реалнитѣ корени на полином с реални коефициенти Epsylon: Буква за аргументът: -
►►
.. Покажи го кодът на програмата ..
-
▼▼
Кодът на програмата
(.. скрий го кодът ..)
- Главната програма е getRoots().
- Тя намира реалнитѣ корени на полиномът и ги връща в Array (масив), подредени по голѣмина.
- Ако полиномът нѣ̋ма реални корени, резултатът е празен масив.
- Алгоритъмът е рекурсивен. JavaScript поддържа рекурсия, както и повечето съврѣменни компютърни езици.
- Ако става дума за полином от първа степен, програмата веднага прѣсмѣ̋та коренът и завършва работата си.
- Иначе с помощта на методът getDerivative() се построява производната на полиномът.
- Производната е сѫщо полином, степента на който е по-ниска с единица.
- За тази производна рекурсивно се извиква главната програма е getRoots(),
- за да се намѣря̨т реалнитѣ корени на производната.
- Продължаваме алгоритъмът при условие, че реалнитѣ корени на производната сѫ намѣрени.
- Ако производната нѣ̋ма реални корени, то този полином има един реален корен,
- за намирането на който се извиква #getSingleRoot( -∞, +∞ ).
- Методът #getSingleRoot() намира единствен реален корен в зададен интервал, ако такъв корен има.
- Първо, този метод #getSingleRoot() се извиква за интервалът от -∞ до първия̌т реален корен на производната.
- Слѣд това методът #getSingleRoot() се извиква за всѣки интервал међу два послѣдователни реални корени на производната.
- И послѣдно, методът #getSingleRoot() се извиква за интервалът от послѣдния̌т реален корен на производната до +∞.
- Методът getDerivative() построява производната като обект от класът RealPolynomEquation, така че към този обект да може да се приложи getRoots().
- На методът #getSingleRoot() трѣ̋бва да му бѫде зададен интервал, за който да е ясно,
че в него има най-много един реален корен на полиномът.
- Ако в интервалът има реален корен, методът #getSingleRoot() го намира и го връща като число.
- Ако в интервалът нѣ̋ма реален корен, резултатът е NaN (Not a Number).
- Mетодът #getSingleRoot() разглеђа четири случая,
които тука сѫ изброени в ред обратен на този в кодът:
- Краен интервал међу двѣ числа.
- Интервал от -∞ до число.
- Интервал от число до +∞.
- Интервалът от -∞ до +∞.
- Методът #getSingleRoot() се извиква рекурсивно за подинтервали.
- Методът getValue(), който се използва тука, се демонстрира отдѣлно в слѣдващия̌т раздѣл.
- Слѣдва самия̌т код.
-
class RealPolynomEquation extends RealPolynom { static infinityPlus = "+\u221e"; static infinityMinus = "-\u221e"; static epsylon = 0.0001; level = 0; roots = null; derivative = null; parentEq = null;
getDerivative() { this.derivative = new RealPolynomEquation; this.derivative.parentEq = this; this.derivative.level = this.level; this.derivative.level++; var n = this.length; for(let j = 0; j < (this.length-1); j++ ) { n--; this.derivative[j] = this[j] * n; } return this.derivative; } // getDerivative
#isAlmostZero(z) { const ez = RealPolynomEquation.epsylon/2; if (ez < z) { return false; } if((-ez) < z) { return true; } return false; } // #isAlmostZero
#getSingleRoot(a,b) { console.log(this.level+":#getSingleRoot("+a+","+b+") called: "+this[0]+".."+(this.length-1)+".."+this[this.length-1]); if(isNaN(a) && isNaN(b)) { if(this[this.length-1] > 0) { return this.#getSingleRoot(RealPolynomEquation.infinityMinus,0); } if(this[this.length-1] < 0) { return this.#getSingleRoot(0,RealPolynomEquation.infinityPlus); } return 0; } var s = 1; // the step s /= this[0]; if (s < 0.001) { s = 0.001; } else if (s > 1000) { s = 1000; } else { } var c; if(isNaN(b)) { const vba = this.getValue(a); if (this.#isAlmostZero(vba)) { return a; } if ( vba > 0 ) { return NaN; } c = a; var vbc; while(true) { c += s; vbc = this.getValue(c); if(this.#isAlmostZero(vbc)) { return c; } if(vbc > 0) { return this.#getSingleRoot(a,c); } continue; } } const vb = this.getValue(b); if ( this.#isAlmostZero(vb) ) { return b; } if(!isNaN(a)) { } else if(this.length%2==0) // va is negative { if ( vb < 0 ) { return NaN; } c = b; var vac; while(true) { c -= s; vac = this.getValue(c); if(this.#isAlmostZero(vac)) { return c; } if(vac < 0) { return this.#getSingleRoot(c,b); } continue; } } else // va is positive { if ( vb > 0 ) { return NaN; } c = b; var vac; while(true) { c -= s; vac = this.getValue(c); if(this.#isAlmostZero(vac)) { return c; } if(vac > 0) { return this.#getSingleRoot(c,b); } continue; } } const va = this.getValue(a); if ( this.#isAlmostZero(va) ) { return a; } if(((va > 0) && (vb > 0)) || ((va < 0) && (vb < 0))) { return NaN; } const m = (a + b)/2; if(((a < b) && ((b - a) < RealPolynomEquation.epsylon)) || ((a > b) && ((a - b) < RealPolynomEquation.epsylon))) { return m; } const vm = this.getValue(m); if ( this.#isAlmostZero(vm) ) { return m; } if(((vm > 0) && (va < 0)) || ((vm < 0) && (va > 0))) { return this.#getSingleRoot(a,m); } return this.#getSingleRoot(m,b); } // #getSingleRootgetRoots() { this.roots = null; const d = this.getDegree(); if ( d < 1 ) { console.log(this.level+":getRoots() exits: "+this.roots.toString()); return this.roots; } console.log(this.level+":getRoots() called: "+this.toString(true)); this.roots = new Array; if ( d == 1 ) { this.roots[0] = -this[1]; this.roots[0] /= this[0]; console.log(this.level+":getRoots() exits: "+this.roots.toString()); return this.roots; } this.getDerivative(); console.log(this.level+":getRoots() is about to do a recursion: "+this.derivative.toString(true)); const dR = this.derivative.getRoots(); console.log(this.level+":getRoots() back from recursion: "+dR.toString()); var r; if ( dR.length == 0 ) { r = this.#getSingleRoot(RealPolynomEquation.infinityMinus,RealPolynomEquation.infinityPlus); if(!isNaN(r)) { this.roots[0] = r; } console.log(this.level+":getRoots() exits: "+this.roots.toString()); return this.roots; } r = this.#getSingleRoot(RealPolynomEquation.infinityMinus,dR[0]); if(!isNaN(r)) { this.roots[0] = r; } var j = this.roots.length; var i; for ( i = 1; i < dR.length; i++ ) { r = this.#getSingleRoot(dR[i-1],dR[i]); if(!isNaN(r)) { this.roots[j] = r; j++; } } r = this.#getSingleRoot(dR[dR.length-1],RealPolynomEquation.infinityPlus); if(!isNaN(r)) { this.roots[j] = r; } console.log(this.level+":getRoots() exits: "+this.roots.toString()); return this.roots; } // getRoots
} - Надѣ̋вам се на всички устройства резултатитѣ да сѫ поне сходни, ако не идентични.
- Прѣсмѣ̋танията се извършват не на web-server, а локално на Вашето устройство (смартфон, таблет, лаптоп, ..).
- Прѣсмѣ̋танията ги извършва интерпретаторът от JavaScript, който е вграден във Вашия̌т browser.
- Езикът JavaScript е стандартизиран.
- Интерпретаторът от JavaScript ползва стандартна аритметика с плаваща точка.
- Да, алгоритъмът ползва аритметика с плаваща точка.
- Това налага да се обръща внимание на закрѫглянията и приближенията.
- (.. скрий го кодът на програмата ..) (.. скрий ги коренитѣ на полином ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
- Главната програма е getRoots().
- ►► Точност на прѣсмѣ̋танията (.. покажи ..)
-
▼▼
Точност на прѣсмѣ̋танията
(.. скрий ..)
- Не съм се задѫлбочавал в точността на прѣсмѣ̋танията.
- Разчитам на стандартна аритметика с плаваща точка, каквато ползва стандартен интерпретатор от JavaScript.
- Не ползвам специални софту̌ерни библиотеки за математически изчисления.
- Програмата трѣ̋бва да може да работи на всѣ̋ко устройство.
- Все пак, въведен е параметър Epsylon със стойности 0.001, 0.0001, 0.00001 или 0.000001 по избор.
- Сигурно мога̨т да се намѣря̨т примѣри, при които тази програма грѣши.
- Моля̨ да бѫда̨ увѣдомяван, ако намѣрите такива примѣри.
- Аз ще прѣцѣня̨ дали си струва да се поправя програмата.
- (.. скрий я̨ точността на прѣсмѣ̋танията ..) (.. скрий ги коренитѣ на полином ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
- Не съм се задѫлбочавал в точността на прѣсмѣ̋танията.
- ◄► (.. скрий ги коренитѣ на полином ..) (.. свий ги ..) (.. разгъни ги ..) (.. скрий я̨ втората бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ◄► Това е основния̌т раздѣл на бесѣдата.
- ►► Прѣсмѣ̋тане на стойността на полиноми при зададена стойност на аргументът (.. покажи ..) (.. разгъна̨то ..)
-
▼▼
Прѣсмѣ̋тане на стойността на полиноми при зададена стойност на аргументът
(.. скрий ..)
(.. свий ..)
(.. разгъни ..)
- ◄► В този раздѣл именно това се прави:
- Компютърчето смѣ̋та стойността на зададен полином за зададена стойност на аргументът.
- И коефициентитѣ на полиномът, и стойността на аргументът, и получената стойност на полиномът сѫ реални числа.
- Непосрѣдствената цѣл е да може да се провѣри дали намѣрен в прѣдишния̌т раздѣл реален корен на полиномът наистина е корен.
- Непосрѣдствената цѣл е да може да се провѣри дали програмата от прѣдишния̌т раздѣл смѣ̋та вѣ̋рно.
- Ако дадено число наистина е корен на полиномът, то като се замѣсти аргументът с това число, стойността на полиномът трѣ̋бва да е нула.
- Това значи да е корен на полиномът.
- По-нататък, този раздѣл дава повод да се покаже как компютритѣ прѣсмѣ̋тат стойността на полином.
- Това е втората цѣл на бесѣдата, макар да е отклонение от основната цѣл.
- ◄► Първо задайте полиномът.
- Тука полиномът се въвеђа наведнѫж, а не по множители, както в прѣдишния̌т раздѣл.
- Но можете полиномът от прѣдишния̌т раздѣл заедно с намѣренитѣ корени да бѫда̨т прѣнесени в този раздѣл.
- Тука нѣ̋ма смисъл да въвеђате числа-константи.
Тѣ нѣ̋ма да бѫда̨т прѣобразувани в биноми.
- ◄► Послѣ задайте стойност на аргументът.
- Можете да изберете стойността на аргументът између числата, които в прѣдишния̌т раздѣл сѫ били намѣрени като корени на полиномът, ако сѫ били прѣнесени оттам тука.
- Можете и да въведете нѣ̋какво число за стойност на аргументът, слѣд което да натиснете бутонът (не този бутон тука, а оня по-долу при въведеното число).
-
Буква за аргументът: Въведи стойност на аргументът: Избери стойност на аргументът: - ►► Как да въвеђаме полином (.. покажи ги правилата ..)
-
▼▼
Как да въвеђаме полином
(.. скрий ги правилата ..)
- По-горѣ в този раздѣл, при въвеђането на полином с реални коефициенти, в сила сѫ слѣднитѣ правила и свободи:
- Шпации (интервали, space characters) сѫ допустими навсѣ̋къдѣ, освѣн вѫтрѣ в числата и међу двѣтѣ звѣздички ** на знакът за степенуване.
- Полиномът (многочлѣнът) се въвеђа като сума от едночлѣни.
- Може и да е съставен само от един члѣн.
- Не се изисква подредба на съставящитѣ едночлѣни по степен.
Програмата ще ги подреди. - Разрѣшава се въвеђане на нѣ̋колко едночлѣна от една и сѫща степен.
Програмата ще ги обедини, слѣд като сумира коефициентитѣ им. - Едночлѣнът започва с коефициентът си.
Коефициентът може да се пропусне, ако е равен на единица. - Слѣд коефициентът на едночлѣнът, се въвеђа буквата за аргументът.
- Тя може да се пропусне, ако степента на едночлѣнът е нула (т.е. ако това е свободен члѣн).
- Међу коефициентът и аргументът, ако и двѣтѣ присѫтстват, може да се сложи звѣздичка * като знак за умножение.
- Но звѣздичката може да се пропусне.
- Слѣд буквата за аргументът като цѣ̋ло число се пише степента на едночлѣнът.
- Степента може да се пропусне, ако е единица.
- Међу буквата за аргументът и степента, ако и двѣтѣ присѫтстват,
мога̨т да се сложа̨т двѣ звѣздички ** като знак за степенуване.
Но знакът за степенуване може да се изпусне.
- Примѣри за едночлѣни от нулева степен:
5*x**0 1024*x**0 3.14*x**0 2.56*x**0 -1*x**0 -100*x**0 5x**0 1024x**0 3.14x**0 2.56x**0 -1x**0 -100x**0 5x**0 1024x**0 3.14x**0 2.56x**0 -x**0 -100x**0 5*x0 1024*x0 3.14*x0 2.56*x0 -1*x0 -100*x0 5x0 1024x0 3.14x0 2.56x0 -1x0 -100x0 5x0 1024x0 3.14x0 2.56x0 -x0 -100x0 5 1024 3.14 2.56 -1 -100 - Примѣри за едночлѣни от първа степен:
1*x**1 1024*x**1 3.14*x**1 2.56*x**1 -1*x**1 -100*x**1 1x**1 1024x**1 3.14x**1 2.56x**1 -1x**1 -100x**1 x**1 1024x**1 3.14x**1 2.56x**1 -x**1 -100x**1 1*x1 1024*x1 3.14*x1 2.56*x1 -1*x1 -100*x1 1x1 1024x1 3.14x1 2.56x1 -1x1 -100x1 x1 1024x1 3.14x1 2.56x1 -x1 -100x1 1*x 1024*x 3.14*x 2.56*x -1*x -100*x 1x 1024x 3.14x 2.56x -1x -100x x 1024x 3.14x 2.56x -x -100x - Међу едночлѣнитѣ, съставящи въвеђания̌т полином, се слага само един знак + (плюс) или - (минус).
- Прѣд първия̌т едночлѣн може да се сложи знак - (минус).
- Примѣр:
1*x**2 - 2*x**1 - 3*x**1 + 6*x**0 -2*x**3 + 3*x**2 - 1*x**1 + 7 1*x**2 - 5*x**1 + 6*x**0 -2x3 + 3x2 - x + 7 x2 - 5x + 6 2x3 - 3x2 + x - 7 - В този раздѣл нѣ̋ма смисъл да се въвеђа полином от нулева степен, тоест константа.
- (.. скрий ги правилата ..) (.. скрий как се смѣ̋та полином ..) (.. свий ..) (.. разгъни ..) .. към началото ..
-
►►
.. Покажи коментар към кодът на JavaScript ..
class RealPolynom extends Array { getValue(x) { var v = 0; for(let j = 0; j < this.length; j++) { v *= x; v += this[j]; } return v; } // getValue }
-
▼▼
Кодът на JavaScript
(.. скрий го коментарът към кодът ..)
-
class RealPolynom extends Array { getValue(x) { var v = 0; for(let j = 0; j < this.length; j++) { v *= x; v += this[j]; } return v; } // getValue }
- Класът RealPolynom е разширение на Array.
Обект от класът RealPolynom е прѣди всичко Array, масив от числа.- Числата от масивът сѫ коефициентитѣ на полиномът.
- Броя̌т им е с единица по-голѣ̋м от степента на полиномът.
- Елементът [0] е старшия̌т коефициент - коефициентът прѣд най-високата степен.
- Послѣдния̌т елемент е коефициентът прѣд нулевата степен (свободния̌т члѣн)
- Всички нулеви коефициенти присѫтстват в масивът на мѣстата си, макар обикновено да не се показват.
- Тази програмка е на компютърния̌т език JavaScript.
- Тя би изглеђала по сѫщия̌т начин на Java, C, C++, C#, и по подобен начин на Алгол и PL/I.
- (.. скрий го коментарът към кодът на JavaScript ..) (.. скрий как се смѣ̋та полином ..) (.. свий ..) (.. разгъни ..) .. към началото ..
-
- ►► Бѣлѣжки по тукашния̌т алгоритъм (.. покажи ..)
-
▼▼
Бѣлѣжки по тукашния̌т алгоритъм
(.. скрий ..)
- Става дума за алгоритъмът за прѣсмѣ̋тане на стойността на полином за зададена стойност на аргументът.
- Съвѣт към кандидати за позиция на компютърен програмист.
- На интервюто за работа може да поискат от Вас да напишете малка програмка подобна на горѣ-показаната.
- Ако става дума за сѫщата задача и ако Вие кодирате нѣ̋какъв алгоритъм, при който се прѣсмѣ̋тат степенитѣ на аргументът, това може да основание да Ви отхвърля̨т.
- Слѣдва словесно описание на алгоритъмът за тѣзи, които не умѣя̨т да разчитат компютърен код.
- Коефициентитѣ на полиномът се наређат в масив по старшинство.
Пръв е старшия̌т коефициент, свободния̌т члѣн е послѣден. - Дори нѣ̋кой от коефициентитѣ да е нула - крѫгла нула, той заема мѣ̋стото си в масивът и алгоритъмът не може да го изпусне.
В частност, нулев свободен члѣн сѫщо заема мѣ̋стото си (послѣдното мѣ̋сто) в масивът. - Алгоритъмът започва с резултат 0 (нула).
- Алгоритъмът прѣминава послѣдователно прѣз всички коефициенти на полиномът, започвайки от старшия̌т и завършващи със свободния̌т члѣн.
- Поредния̌т коефициент се добавя към резултатът.
- Ако има слѣдващ коефициент, резултатът се умножава по зададената стойност на аргументът, прѣди да се прѣмине към слѣдващия̌т коефициент.
- Коефициентитѣ на полиномът се наређат в масив по старшинство.
- Примѣри.
- Полиномът e
1*x5 - 5*x4 + 6*x3 - 1*x2 + 5*x - 6
а стойността на аргументът x е 2 .
- Алгоритъмът слѣдва формулата:
(((((((((((0+1)*x)-5)*x)+6)*x)-1)*x)+5)*x)-6)
.
- Алгоритъмът слѣдва формулата:
- Полиномът e
1*x4 - 1
а стойността на аргументът x е 256 .
- Алгоритъмът слѣдва формулата:
(((((((((0+1)*x)+0)*x)+0)*x)+0)*x)-1)
.
- Алгоритъмът слѣдва формулата:
Аргумент Коефициенти Резултат 2 1 -5 6 -1 5 -6 0 1 1 2 2 -5 -3 2 -6 6 0 2 0 -1 -1 2 -2 5 3 2 6 -6 0 256 1 0 0 0 -1 0 1 1 256 256 0 256 256 65536 0 65536 256 16777216 0 16777216 256 4294967296 -1 4294967295 - Полиномът e
1*x5 - 5*x4 + 6*x3 - 1*x2 + 5*x - 6
а стойността на аргументът x е 2 .
- Числата сѫ в десетична позиционна бройна система.
Компютърът (в случая̌т интерпретаторът от JavaScript) така ги показва. - Послѣдното число 4294967295
- в 16-ичен запис е FFFFFFFF,
- в двоичен запис е 11111111111111111111111111111111 (32 цифри 1), а
- в 8-ичен запис е 37777777777.
- Това е прелюдия към слѣдващия̌т раздѣл, който е отклонение за позиционнитѣ бройни системи.
- (.. скрий ги бѣлѣжкитѣ по алгоритъмът ..) (.. скрий как се смѣ̋та полином ..) (.. свий ..) (.. разгъни ..) .. към началото ..
- ◄► (.. скрий как се смѣ̋та полином ..) (.. свий ..) (.. разгъни ..) (.. скрий я̨ втората бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ◄► В този раздѣл именно това се прави:
- ►► Отклонение_1: позиционни бройни системи (.. покажи го отклонението ..) (.. разгъна̨то ..)
-
▼▼
Отклонение_1: позиционни бройни системи
(.. скрий го отклонението ..)
(.. свий го ..)
(.. разгъни го ..)
- ►► В ежедневието се ползва десетична позиционна бройна система (.. покажи ..)
-
▼▼
В ежедневието се ползва десетична позиционна бройна система
(.. скрий ..)
- Десетичната позиционна бройна система е
в Европа отскоро: има-нѣ̋ма петстотин години.
- Сегашното младо поколѣние трудно може да си прѣдстави свѣтът без компютри и компютърчета. Старитѣ обаче помним онова врѣме.
- Но всички вече трудно можем да си прѣдставим какъв е бил свѣтът без десетичната позиционна бройна система.
- Толкова сме свикна̨ли с нея̨.
- В Западна Европа сѫ се ползвали римскитѣ цифри.
- Нѣ̋кога ги учѣхме в основното училище. Вѣроятно все още се уча̨т.
- Присѫтсваха̨ обикновено на табелитѣ на класнитѣ стаи: V а клас. Вѣроятно все още е така.
- Присѫтсваха̨ и в номерацията на партийни конгреси и на петилѣткитѣ.
- Сега, слава Богу, не пиша̨т "XLIX народно събрание" - само във wikipedia-та се мѫдри.
- Лично аз избѣ̋гвам употрѣбата на римскитѣ цифри и обикновено пиша̨ "49-тото народно събрание".
- У нас сѫ се ползвали
милетскитѣ цифри.
- До началото на 19-ти вѣк всѣки грамотен нашенец-християнин ги е знаѣл.
- Сега ги зная̨т само експерти, тренирани да разчитат стари текстове.
- В съврѣменна Гърция милетскитѣ цифри ги зная̨т.
- Там не употрѣбяват римскитѣ цифри.
- В случаитѣ, когато ние употрѣбяваме римскитѣ цифри, в Гърция ползват милетскитѣ.
- Според мене, милетскитѣ цифри сѫ по-добри от римскитѣ.
- Но и еднитѣ, и другитѣ нищо не струват прѣд десетичната позиционна бройна система.
- Десетичната позиционна бройна система опрѣдѣлено е съдѣйствала за развитието на технологиитѣ.
- С такова нѣщо не мога̨т да се похваля̨т нито римскитѣ цифри, нито милетскитѣ.
- (.. скрий го ежедневието ..) (.. скрий го отклонението за позиционнитѣ бройни системи ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Десетичната позиционна бройна система е
в Европа отскоро: има-нѣ̋ма петстотин години.
- ►► Полиномитѣ и позиционнитѣ бройни системи (.. покажи ..)
-
▼▼
Полиномитѣ и позиционнитѣ бройни системи
(.. скрий ..)
- Записът на числата в позиционна бройна система има нѣщо общо с полиномитѣ.
- Това е и причината за появата на този раздѣл, в който се прави отклонение от основната тема на бесѣдата.
- При позиционна бройна система се фиксира цѣ̋ло число по-голѣ̋мо от единица за
основа на бройната система или накратко radix.
- В ежедневния̌т живот на хората radix-ът е 10 (десет).
- Вѫтрѣ в свѣтът на компютритѣ - тогава, когато на компютритѣ не им се налага да общуват с хора, radix-ът е 2 (двѣ).
- Записът на число в позиционна бройна система при фиксиран radix
прѣдставлява поредица (масив, array) от цифри.
- Цифритѣ сѫ коефициентитѣ на полиномът, а radix-ът е аргументът.
- За всѣ̋ко цѣ̋ло неотрицателно число, по-малко от radix-ът,
сѫществува цифра, стойността на която е това число.
- Цифритѣ сѫ толкова на брой, колкото е radix-ът.
- Ако radix-ът е 2, и цифритѣ сѫ 2: 0 и 1.
- Ако radix-ът е 10 (осем), и цифритѣ сѫ осем: 0, 1, 2, 3, 4, 5, 6, 7.
- Ако radix-ът е 10 (десет), и цифритѣ сѫ десет: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
- Ако radix-ът е 16 (шестнадесет), и цифритѣ сѫ шестнадесет.
Обикновено се ползват тѣзи: 0123456789ABCDEF. - Ако radix-ът е 36 (тридесет и шест), и цифритѣ сѫ толкова.
Обикновено се ползват тѣзи: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.
- Нулата винѫги е цифра, при всѣки radix.
- При всѣ̋ка позиционна бройна система има нуђа от цифрата
0 (нула).
Както и от единица (1). - Изобрѣтяването на позиционния̌т запис на числата, вѣроятно дѣло на индийски математици, е тѣ̋сно свързано с изобрѣтяването на цифрата нула и на числото нула.
- Точно това е дало тласък на развитието и на математиката, и на технологиитѣ.
- Етимологията на думи като цифра или шифър ни води към арабското название на нулата, което значѣло "нищо".
- При всѣ̋ка позиционна бройна система има нуђа от цифрата
0 (нула).
- Цѣлта на нулата е да държи и да бѣлѣжи позицията си
- и като цифра в запис на число в позиционна бройна система,
- и като коефициент на полиномът.
- В позиционна нотация, нулата може да се изпусне, само ако прѣди нея̨ нѣ̋ма по-старши ненулев коефициент или по-старша ненулева цифра.
- Наличието на цифра нулата е основната разлика међу съврѣменното означение на числата от една страна, и римската или милетската система от друга страна.
- Непозиционни означения:
- Хиляда оки люта ракия. Sıcak rakı bin okkası. One Thousand oz of brendy.
- Полиномът x3.
- Позиционни означения:
- 1000 оки люта ракия. Sıcak rakı 1000 okkası. 1000 oz of brendy.
- В прѣдишнитѣ раздѣли вѫтрешно на JavaScript pолиномът x3 се прѣдставя като масив от числа така: [1 0 0 0].
- (.. скрий го полиномиалното при позиционнитѣ бройни системи ..) (.. скрий го отклонението за позиционнитѣ бройни системи ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Записът на числата в позиционна бройна система има нѣщо общо с полиномитѣ.
- ►► Прѣз практиката ми на компютърен програмист съм си имал работа със .. (.. покажи ..)
-
▼▼
Прѣз практиката ми на компютърен програмист съм си имал работа ..
(.. скрий ..)
- прѣдимно с radix 10 - с десетичната позиционна бройна система.
- Човѣк съм, а компютритѣ отдавна сѫ се научили да общуват с хора в radix 10.
- Напримѣр, дотук при тази бесѣда - "за компютритѣ полиномиално", не ми се е налагало мислено да прѣвключвам към radix 2.
- Но пък в прѣдишната бесѣда - оная за дупкитѣ на перфолентата, това понѣ̋кога се налагаше.
- Без връзка с писането на разни бесѣди, прѣз практиката ми на компютърен програмист все пак ми се е налагало да минавам и на други в radix-и.
- Не може човѣк да разбира сърдцето и чувствата на компютърът, ако не владѣе вѫтрешния̌т му
radix - radix 2.
- В кръвта на компютритѣ е radix 2.
- Едно врѣме, когато бѣ̋х ученик и студент, имаше надѣђа, че в бѫдеще ще се появя̨т компютри с radix 3 в кръвта, и се упражнявахме не само на radix 2, но и на radix 3.
- Не се появиха̨ такива компютри.
Не съм имал досѣг с radix 3 в практиката си.
- Записът в radix 2 е твърдѣ неудобен за показ и възприятие.
Когато radix 2 се показва на човѣк или се очаква човѣк да го възприеме, винѫги се замѣства с «роднински» radix - radix 8 или radix 16.- При Минск-2 и PDP-11 - radix 8.
- При другитѣ компютърни архитектури - radix 16.
- Не бива да се забравя, че radix 8 и radix 16 не сѫ нищо друго освѣн сбит запис на radix 2.
- Едно врѣме при компютритѣ PDP-11 за кодиране на 6-знакови идентификатори в 32 бита
се ползваше radix 40 под означението Radix-50.
- Числото 40 (записано в radix 50) e 50 в radix 8 (5*8 е 40), а «кръвообращението» на PDP-11 се показваше в radix 8.
- Комуникациитѣ в слѣдващитѣ години използват разни други radix-и.
- Напримѣр, radix 64 се ползваше от програмитѣ uuencode и uudecode в Unix, а впослѣдстие и във e-mail-итѣ при прикрѣпенитѣ към тѣ̋х файлове.
- Само за забавление - just for fun, в слѣдващитѣ подраздѣли ще демонстрирам произволен
radix в диапазонът от 2 до 36.
- Горната граница на диапазонът е опрѣдѣлена от фактът, че разполагаме с 36 цифри: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.
- (.. скрий с кои radix-и съм си имал работа ..) (.. скрий го отклонението за позиционнитѣ бройни системи ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- прѣдимно с radix 10 - с десетичната позиционна бройна система.
- ►► Прѣобразуване от друга позиционна бройна система към «нашата» (.. покажи ..)
-
▼▼
Прѣобразуване от друга позиционна бройна система към «нашата»
(.. скрий ..)
- Коя е «нашата» позиционна бройна система?
Кой е «нашия̌т» radix?- «Нашия̌т» radix е този, в който се извършват аритметичнитѣ дѣйствия: събиране, умножение, дѣление на цѣли числа.
- «Нашия̌т» radix е този, в който се извършват прѣсмѣ̋танията.
- За нас хората «нашия̌т» е radix 10.
- За интерпретаторът на JavaScript «свой» сѫщо така е radix 10.
- Този интерпретатор е програма, която работи на компютърът, а не е самия̌т компютър.
- Програма на езикът JavaScript се изпълнява от интепретаторът, а не от самия̌т компютър.
- Компютритѣ на съвсѣм ниско ниво имат radix 2 за «свой».
- Програми, които да се изпълняват непосрѣдствено на самия̌т компютър, се пиша̨т на езици като C, C++ или асемблер.
- Това, разбира се, е условно написано.
- Важното е, че в този раздѣл ще се имат прѣд вид смѣтки само в radix 10.
- Аритметика в radix различен от 10 нѣ̋ма да се обсѫђа.
- В този подраздѣл задачата ще е тази: число, прѣдставено в друг radix,
да се конвертира в «нашия̌т» radix 10.
- Ако числото е прѣдставено в друг radix, за «нас» то не е число, защото не можем да смѣ̋таме с него.
- За «нас» то е просто низ от нѣ̋какви цифри.
- Задачата ще е да го прѣвърнем в число в «нашия̌т» radix 10.
- Алгоритъмът ще е сѫщия̌т, който бѣ приложен в раздѣлът за прѣсмѣ̋тане на стойността на полином.
- Примѣр. Число нѣ̋какво е прѣдставено в radix 16 във видът FFFF, като цифрата F е 15.
- Започваме с нулев резултат. Резултатът е 0.
- Към резултатът добавяме стойността на старшата цифра. 0+15. Резултатът е 15.
- Умножаваме резултатът по radixът. 15*16. Резултатът е 240.
- Към резултатът добавяме стойността на слѣдващата цифра. 240+15. Резултатът е 255.
- Умножаваме резултатът по radixът. 255*16. Резултатът е 4080.
- Към резултатът добавяме стойността на слѣдващата цифра. 4080+15. Резултатът е 4095.
- Умножаваме резултатът по radixът. 4095*16. Резултатът е 65520.
- Към резултатът добавяме стойността на послѣдната цифра. 65520+15. Резултатът е 65536.
- Тука ще можете да изберете radix в диапазонът от 2 до 36.
- Слѣд това ще можете да въведете число в избрания̌т radix.
- И като натиснете бутонът Go!, програмата на JavaScript ще прѣдстави Вашето число в «нашия̌т» radix 10.
-
Radix: - Полученото като резултат число, записано в «нашия̌т» radix 10 (в десетичната позиционна бройна система, използвана в ежедневието), ще бѫде прѣнесено автоматично в слѣдващия̌т подраздѣл, където то ще може да бѫде прѣобразувано друг radix, трети radix.
- Впрочем, това е начинът за конвертиране от един radix в друг, като и двата radix-а сѫ различни от «нашия̌т»: първо в «нашия̌т», послѣ в другия̌т.
-
.. Покажи го кодът на програмката за конвертиране към «нашия̌т» radix ..
-
Кодът на програмката за конвертиране към «нашия̌т» radix
(.. скрий го кодът ..)
-
function convertFromRadix(radix, digits) { var res = 0; var v; var d; var dig = digits; while(dig != "") { res *= radix; d = dig.slice(0,1); dig = dig.slice(1); v = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".search(d); if(v > 0) { res += v; } } return res; }
- Такива програмки се пиша̨т не на JavaScript, а на C или на асемблер.
- JavaScript има вградени срѣдства за такова конвертиране.
-
- (.. скрий го прѣобразуването от друга позиционна бройна система ..) (.. скрий го отклонението за позиционнитѣ бройни системи ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Коя е «нашата» позиционна бройна система?
- ►► Прѣобразуване от «нашата» позиционна бройна система към друга (.. покажи ..)
-
▼▼
Прѣобразуване от «нашата» позиционна бройна система към друга
(.. скрий ..)
- Коя е «нашата» позиционна бройна система?
Кой е «нашия̌т» radix?- «Нашия̌т» radix е този, в който се извършват аритметичнитѣ дѣйствия: събиране, умножение, дѣление на цѣли числа.
- «Нашия̌т» radix е този, в който се извършват прѣсмѣ̋танията.
- За нас хората «нашия̌т» е radix 10.
- За интерпретаторът на JavaScript «свой» сѫщо така е radix 10.
- Този интерпретатор е програма, която работи на компютърът, а не е самия̌т компютър.
- Програма на езикът JavaScript се изпълнява от интепретаторът, а не от самия̌т компютър.
- Компютритѣ на съвсѣм ниско ниво имат radix 2 за «свой».
- Програми, които да се изпълняват непосрѣдствено на самия̌т компютър, се пиша̨т на езици като C, C++ или асемблер.
- Това, разбира се, е условно написано.
- В този подраздѣл задачата ще е тази: число,
прѣдставено в добрѣ познатия̌т ни «наш» radix 10,
да се прѣобразува в друг зададен radix.
- Резултатът тука ще бѫде низ от цифри в другия̌т radix.
- Алгоритъмът се основава на аритметичната операция дѣление на цѣли числа.
- Тази операция дава двѣ числа като резултат: частното и остатъкът.
- Компютърът на ниско ниво извършва цѣлочисленото дѣление точно така: едноврѣменно намира частното и остатъкът.
- Ако се програмира на език от високо ниво, задача на езиковия̌т процесор (компилатор или интерпретатор) е да не кара операцията на ниско ниво да се извършва два пѫти.
- Описание на алгоритъмът за рѣшаване на задачата.
- Цифритѣ се опрѣдѣля̨т послѣдователно една по една, от младшата към старшата, от послѣдната към първата.
- На всѣ̋ка стѫпка от алгоритъмът се извършва цѣлочислено дѣление, при което дѣлител е radix-ът.
- Остатъкът е поредната цифра.
- Слѣдващата стѫпка продължава с частното.
- Илюстрация на алгоритъмът по стѫпки.
- За цѣлитѣ на илюстрацията да се поставим на мѣ̋стото на компютърът, за който «свой» е radix 2 (или кой да е друг radix, различен от 10.
- Задачата ще бѫде да намѣрим десетичнитѣ цифри, цифритѣ в radix 10.
- Да вземем произволно число. Съвсѣм произволно. От нѣмай къдѣ записът му тука на екранът ще бъде десетичен.
- 265302.
- 1-ва стѫпка. Дѣлим 265302 на 10. Остатъкът е 2. Това е послѣдната цифра. Продължаваме с частното 26530.
- 2-ра стѫпка. Дѣлим 26530 на 10. Остатъкът е 0. Това е поредната цифра. Слагаме я̨ отпрѣд. Резултат дотук: 02. Продължаваме с частното 2653.
- 3-та стѫпка. Дѣлим 2653 на 10. Остатъкът е 3. Това е поредната цифра. Слагаме я̨ отпрѣд. Резултат дотук: 302. Продължаваме с частното 265.
- 4-та стѫпка. Дѣлим 265 на 10. Остатъкът е 5. Това е поредната цифра. Слагаме я̨ отпрѣд. Резултат дотук: 5302. Продължаваме с частното 26.
- 5-та стѫпка. Дѣлим 26 на 10. Остатъкът е 6. Това е поредната цифра. Слагаме я̨ отпрѣд. Резултат дотук: 65302. Продължаваме с частното 2.
- 6-та стѫпка. Дѣлим 2 на 10. Остатъкът е 2. Това е поредната цифра. Слагаме я̨ отпрѣд. Резултат дотук: 265302. Частното е 0. Слѣдователно, това е послѣдната стѫпка.
- Първо въведѣте цѣ̋ло положително число в привичния̌т за човѣк десетичен запис (в «нашия̌т» radix 10).
- Послѣ изберѣте друг radix в диапазонът от 2 до 36.
- Програмата ще Ви покаже прѣдставянето на Вашето число в избрания̌т radix.
-
Radix: -
.. Покажи го кодът на програмката за конвертиране към друг radix ..
-
Кодът на програмката за конвертиране към radix, различен от «нашия̌т»
(.. скрий го кодът ..)
-
function integerDivision(a,b) { if((typeof(a) == "number") && (0 <= a) && ((a >> 0) == a) && (typeof(b) == "number") && (0 < b) && ((b >> 0) == b)) { return {"q":((a/b) >> 0),"r":(a%b)} } return {"q":"-","r":""} }
function convertToRadix(radix, number) { if((typeof(radix) != "number") || (radix > 36) || (radix < 2) || ((radix >> 0) != radix) || (typeof(number) != "number") || (number < 0) || ((number >> 0) != number)) { return ""; } if (number == 0) { return "0"; } var div; var res = ""; var num = number; while(num != 0) { div = integerDivision(num,radix); if (div["q"] == "-") { return ""; } res = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".slice(div["r"]).slice(0,1) + res; num = div["q"]; } return res; } - Такива програмки се пиша̨т не на JavaScript, а на C или на асемблер.
- JavaScript има вградени срѣдства за такова конвертиране.
-
- (.. скрий го прѣобразуването към друга позиционна бройна система ..) (.. скрий го отклонението за позиционнитѣ бройни системи ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Коя е «нашата» позиционна бройна система?
- ►► Прѣобразуване међу «роднински» позиционни бройни системи (.. покажи ..)
-
▼▼
Прѣобразуване међу «роднински» позиционни бройни системи
(.. скрий ..)
- «Роднински» сѫ radix-и,
които сѫ степени на един и сѫщ radix - първа степен, втора степен, трета степен, ..
- Напримѣр, radix-итѣ 8 и 16 сѫ «роднински»,
понеже 8 и 16 сѫ степени (трета и четвърта) на 2.
- В сѫщност, тѣзи три radix-а 2, 8 и 16 сѫ «роднински».
- Друг примѣр. «Роднински» сѫ radix-итѣ 10, 100 и 1000.
- Напримѣр, radix-итѣ 8 и 16 сѫ «роднински»,
понеже 8 и 16 сѫ степени (трета и четвърта) на 2.
- Конвертирането међу «роднински» radix-и ..
- не се извършва по алгоритмитѣ от прѣдишнитѣ два подраздѣла,
- дори когато нѣ̋кой от «роднински» radix-и е «нашия̌т».
- Защото има по-лесен начин.
- Защото два «роднински» radix-а не сѫ много различни един от друг.
- Конвертирането међу «роднински» radix-и ..
- се извършва чрѣз групиране, декомпозиране и прѣгрупиране на цифритѣ.
- Да разгледаме radix-ът 100.
- Той е «роднина» на «нашия̌т» radix 10.
- Radix 100 има нуђа от 100 цифри.
- Нека тѣзи 100 цифри да сѫ слѣднитѣ:
{00},{01},{02},{03},{04},{05},{06},{07},{08},{09}, {10},{11},{12},{13},{14},{15},{16},{17},{18},{19}, {20},{21},{22},{23},{24},{25},{26},{27},{28},{29}, . . {80},{81},{82},{83},{84},{85},{86},{87},{88},{89}, {90},{91},{92},{93},{94},{95},{96},{97},{98},{99}.
- Всѣ̋ка от тѣзи 100 «цифри» си я̨ мислѣте като цѣ̋лостен йероглиф със съотвѣтната стойност.
- При конвертирането от radix 10 към radix 100 цифритѣ по radix 10 се групират по двѣ (по двѣ, защото 100 е втора степен на 10) от дѣ̋сно на лѣ̋во (в общия̌т случай от точката в двѣтѣ посоки).
- Всѣ̋ка групичка от двѣ цифри в radix 10 се кодира в една от 100-тѣ «цифри» по radix 100.
- 2024 => {20}{24}.
- Да разгледаме radix-ът 1000.
- Той е «роднина» на radix-итѣ 10 и 100.
- Radix 1000 има нуђа от 1000 цифри.
- Нека тѣзи 1000 цифри да сѫ слѣднитѣ:
{000},{001},{002},{003},{004},{005},{006},{007},{008},{009}, {010},{011},{012},{013},{014},{015},{016},{017},{018},{019}, {020},{021},{022},{023},{024},{025},{026},{027},{028},{029}, . . {980},{981},{982},{983},{984},{985},{986},{987},{988},{989}, {990},{991},{992},{993},{994},{995},{996},{997},{998},{999}.
- Всѣ̋ка от тѣзи 1000 «цифри» си я̨ мислѣте като цѣ̋лостен йероглиф със съотвѣтната стойност.
- Нека задачата да е слѣдната: Число, което в radix 100 се прѣдставя във видът {20}{24}, да се прѣдстави в «роднинския̌т» radix 1000.
- Де-композираме цифритѣ по radix 100 към цифри по radix 10:
- {20}{24} => 2024.
- Групираме ги по три (по три, защото 1000 е трета степен на 10).
- 2024 => 002 024.
- Всѣ̋ка групичка от три цифри в radix 10 се кодира в една от 1000-та «цифри» по radix 1000.
- 002 024 => {002}{024}.
- Да се върнем на компютърчетата, че тѣхен е бѫдещия̌т интелект.
- Като оставим настрани «нашия̌т» radix 10,
компютърнитѣ програмисти и кодировчици най-често си имат работа с три «роднински» radix-a:
2, 8 и 16.
- При radix 2, двоичината позиционна система, която компютритѣ имат за «своя»,
сѫ нужни двѣ (2) цифри, 0 и 1.
- Една двоична цифра се нарича бит.
- Това е най-малкото количество информация.
- Мѣ̋рката за количество информация е бит.
- При radix 8 сѫ нужни 8 (осем) цифри.
- Ето ги тѣзи 8 (осем) цифри, заедно с де-композицията им на битове:
0: 000, 1: 001, 2: 010, 3: 011, 4: 100, 5: 101, 6: 110, 7: 111.
- Напримѣр, записът 377 в radix 8 означава 11111111 - един байт свѣтна̨ти битове.
- Ето ги тѣзи 8 (осем) цифри, заедно с де-композицията им на битове:
- При radix 16 сѫ нужни 16 цифри.
- Ето ги тѣзи 16 цифри, заедно с де-композицията им на битове:
0: 0000, 1: 0001, 2: 0010, 3: 0011, 4: 0100, 5: 0101, 6: 0110, 7: 0111, 8: 1000, 9: 1001, A: 1010, B: 1011, C: 1100, D: 1101, E: 1110, F: 1111.
- Напримѣр, един байт свѣтна̨ти битове в radix 16 се прѣдставя така: FF.
- А пък байт, в който само старшия̌т бит е свѣтна̨т, в radix 16 се прѣдставя така: 80.
- Ето ги тѣзи 16 цифри, заедно с де-композицията им на битове:
- При radix 2, двоичината позиционна система, която компютритѣ имат за «своя»,
сѫ нужни двѣ (2) цифри, 0 и 1.
- Нека задачата да ни е слѣдната.
Число, имащо видът 3750 в radix 8, да се прѣдстави в «роднинския̌т» radix 16.- Осмичнитѣ цифри ги де-композираме на битове - всѣ̋ка на три бита:
011 111 101 000
. - Групираме битоветѣ по четири:
0111 1110 1000
. - Всѣ̋ка групичка от четири бита прѣдставяме с една цифра в radix 16:
7E8
.
- Осмичнитѣ цифри ги де-композираме на битове - всѣ̋ка на три бита:
- Да отбѣлѣжа̨, че за компютърчето играта с битове е по-лесна от аритметичнитѣ операции събиране, умножение и дѣление.
- То и за човѣк е така, ако е свикна̨л да жонглира с битчета.
- (.. скрий го прѣобразуването међу роднински позиционни бройни системи ..) (.. скрий го отклонението за позиционнитѣ бройни системи ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- «Роднински» сѫ radix-и,
които сѫ степени на един и сѫщ radix - първа степен, втора степен, трета степен, ..
- ►► Нѣщо като заключение на първото отклонение (.. покажи ..)
-
▼▼
Нѣщо като заключение на първото отклонение
(.. скрий ..)
- Основната тема на бесѣдата бѣше намирането на реалнитѣ корени на полином с реални коефициенти.
- В това отклонение се отплѣсна̨х по вѫтрешното прѣдставяне на даннитѣ в компютритѣ.
- Изложението не е на техническо ниво. То е на публицистично ниво.
- Цѣлта е само читателитѣ да добия̨т нѣ̋каква прѣдстава.
- Цѣлта е обща прѣдстава прѣди всичко и прѣдстава за алгоритмитѣ.
- Имплементацията на алгоритмитѣ срѣща ограниченията на компютърната срѣда и тѣ не винѫги работя̨т.
- Но не съм си поставял за цѣл имплементация на аритметика с по-висока точност.
- Съвсѣм не всичко бѣ споменато.
- Струва си да се отбѣлѣжи, че както всичко, свързано с компютритѣ, се доразвива и подобрява, така става с разнитѣ формати и кодировки.
- Редица стари формати, с които съм работил прѣз 80-тѣ, сега сѫ забравени.
- Напримѣр, пакетиранитѣ десетични числа и машинната аритметика с тѣ̋х.
- Имаше ги в IBM/System360, а послѣ и във VAX.
- Или пък десетичнитѣ числа с плаваща точка.
- Имаше ги пак в IBM/System360, къдѣто нѣмаше двоични числа с плаваща точка.
- Не знам тази странност да е била повторена в друга компютърна архитектура.
- Напримѣр, пакетиранитѣ десетични числа и машинната аритметика с тѣ̋х.
- При рѣшаването на задачата за намирането на реалнитѣ корени на полином с реални коефициенти се ползва аритметика с плаваща точка.
- Едно врѣме аритметиката с плаваща точка бѣше един от аспектитѣ в програмирането, който бѣше най-трудно прѣносим међу различнитѣ компютърни архитектури.
- Сѫщо така, почти невъзможно бѣше да се прѣнасят като данни числа с плаваща точка в машинно прѣдставяне.
- Сега вече има стандарт за аритметика с плаваща точка.
- (.. скрий го заключението ..) (.. скрий го отклонението за позиционнитѣ бройни системи ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ◄► (.. скрий го отклонението за позиционнитѣ бройни системи ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ втората бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Отклонение_2: циклично броене, пръстени на остатъцитѣ (.. покажи го отклонението ..) (.. разгъна̨то ..)
-
▼▼
Отклонение_2: циклично броене, пръстени на остатъцитѣ
(.. скрий го отклонението ..)
(.. свий го ..)
(.. разгъни го ..)
- ►► Нѣщо като прѣдговор на второто отклонение (.. покажи ..)
-
▼▼
Нѣщо като прѣдговор на второто отклонение
(.. скрий ..)
- Основната тема на бесѣдата бѣше намирането на реалнитѣ корени на полином с реални коефициенти.
- При това "полето на дѣйствие" е полето на реалнитѣ числа.
- Но това бѣше в математическата задача за намирането на реалнитѣ корени на полином с реални коефициенти.
- В първото отклонение се отплѣсна̨х по вѫтрешното прѣдставяне на даннитѣ в компютритѣ.
- Там, в първото отклонение, вече напусна̨хме полето на реалнитѣ числа.
- Всичко в компютритѣ се моделира и се прѣдставя с цѣли числа.
- Аналогови компютри и дори хибридни аналогово-цифрови компютри аз не съм виђал.
- Всичко минава на цифровизация и дори вече си е цифрово (дигитално) - телефонни разговори, телевизия, звукозаписи.
- Дигиталното е по-надѣђно, по-стабилно и по-лесно се управлява.
- Аналоговото може да резонира със заобикалящия̌т ни реален аналогов свѣ̋т.
- Изградили сме си виртуален дигитален (цифров) свѣ̋т.
- Това бѣше още в първото отклонение.
- Трѣ̋бва да го прочетете прѣди второто отклонение.
- И сега идва второто отклонение.
- Ще се раздѣлим с прѣдставата за безкрайност.
- Ще замѣним безкрайността с цикличност.
- В нашитѣ човѣшки прѣдстави и усѣщания нѣ̋ма безкрайност.
- Всичко, до което се докасваме или което можем да погледнем, е отсам безкрайността.
- Не знаем къдѣ е тя, безкрайността.
- Лесно можем да си прѣдставим, че половината на нищото - на нулата - е точно равна на цѣ̋лото нищо (на цѣ̋лата нула).
- Но трудно можем да си прѣдставим, че половината на безкрайността е точно равна на цѣ̋лата безкрайност.
- Или че цѣ̋лата безкрайност е равна на половината си.
- Затова ще се раздѣлим с прѣдставата за безкрайност.
- Изложението не е на техническо ниво. То е на публицистично ниво.
- Едната цѣл е читателитѣ да добия̨т нѣ̋каква прѣдстава за цикличността в компютритѣ.
- В този смисъл това е продължение на първото отклонение от бесѣдата.
- От друга страна, подготвям обстойна публикация за разнитѣ календари и за разнитѣ календарни елементи.
- А там има много примѣри на циклично броене.
- (.. скрий го прѣдговорът на второто отклонение ..) (.. скрий го второто отклонение ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Основната тема на бесѣдата бѣше намирането на реалнитѣ корени на полином с реални коефициенти.
- ►► Цикличното броене в ежедневието (.. покажи ..)
-
▼▼
Цикличното броене в ежедневието
(.. скрий ..)
- Седмицата.
- Понедѣлник, вторник, срѣ̋да, четвъртък, петък, сѫбота, недѣля .. и пак понѣделник.
- И така повече от три хиляди години.
- Без прѣкѫсване, без приплъзгване, без грѣшки.
- Мѣсецитѣ.
- Януари, февруари, март, април, май, юни, юли, август, септември, октомври, ноември, декември .. и пак януари.
- И така повече от двѣ хиляди години.
- Циферблатът на часовницитѣ.
- Един часът, два часът, три часът, .., шест часът, .., девет часът, десет часът, единадесет часът, дванадесет часът, и пак един часът.
- И така откакто го има стария̌т часовник.
- Г-жа Петрова, начална учителка.
- Води първолаци, води второкласници, води третокласници, води четвъртокласници, и пак при първолацитѣ.
- И така до пенсия.
- Е, да:
- Първолацитѣ не сѫ сѫщитѣ, както прѣди четири годинин - други сѫ.
- Един часът днес по пладнѣ не е като един часът нощес, а пък утрѣ в един часът кой знае какво ще стане.
- Прѣз тазгодишния̌т януари бѣ̋х с цѣ̋ла година по-стар, отколкото бѣ̋х прѣз мина̨логодишния̌т януари.
- Този понѣдѣлник сериалът по телевизията свърши, и другия̌т понедѣлник ще почва друг сериал.
- Обаче:
- Все първолаци, дѣчица малки.
- Часовникът все един часът показва.
- И на стѣнния̌т календар пише все "януари".
- И слѣд този понѣдѣлник пак вторник ще дойде.
- (.. скрий го цикличното броене в ежедневието ..) (.. скрий го второто отклонение ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Седмицата.
- ►► Цикличното броене в математиката (.. покажи ..)
-
▼▼
Цикличното броене в математиката
(.. скрий ..)
- В прѣдишното отклонение бѣше написано, че появата на понятиетието за нула - изобрѣтяването на числото нула и на цифрата нула,
което се е случило сравнително наскоро, е дало тласък на развитието на математиката и на технологиитѣ.
- Ако часовниковитѣ циферблати не слѣдваха̌ стара традиция, означенията върху тѣ̋х щѣ̋ха̨ да сѫ от 0 до 11.
- С терминитѣ "поле" и "пръстен" се означават двѣ алгебрични структури, на които в математиката се дават опрѣдѣления.
- Елементитѣ им мога̨т да бѫда̨т наричани числа.
- И в двѣтѣ тѣзи структури сѫ възможни обичайнитѣ аритметични операции събиране, извађане и умножение.
- Има си нула, която не промѣня числото, към което е добавена.
- Има си и единица, която не промѣня числото, с което е умножена.
- Всѣ̋ко поле в частност е и пръстен, но не всѣки пръстен е поле.
- Един пръстен, за да бѫде поле, трѣ̋бва винѫги в него да е възможна операцията дѣление на число, което е различно от нула.
- Напримѣр.
- Числата 5 и 2 сѫ елементи поне на три полета: на полето на комплекснитѣ числа, на полето на реалнитѣ числа и на полето на рационалнитѣ числа.
- Ако числата 5 и 2 ги разглеђаме като елементи на поле, то можем да раздѣлим 5 на 2 и ще се получи число от сѫщото поле: числото 2.5 (двѣ и половина).
- Числата 5 и 2 сѫ елементи и на пръстенът на цѣлитѣ числа.
- Ако числата 5 и 2 ги разглеђаме като елементи на пръстенът на цѣлитѣ числа, то при операцията "5 дѣлено на 2" ще се получа̨т двѣ числа (двѣ числа от този пръстен): частно 2 и остатък 1.
- Число 2.5 (двѣ и половина) в този пръстен нѣ̋ма.
- Да забравим за полетата. Продължаваме само с пръстенитѣ.
От нѣ̋каква гледна точка, продължаваме с цѣлитѣ числа.- При дѣление на двѣ числа от един пръстен (при ненулев дѣлител, разбира се) може да не се намѣри едно число от този пръстен като резултат.
- Но ще се намѣря̨т двѣ числа: частно и остатък.
- Да си припомним, че цѣлта на това второ отклонение е да се раздѣлим с прѣдставата за безкрайност
и да я̨ замѣним с прѣдстава за цикличност.
- Като имаме на разположение нулата и позиционното прѣдставяне на числата.
- Обикновено в десетичната позиционна бройна система.
- Да се ограничим до послѣднитѣ двѣ десетични цифри, до послѣднитѣ два десетични разряда.
- Ако за двѣ цѣли положителни числа съвпадат послѣднитѣ двѣ цифри - единицитѣ и десетицитѣ - в десетичното им прѣдставяне, нека да смѣ̋таме, че тѣзи двѣ числа сѫ идентични.
- Така се получава пръстен, съдържащ точно 100 елемента - точно 100 "числа", нарѣчен "пръстен на остатъцитѣ по модул 100" и означаван така: Z100.
- Числата от този пръстен обикновено се означават така: 0, 1, 2, .., 98, 99.
- В този пръстен 12+12 е равно на 24. Ама 92+12 е равно на 4, защото 104 е идентично на 4
- В този пръстен 0-6 е равно на 94. Елементът 94 може да бѫде означен и така: -6.
- С други думи, нѣ̋маме никакъв проблем част от числата в пръстенът на остатъцитѣ да ги смѣ̋таме за отрицателни.
- Възможно е и всичкитѣ ненулеви елементи на този пръстен да ги смѣ̋таме за отрицателни.
- Отклонение за почивка. Да не си помислите, че дѣцата от 2-ри клас се уча̨т да смѣ̋тат в пръстенът Z100. Макар това донѣ̋къдѣ да е вѣ̋рно. Край на почивката.
- За всѣ̋ко цѣ̋ло число n по-голѣ̋мо от 1 сѫществува пръстен на остатъцитѣ по модул n с означение
Zn.
- Пръстенът Zn съдържа точно n числа: от 0 до n-1.
- Отклонение към физиката.
- Нѣ̋кои физични явления имат абсолютно начало и е естествено това начало да бѫде отбѣлѣ̋звано с цифрата 0 (нула).
- Напримѣр, абсолютната нула при температурата (минус 253 градуса по Целзий). По-ниска температура нѣ̋ма.
- Хората не винѫги сѫ осъзнавали сѫществуването на абсолютната температурна нула.
- И досега се използват температурни ска̀ли, къдѣто нулата не е в абсолютното начало,
а на нѣ̋кое друго условно прието мѣ̋сто:
- При ска̀лата на Целзий нулата е на точката на замръзване на водата.
- При ска̀лата на Fahrenheit нулата е най-ниската температура, измѣрена в Данциг (Гданск) прѣз зимата на 1708-1709.
- Врѣмето сѫщо има абсолютно начало - голѣмия̌т взрив, но това абсолютно начало е абсолютно недостижимо.
- Затова при отчитане на врѣмето винѫги се налага да слагаме нѣ̋къдѣ условна нула.
- Я̀ при рођението на Иисуса Христа.
- Я̀ при създаването на свѣтът според Библията.
- Я̀ от основаването на градът Рим.
- Я̀ в други точки от врѣмето.
- Край на отклонението към физиката.
- Да въведем абсолютно отброяване на днитѣ (на денонощията) от нѣ̋какво условно начало.
- За нулев ден ще обявя̨ 16-ти април 1916. 27499
- Избран е за по-лесни смѣтки.
- Това е първата недѣля слѣд въвеђането на григорианския̌т календар в България.
- Ще го нарѣка̨ този ден ДТВ: дѣ̋до тръгва на война.
- Абсолютно броене на днитѣ от ДТВ.
- Малко от днитѣ сѫ добри за България. Много малко.
- На ден 882 от ДТВ е пробивът на Добро поле.
- На ден 3287 от ДТВ терористи взривяват храм в центърът на София и убиват около 200 души.
- На ден 10373 от ДТВ България попада в лапитѣ на Сталин.
- На ден 26706 от ДТВ стотина хиляди мюсюлмани български грађани сѫ изгонени от страната.
- На ден 29514 от ДТВ - един от малкото хубави дни - БСП загуби властта - отстѫпи я̨ за около 8 години.
- На ден 30553 - най-хубавия̌т ден за България от ДТВ насам - Европейския̌т съюз рѣши да приеме България за члѣн.
- Ние хората не сме компютри и не отчитаме днитѣ така.
- В ежедневието си в много случаи отчитаме днитѣ циклично.
- Делим числото - броя̌т на днитѣ от ДТВ - на 7 и броим циклично. Прилагаме Z7: пръстенът на остатъцитѣ по модул 7.
- Имаме си имена за елементитѣ на този пръстен:
{0} недѣля, {1} понедѣлник, {2} вторник, {3} срѣ̋да, {4} четвъртък, {5} петък, {6} сѫбота. - Пробивът на Добро поле е бил в недѣля. [882 дѣлено на 7: частно 126 и остатък 0]
- Голѣмия̌т атентатът в софийски храм е бил в четвъртък. [3287 дѣлено на 7: частно 469 и остатък 4]
- България попада в лапитѣ на Сталин в сѫбота. [10373 дѣлено на 7: частно 1481 и остатък 6]
- Тодор Живков я̨ държа онази си рѣч в понедѣлник. [26706 дѣлено на 7: частно 3815 и остатък 1]
- Бѣше вторник, когато БСП отстѫпи властта за около 8 години. [29514 дѣлено на 7: частно 4216 и остатък 2]
- Рѣшението за приемането на България в Евросъюзът бѣ взето в петък. [30553 дѣлено на 7: частно 4364 и остатък 5]
- Да въведем абсолютно отброяване на часоветѣ от нѣ̋какво условно начало.
- Нека това условно начало е настѫпването на новата 2024 година.
- В час номер 15 (часовниковата стрѣлка сочи 3 на циферблатът) слушах на запис виенския̌т новогодишен концерт. [15 дѣлено на 12: частно 1 и остатък 3]
- В час номер 156 (часовниковата стрѣлка сочи 12) януарската ми пенсия е постѫпила по смѣтката ми. [156 дѣлено на 12: частно 13 и остатък 0]
- В час номер 906 (часовниковата стрѣлка сочи 6) февруарската ми пенсия е постѫпила по смѣтката ми. [906 дѣлено на 12: частно 75 и остатък 6]
- В час номер 1602 (часовниковата стрѣлка сочи 6) мартенската ми пенсия постѫпи по смѣтката ми. [1602 дѣлено на 12: частно 133 и остатък 6]
- В час номер 2167: часовниковата стрѣлка сочѣше 7 - мръдна̨х я̨ да сочи 8 заради лѣ̋тното часово врѣме. [2167 дѣлено на 12: частно 180 и остатък 7]
- Свикна̨ли сме да отчитаме часоветѣ циклично - в пръстен по модул 12.
- (.. скрий го цикличното броене в математиката ..) (.. скрий го второто отклонение ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- В прѣдишното отклонение бѣше написано, че появата на понятиетието за нула - изобрѣтяването на числото нула и на цифрата нула,
което се е случило сравнително наскоро, е дало тласък на развитието на математиката и на технологиитѣ.
- ►► Цикличното броене в компютритѣ (.. покажи ..)
-
▼▼
Цикличното броене в компютритѣ
(.. скрий ..)
- Ако числата се прѣдставят в radix 10 (десетична позиционна бройна система, r = 10)
и се ограничим до осем разряда (осем цифри, n = 8), ще можем да получим смѣ̋тане
в пръстенът на остатъцитѣ по модул 100000000. Сто милиона - десет на осма -
r на степен n -
това е мощността на пръстенът, толкова елемента той съдържа.
- Тѣзи сто милиона на брой числа сѫ от 0 (00000000) до 99999999.
- Послѣдното или "най-високото" число е 99999999.
- Ако към него добавим 1 ще получим 0 (00000000) и 1 прѣнос. Ето как:
- Добавяме единица към младшия̌т разряд. В него има 9. Става 10, тоест 0 (нула) и 1 (единица) прѣнос към старшия̌т разряд (едно на ум).
- Тази единица, която е прѣнос от младшия̌т разряд, я̨ добавяме към слѣдващия̌т разряд. В него има пак 9. Става 10, тоест 0 (нула) и 1 (единица) прѣнос към старшия̌т разряд (пак едно на ум).
- .. И така нататък. На всѣ̋ка позиция се получава 0 (нула) и 1 (единица) прѣнос.
- Към старшия̌т наличен разряд добавяме единицата, която е прѣнос от прѣдишния̌т разряд. Получава се пак 0 (нула) и единица прѣнос, който нѣ̋ма вече какво да го правим.
- Резултатът е 0 (00000000).
- Тази смѣтка бѣ направена в пръстенът Z100000000.
- Да се запитаме: щом в този пръстен 99999999+1 = 0, нима елементът 99999999 не е -1.
- Да, така е. В пръстенът Z100000000 99999999 е идентично с -1. Както и -1 е идентично с 99999999.
- Вѫтрешно в реалнитѣ компютри числата се прѣдставят в radix 2, двоично.
- Една двоична цифра се нарича бит.
- Един бит може да има стойност или 0 (нула) или 1 (единица).
- Нѣ̋кога имаше компютри с най-различна разрядност.
- Сегашнитѣ сѫ 64-битови или 32-битови.
- Да означим разрядността с n - radix-ът си е 2.
- Съотвѣтния̌т пръстен се означава така: Z2**n (пръстен Ζ с мощност 2 на степен n).
- Трудно е човѣк да съсрѣдоточи вниманието си върху 32 бита, а за 64 - да не говорим.
- Пръстенитѣ Z2**64 и Z2**32 нѣ̋ма как да ги използвам за илюстрация.
- Затова ще приема 8 бита, макар 8-битови компютри да нѣ̋ма отдавна.
- Пръстенът Z256 е с мощност 256 (двѣ на осма).
- Той съдържа 256 елемента - 256 числа.
- Тѣзи 256 числа, наредени по "височина", сѫ:
- Десетично от 0 до 255.
- Двоично от 0 (00000000) до 11111111.
- Осмично от 0 до 377.
- Шестнадесетично от 0 (00) до FF.
- Нѣ̋ма комбинация от 8 бита, която да не е прѣброена и да не е включена в тѣзи 256 елемента или 256 числа.
- Послѣдното или "най-високото" число е 11111111.
- Ако към него добавим 1 ще получим 0 (00000000) и 1 прѣнос. Ето как:
- Добавяме единица към младшия̌т разряд. В него има 1. Става 10, тоест 0 (нула) и 1 (единица) прѣнос към старшия̌т разряд (едно на ум).
- Тази единица, която е прѣнос от младшия̌т разряд, я̨ добавяме към слѣдващия̌т разряд. В него има пак 1. Става 10, тоест 0 (нула) и 1 (единица) прѣнос към старшия̌т разряд (пак едно на ум).
- .. И така нататък. На всѣ̋ка позиция се получава 0 (нула) и 1 (единица) прѣнос.
- .. Както по-горѣ при radix 10, така и сега при radix 2.
- Към старшия̌т наличен разряд добавяме единицата, която е прѣнос от прѣдишния̌т разряд. Получава се пак 0 (нула) и единица прѣнос, който нѣ̋ма вече какво да го правим.
- Резултатът е 0 (00000000).
- Тази смѣтка бѣ направена в пръстенът Z256.
- Да се запитаме: щом в този пръстен 11111111+1 = 0, нима елементът 11111111 не е -1.
- Да, така е. В пръстенът Z256
- 11111111 (десетично 255) е идентично с -1. Както и -1 е идентично с 11111111.
- 11111110 (десетично 254) е идентично с -10 (десетично -2).
- 11111100 (десетично 252) е идентично с -100 (десетично -4).
- 11111000 (десетично 248) е идентично с -1000 (десетично -8).
- 11110000 (десетично 240) е идентично с -10000 (десетично -16).
- 11100000 (десетично 224) е идентично с -10000 (десетично -32).
- 11000000 (десетично 192) е идентично с -1000000 (десетично -64).
- 10000000 (десетично 128) е идентично с -10000000 (десетично -128).
- Разбира се, нулата 00000000 е идентична с -0 (минус нула), както във всѣки пръстен.
- А щом десетичното 255 (двочно 11111111) е идентично с -1, като умножин това равенство с -1, дали е вѣ̋рно, че в този пръстен 1 (единицата, 00000001) е идентична с -255 (десетично)?
- Да, разбира се.
- И тъй, набѣлѣ̋зани сѫ три възможни интерпретации на елементитѣ (на числата) от пръстенът Z256.
- Имайте прѣд вид реалния̌т общ случай: пръстенът е Z2**32 или Z2**64.
- Аритметичнитѣ дѣйствия събиране, извађане, умножение и дѣление сѫ дефинирани в пръстенът независимо от интерпретацията на елементитѣ му.
- Забѣлѣжка. При дѣлението дѣлителя̌т не бива да е нула, а резултатитѣ сѫ два: остатък и частно.
- Тритѣ интерпретации сѫ слѣднитѣ:
- Адресна интерпретация. В езицитѣ С&C++ се означава unsigned int или само unsigned.
- Числата сѫ наредени по височина от най-ниското (нулата, 00000000) до най-високото (11111111, десетично 255).
- Елементитѣ 01111111 (десетично 127) и 10000000 (десетично 128) сѫ просто два сѫсѣдни адреса.
- Интерпретация със знак. В езицитѣ С&C++ може да се ползва се означава signed int или само int (integer).
- Нулата 00000000 е в разположена в срѣда̀та међу положителнитѣ и отрицателнитѣ числа.
- Елементитѣ от 00000001 (десетично 1) до 01111111 (десетично 127), 127 на брой, както сѫ си наредени по височина, се интерпретират като положителни числа от 1 до 127.
- Елементитѣ от 11111111 (десетично 255) до 10000000 (десетично 128), 128 на брой, се интерпретират като отрицателни числа от -1 до -128.
- Третата възможна интерпретация не се ползва.
- Всички числа освѣн нулата - 255 на брой - се интерпретират като отрицателни:
- от 11111111 (-1) до 00000001 (минус 255 десетично).
- Адресна интерпретация. В езицитѣ С&C++ се означава unsigned int или само unsigned.
- Каква е интерпретацията - дали е адресна (беззнакова, unsigned) или е знакова, има значение в три момента:
- Първо. Как да се показват елементитѣ на пръстенът в човѣшки вид.
- Второ. Как да се интерпретират сравненията међу елементитѣ на пръстенът.
- При знакова интерпретация 11111111 е -1 и е по-малко от нулата 0.
- При адресна интерпретация 11111111 е 255 десетично и е по-голѣ̋мо от нулата 0.
- На ниско ниво има различни операции за сравнение: едната се ползва при адресна интерпретация (кое е по-високо и кое е по-ниско), а другата се ползва при знакова интерпретация (кое е по-голѣ̋мо и кое е по-малко).
- В езицитѣ от високо ниво (напримѣр С&C++) сравненията се означават еднакво, но за всѣ̋ко число трѣ̋бва да се знае в какъв вид сравнения участва (unsigned или signed).
- Трето. Кога да се маркира особена ситуация.
- При знакова интерпретация, ако към 01111111 (127 десетично) добавим единица, ще се получи прѣпълване (integer overflow), тъй като резултатът минава в диапазонът на отрицателнитѣ числа.
- Сѫщата операция над сѫщитѣ елементи на пръстенът, но при адресна интерпретация, не бива да се маркира като особена ситуация.
- При адресна интерпретация особени ситуации възникват в други случаи.
- Напримѣр, особена ситуация от такъв тип е stack overflow.
- (.. скрий го цикличното броене в компютритѣ ..) (.. скрий го второто отклонение ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Ако числата се прѣдставят в radix 10 (десетична позиционна бройна система, r = 10)
и се ограничим до осем разряда (осем цифри, n = 8), ще можем да получим смѣ̋тане
в пръстенът на остатъцитѣ по модул 100000000. Сто милиона - десет на осма -
r на степен n -
това е мощността на пръстенът, толкова елемента той съдържа.
- ◄► (.. скрий го отклонението за цикличното броене ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ втората бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ◄► (.. скрий я̨ втората бесѣда ..) (.. свий я̨ ..) (.. посвий или поразгъни ..) (.. разгъни я̨ ..) .. към началото ..
►► 4. Бродерия на тракащ принтер (.. покажи я̨ третата бесѣда ..) (.. разгъна̨то ..) .. към началото ..
- Аз като студент по бакалавърска програма в математическия̌т факултет.
- По спомени от лѣ̋тото на 1977 - на стаж в Търново. ::2023-06-13 18:09::
▼▼ 4. Спомени от лѣ̋тото на 1977: Бродерия на тракащ принтер (.. скрий я̨ третата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
::2023-06-13 18:09::- ►► Аз като студент по бакалавърска програма в математическия̌т факултет (.. покажи ..) (.. разгъна̨то ..) (.. скрий я̨ третата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
-
▼▼
Аз като студент по бакалавърска програма в математическия̌т факултет
(.. скрий ..)
(.. свий ..)
(.. разгъни ..)
- ►► Реформитѣ на Благовѣст Сендов в математическия̌т факултет на софийския̌т университет (.. покажи ги ..)
-
▼▼
Когато бѣ̋х студент, Благовѣст Сендов бѣше ректор на университетът.
(.. скрий ..)
- Но прѣди това е бил декан на математическия̌т факултет. И като такъв е направил слѣднитѣ реформи или поне е съдѣйствал за тѣ̋х:
- По примѣрът на цивилизования̌т свѣ̋т висшето образование по математика в софийския̌т университет е стана̨ло двустепенно:
бакалавърска и магистърска степен.
- Конспиративното име на бакалавърската степен бѣше "блок_А", а на магистърската степен - "блок_B".
- Имаше и "блок_C" - аспирантура. Завършваше се с кандидатска степен. Сега това се приравнява на докторска степен.
- Не познавам никого, който да си е остана̨л само с "блок_А" и бакалавърска степен. Но вѣроятно е имало такива. Тѣ получаваха̨ диплома за висше образование по математика. И можѣха̨ да работя̨т като компютърни програмисти в изчислителнитѣ центрове.
- Почти всички колеги, които завършваха̨ бакалавърска степен по математика с конспиративно име "блок_А", продължаваха̨ образованието си или в "блок_B" за магистърска степен, или в "блок_D", къдѣто получаваха̨ педагогическа квалификация за учители по математика.
- Аз съм завършил и с двѣтѣ квалификации - магистър по математика и учител по математика.
- Но прѣз цѣ̋лата си професионална кариера съм работил само като компютърен програмист и софту̌ерен инженер.
- Английския̌т език - задължителен за бакалавритѣ по математика.
- Срѣдното образование включваше и обучение по западен език - френски, нѣмски или английски, но зрѣлостницитѣ не го усвоявахме този език.
- Естествено бѣше обучението по западен език да продължи и във висшето учебно заведение.
- Във факултетът по математика на софийския̌т университет задължителен бѣше английския̌т език.
- Прѣз семестритѣ не учѣхме нито английски, нито друг западен език.
- За нас се организираха̨ интензивни лѣтни курсове: прѣз лѣ̋тото слѣд първи курс (1975) и прѣз лѣ̋тото слѣд втори курс (1976).
- Интензивни курсове - всѣки ден по шест часа английски.
- Имаше отдѣлни групи за начинаещи като мене и за напрѣдна̨ли (които сѫ учили английски като срѣдношколци).
- Аз си остана̨х с гимназиалното ниво по френски език и трѣ̋бваше да започна̨ да уча̨ английски език.
- За мене това бѣше добър късмет.
- Отклонение за руския̌т език. Разчиташе се, че от 5-ти до 9-ти клас учащитѣ се сѫ го усвоили руския̌т език. Винѫги ни се е налагало да ползваме учебна литература на руски език и не сме имали проблеми нито аз, нито колегитѣ. Не може цѣ̋лата специализирана литература да се прѣвеђа и издава на български. Край на отклонението за руския̌т език.
- Интеграция на Факултетът по математика към Софийския̌т университет и на
Институтът по математика към БАН във Единен център по математика.
- Не мога̨ да формулирам какво значение имаше това за мене. Но за нѣ̋кои мои колеги това бѣше важно.
- Сега в България всички уча̨т английски от дѣтската градина, във висшето образование сѫ отдѣлени магистърска и бакалавърска степен не само в математиката.
- Но интеграцията међу софийския̌т университет и БАН едва ли е устоѣ̋ла на врѣмето.
- (.. скрий ги реформитѣ на Благовѣст Сендов ..) (.. скрий ги споменитѣ ми от 1975..76..77 ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
- ►► Не съм ходил на лѣтни студентски бригади. (.. покажи ..)
-
▼▼
Не съм ходил на лѣтни студентски бригади.
(.. скрий ..)
- Есеннитѣ студентски бригади не сѫ ми се размина̨ли.
- Ямболската консервена фабрика.
- Разни села из Сѣверозападна България.
- Но на лѣтни студентски бригади не съм ходил.
- Слѣд първи и втори курс студентитѣ от математическия̌т факултет на софийския̌т университет посѣщавахме интензивни курсове по английски и бѣ̋хме освободени от лѣтни бригади.
- Слѣд трети курс прѣз лѣ̋тото трѣ̋бваше да изкараме нѣ̋какъв стаж.
- Вѣроятно така е било и в другитѣ факултети и вузове - стаж вмѣсто бригада слѣд трети курс.
- Като ученик в търновската гимназия съм ходил и на лѣтни, и на есенни бригади.
- Помня̨, че когато се уби Гунди, бѣ̋х на бригада в еленския̌т балкан за бране на малини.
- Помня̨ и една есенна бригада в Рѣсен, в прѣдприятието за производство на сѣмена.
- Динитѣ там ги пускаха̨ в една машина да ги мачка и да отдѣля сѣмкитѣ.
- Ядѣ̋хме дини на корем, но сѣмкитѣ трѣ̋бваше да ги плюем и да ги прѣдаваме.
- А бе сега кой я̨ прибира селско-стопанската реколта?
- Пълно е с малини на пазарът. Кой се боде и ги бере тѣзи малини?
- (.. скрий защо не съм ходил на лѣтни бригади ..) (.. скрий ги споменитѣ ми от 1975..76..77 ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
- Есеннитѣ студентски бригади не сѫ ми се размина̨ли.
- ►► Подготовката ми за бѫдещата ми трудова дѣйност. (.. покажи ..)
-
▼▼
Подготовката ми за бѫдещата ми трудова дѣйност.
(.. скрий ..)
- Дипломирал съм магистър по математика със специалност "реален и функционалем анализ" и с допълнителна квалификация за учител по математика.
- Но прѣз цѣ̋лата си професионална кариера съм работил само като компютърен програмист и софту̌ерен инженер.
- Не трѣ̋бва да си мислите, че двугодишното ми обучение по магистърската програма е било за мене безполезно.
- Напротив.
- Бих прѣпорѫчал на всички, които имат тази възможност, да не остават с бакалавърска степен, а да си изкарат и диплома за магистър.
- Първо. Дипломата за магистърска степен е цѣнна. С нея̨ университетът увѣрява бѫдещитѣ Ви работодатели, че Вие имате умѣнията да оглавите проект.
- Вѣроятно, това е вѣ̋рно не само в областта на математиката и в компютърната индустрия, а и в други области.
- Думата "магистър" може да се прѣведе като "майстор".
- Второ. Обучение по магистърската програма на мене ми я̨ разшири общата култура.
- А за работата в компютърнара индустрия така и така е нужно постоянно човѣк да се учи на нови нѣща.
- Защото това е нова бързо развиваща се област.
- Лично аз се бѣ̋х задѫлбочил в математическата логика и основитѣ на математиката.
- Трето. Маловажно, но конкретно. Започна̨х работа на 1979-10-01 с начална заплата 120 лева.
- Ако си бѣ̋х остана̨л с бакалавърска степен, стартовата ми заплата щѣше да е 105 лева.
- Но наистина, повечето от техническитѣ умѣния, които ми бѣ̋ха̨ нужни, за да започна̨ работа в компютърната индустрия,
ги бѣ̋х усвоил прѣз обучението ми по бакалавърската програма.
- На първо мѣ̋сто, фундаментални курсове по алгебра, включително линейна алгебра.
- На второ мѣ̋сто, фундаментални курсове по ACM.
- Първа и втора част съотвѣтно в първи и втори курс.
- Съкращението ACM имаше двѣ разшифровки:
- На български: Автоматични Смѣтачни Машини.
- На английски: Automatical Computing Machines.
- И на трето мѣ̋сто, курсове по числени методи и по изслѣдване на операциитѣ (оптимиране).
- И всичко това с практически упражнения.
- Наред с фундаменталнитѣ въпроси, в курсът по ACM се усвояваха̨ и слѣднитѣ технически умѣния:
- JCL (Job Control Language) за DOS/360.
- Езицитѣ от този тип сега сѫ много по-развити и се наричат shell scripts.
- Езикът за програмиране PL/1.
- Той стана̨ "родния̌т ми език за програмиране".
- Прѣз първитѣ години на професионалната си кариера работѣх на него.
- На втория̌т национален конкурс по програмиране прѣз 1986, къдѣто спечелих голѣ̋мата награда, се състезавах на PL/1.
- Езикът за програмиране Fortran.
- Като студент го бѣ̋х усвоил добрѣ.
- Повечето практически упражнения ги правѣхме на Fortran.
- В професионалната си кариера обаче не съм ползвал Fortran.
- JCL (Job Control Language) за DOS/360.
- Отклонение. АСМ или ЕИМ?
- На професионален жаргон думата компютри никога не е била смѣсвана с думата калкулатори.
- На професионален жаргон винѫги се е употрѣбявала и думата машини, но само със значението компютри.
- И тритѣ тѣзи думи калкулатори, компютри и машини сѫ се употрѣбявали, откакто се помня̨.
- Абревиатуритѣ (съкращенията) АСМ и ЕИМ сѫ елементи на канцеларския̌т езиков стил и не се употрѣбяваха̨ в устната рѣч.
- АСМ: Автоматични Смѣтачни Машини.
- ACM: Automatical Computing Machines.
- ЕИМ: Електронни Изчислителни Машини.
- ЭВМ: Электронные Вычислительные Машины.
- Абревиатурата АСМ по-точно изразява сѫщността на компютритѣ като автоматични машини, за разлика от калкулаторитѣ.
- Но навсѣ̋къдѣ извън факултетът по математика грађанственост доби съкращението ЕИМ, което точно съотвѣтстваше на руското ЭВМ.
- Макар че абревиатуритѣ ЕИМ (ЭВМ) сѫ неточни, понеже електроннитѣ калкулатори сѫ сѫщо така електронни изчислителни машини, но не сѫ компютри.
- Отклонение в отклонението.
- Машината, която Џон Атанасов, професор по физика в университетът в Айова, е започна̨л да конструира, е била замислена като електронна изчислителна машина, но не като програмируем компютър.
- Автоматичната смѣтачна машина, която нѣмецът Конрад Цузе е конструирал, не е била електронна, но е била истински програмируем компютър.
- Край на отклоненията.
- (.. скрий я̨ подготовката ми като студент по бакалавърската програма ..) (.. скрий ги споменитѣ ми от 1975..76..77 ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
- ◄► (.. скрий ги споменитѣ ми от 1975..76..77 ..) (.. свий ги ..) (.. разгъни ги ..) (.. скрий я̨ третата бесѣда по споменитѣ ми от 1977 ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► На стаж в Търново (.. покажи ..) (.. скрий я̨ третата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
-
▼▼ На стаж в Търново
(.. скрий ..)
- Като студенти по бакалавърска програма слѣд трети курс трѣ̋бваше да изкараме нѣ̋какъв производствен стаж.
- Аз и още един колега карахме стажът си в търновския̌т териториален изчислителен център.
- Лѣ̋тото на 1977.
- Колегитѣ от териториалния̌т изчислителен център бѣ̋ха̨ така добри да ни разрѣшават да гледаме и да пипаме, без да ни дават задачи.
- Никак не ни ограничаваха̨, но и никак не разчитаха̨ на нас при развойнитѣ си и производственитѣ си задачи.
- Териториалния̌т изчислителен център бѣше оборудван с машина ЕС ЭВМ, младши модел, българско или съвѣтско производство.
- По онова врѣме не ме интересуваха̨ по-точни технически данни и нѣ̋ма как да помня̨.
- (.. скрий ги споменитѣ ми за стажът в Търново ..) (.. скрий я̨ третата бесѣда по споменитѣ ми от 1977 ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Бродерия на тракащ принтер (.. покажи ..) (.. разгъна̨то ..) (.. скрий я̨ третата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
-
▼▼ Бродерия на тракащ принтер
(.. скрий ..)
(.. свий ..)
(.. разгъни ..)
- ►► Като си нѣ̋мах друга работа, рѣших да избродирам картинка на принтер.. (.. покажи ..)
-
▼▼
Прѣз лѣ̋тото на 1977,
(.. скрий ..)
- докато бѣ̋х на стаж в търновския̌т териториален изчислителен център,
- като си нѣ̋мах друга работа,
рѣших да избродирам картинка на принтер.
- По онова врѣме се разпространяваха̨ подобни бродерии.
По-извѣстнитѣ бѣ̋ха̨:- "Изплѣзил ми се е Айнщайн"
- "Маймуна в дѫлбок размисъл се почесва зад ухото"
- Календар за текущата година
- Хората си ги разпечатваха̨ и си ги лѣпѣ̋ха̨ по стѣнитѣ.
- Вѣроятно и в търновския̌т териториален изчислителен център е имало такива.
- Използваше се достѫпната печатна база с цѣл забавление.
- Такива избродирани за тракащ принтер картинки трѣ̋бваше да се гледат отдалече.
- Избрах си да избродирам слѣдната подходяща grayscale картинка:
- Бѣ̋х я̨ намѣрил в Търново в нѣ̋какво списание.
- (.. скрий го рѣшението ми да бродирам на принтер ..) (.. скрий я̨ бродерията на принтер ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Принтери: тракащи, стържещи, рѫмжащи.. (.. покажи ..)
-
▼▼
Принтери: тракащи, стържещи, рѫмжащи..
(.. скрий ..)
- Съврѣменнитѣ принтери сѫ лазерни.
- Тѣ произвеђат цѣ̋ла страница наведнѫж.
- При работа рѫмжа̨т приглушено или съвсѣм тихо.
- Лазернитѣ принтери замѣстват нѣ̋когашнитѣ плотери при производството на чертежи.
- Сѣврѣменнитѣ цвѣтни лазерни принтери мога̨т да произвеђат картинки с фотографско качество.
- Да бродирам картинка на принтер се налагаше, само защото тогава - прѣз 70-тѣ, нѣ̋маше лазерни принтери.
- Друг вид принтери сѫ игленитѣ.
- При тѣ̋х пишеща глава се движи по хартията и с удари от иглички отпечатва знацитѣ.
- При движение на иглената глава по хартията се чува стържене.
- Миниатюрнитѣ иглички в печатащата глава мога̨т да изрисуват практически всѣ̋ка буква и всѣки йероглиф.
- Но картинка, произведена с такъв принтер, нѣ̋ма да има фотографско качество - тя винѫги ще изглеђа като бродерия.
- Сега стържещи принтерчета в миниатюрни размѣри се използват за печат на разни разписки и касови бѣлѣжки.
- Стигна̨хме и до линейнитѣ принтери (line printers), дѣто тракат.
- Вече нѣ̋ма такива - измѣстени сѫ от тихо рѫмжащитѣ лазерни принтери, които прѣвъзхођат линейнитѣ тракащи принтери и по бързина, и по качество.
- Прѣз 70-тѣ и 80-тѣ, повечето компютри у нас бѣ̋ха̨ оборудвани с линейни принтери полско производство.
- Такъв имаше и в търновския̌т териториален изчислителен център, къдѣто прѣз лѣ̋тото на 1977 карах стаж.
- Барабанът на тракащ линеен принтер удря хартията и с един удар отпечатва цѣ̋л ред.
- Но прѣди да удари, на всѣ̋ка позиция се установява релефната фигурка на съотвѣтната буква или цифра.
- С помощта на електрониката и фината механика.
- Такива релефни фигурки имаше по върховетѣ на лостчетата на старитѣ пишещи машини (typewriters), като при тѣ̋х тѣзи лостчета се задвижваха̨ с клавиши.
- Доколкото си спомням, линейнитѣ принтери имаха̨ по 132 знака на ред.
- Може да е имало и по-широки принтери.
- Имаше специална хартия за линейни принтери.
- Произвеђаше се с нѣ̋колко стандартни ширини.
- Обикновено една страница от такава хартия събираше 66 реда, отпечатани на линеен принтер.
- Принтерът можѣше да се програмира да удря на един и сѫщ ред повече от веднѫж, отпечатвайки различни текстове.
- Напримѣр, с втори и трети удар нѣ̋коя дума можѣше да се удебели (bold face).
- Но много удари на едно мѣ̋сто можѣха̨ да скѫсат хартията.
- Докато един стържещ иглен принтер би могъл да се настрои така, че игличкитѣ му да мога̨т да отпечатват огромно множество знаци (фирмени емблеми, китайски йероглифи), за линейнитѣ принтери това бѣше невъзможно.
- Един линеен принтер разполагаше с ограничен набор от знаци - около 90, тоест по около 90 релефни фигурки за буква или цифра на всѣ̋ка от 132-тѣ позиции на един ред.
- Латинското A и кирилското А се отпечатваха̨ с една и сѫща фигурка, разбира се.
- Да не говорим, че тѣ и се кодираха еднакво в ДКОИ/EBCDIC.
- (.. скрий ги видоветѣ принтери ..) (.. скрий я̨ бродерията на принтер ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- Съврѣменнитѣ принтери сѫ лазерни.
- ►► Перфокарти втора употрѣба (.. покажи ..)
-
▼▼
Перфокарти втора употрѣба - такива използвах..
(.. скрий ..)
- По врѣмето, когато бѣ̋х на стаж в търновския̌т териториален изчислителен център - става дума за 1977,
нѣ̋маше друг начин да се вкара нѣщо в компютърът освѣн от перфокарти.
- Става дума за компютър ЕС ЭВМ, аналог на младши модел на IBM/360.
- Тъй че както програмата ми, която да накара тракащия̌т принтер да бродира, така и даннитѣ за самата бродерия
трѣ̋бваше да се въведа̨т в компютърът от перфокарти, слѣд като програмата и даннитѣ се надупча̨т на перфокарти.
- Фирмата IBM е имала развита технология с перфокарти - некомпютърна технология - още от края̌т на 19-ти вѣк.
- Холеритова техника се е наричала. У нас не е бивала внедрявана.
- Аз работѣх с перфокарти в началото на трудовата си дѣйност.
- Бѣ̋х свикна̨л и да ги разчитам.
- Спомням си, че понѣ̋кога казвах: перфокарти мога̨ да чета̨, но магнитни ленти - не.
- От днешна гледна точка, тогавашната практика - и с перфокартитѣ, и с принтеритѣ - бѣше неоправдано прахосване на хартия.
- Обаче нѣ̋маше друг начин да се вкара нѣщо в компютърът освѣн от перфокарти.
- Не можѣше просто от клавиатурата.
- Нѣ̋маше и начин компютърът да покаже нѣщо на човѣк, освѣн излѣ̋зло на принтерът.
- Онѣзи компютри нѣ̋маха̨ достѫп до екрани.
- Рѣших да не натоварвам допълнително колегитѣ от търновския̌т териториален изчислителен център с прѣразход на ресурси.
A перфокартитѣ бѣ̋ха̨ производствен ресурс.- Рѣших за цѣлитѣ на бродерията да използвам перфокарти втора употрѣба.
- Не съм виђал нѣ̋кой друг нѣ̋кога да е ползвал перфокарти втора употрѣба.
- Както JCL/360 (the job control language, тогавашния̌т shell),
така и езицитѣ за програмиране (COBOL, Fortran, PL/1)
често изискваха кѫси редове от програмата,
и слѣдователно - перфокарти с малко перфориран текст.- Напримѣр, цѣ̋ла перфокарта бѣше нужна за означаване на "край на данни" (end-of-data), която имаше перфорация "/*" само в първитѣ двѣ позиции.
- Перфокартата имаше 80 позиции.
- Прѣрових хартиенитѣ отпадъци и намѣрих в достатъчно количество перфокарти с перфорация само в първитѣ 20 позиции.
- Използвах ги, за да перфорирам на тѣ̋х даннитѣ от бродерията.
- Използвах срѣднитѣ 50 позиции на всѣ̋ка перфокарта.
- Послѣднитѣ позиции на перфокартата не бѣ̋ха̨ надѣђни:
четецът на перфокарти (reader-ът) често се запъваше на послѣднитѣ позиции,
може би перфорационнитѣ машини не правѣха̨ добри дупки в края̌т на перфокартата.
- wikipedia: Computer programming in the punched card era
- (.. скрий ги перфокартитѣ ..) (.. скрий я̨ бродерията на принтер ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- По врѣмето, когато бѣ̋х на стаж в търновския̌т териториален изчислителен център - става дума за 1977,
нѣ̋маше друг начин да се вкара нѣщо в компютърът освѣн от перфокарти.
- ►► Пиксели на тракащ принтер (.. покажи ..)
-
▼▼
Пиксели на тракащ принтер
(.. скрий ..)
- В съврѣменни термини, форматът на бродерията нѣ̋ма как да е бил друг освѣн bitmap.
- Тази картинка тука е 129 пиксела на ширина и 185 пиксела на височина.
Това дава прѣдстава за съотношението.
Картинката, която аз избродирах за тракащ принтер,
бѣше около 100 пиксела на ширина и около 144 на височина. - Тъй като една страница на тракащ принтер бѣше 66 реда,
двѣ страници - 132 пиксела на височина, то
избродираната картинка захапваше трета страница. - Остатъкът от третата страница го запълних с календар.
- Картинката е greyscale. Затова я̨ избрах - защото не бѣше цвѣтна.
- Дълбочината ѝ (depth) сега е трудно да я̨ опрѣдѣля̨.
- Тя бѣше повече от два бита.
- Принтерът удряше два пѫти на един ред,
- като при всѣки удар във всѣки пиксел
- можѣше да има нѣ̋кой от знацитѣ "*.Ж/\#", а може би и други.
- Самото бродиране бѣше пипкава работа - само за мене.
- Доосъвършенстването на картинката бѣше още по-пипкава работа.
- То вече бѣше част от дебъгването на програмата.
- Нѣ̋ма да Ви занимавам повече с пипкави работи.
- (.. скрий ги пикселитѣ ..) (.. скрий я̨ бродерията на принтер ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ◄► (.. скрий я̨ бродерията на принтер ..) (.. свий я̨ ..) (.. разгъни я̨ ..) (.. скрий я̨ третата бесѣда по споменитѣ ми от 1977 ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Програмата или по-точно програмитѣ, а бе софту̌ерът (.. покажи ..) (.. разгъна̨то ..) (.. скрий я̨ третата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
-
▼▼ Програмата или по-точно програмитѣ, а бе софту̌ерът
(.. скрий ..)
(.. свий ..)
(.. разгъни ..)
- ►► Опции за дистрибуция - как програмата се разпространяваше (.. покажи ги ..)
-
▼▼
Опции за дистрибуция - как програмата се разпространяваше
(.. скрий ги ..)
- Задачата, с която се бѣ̋х заел по врѣме на стажът ми в търновския̌т териториален изчислителен център прѣз лѣ̋тото на 1977, бѣше развойна задача, задача за производство на софту̌ер, it was a software development task.
- По замисъл срѣдствата за прѣнос и обмѣн на данни и софту̌ер при компютритѣ ЕС ЭВМ бѣ̋ха̨ перфокартитѣ и магнитнитѣ ленти.
- Обаче в практиката перфокартитѣ се използваха̨ само за първичен вход на данни и програми.
- Оборудването, нужно за използването на перфокартитѣ при прѣнос и обмѣн на данни и софту̌ер, макар и налично, бѣше занемарено и не функционираше.
- Не съм го виђал да работи нито в Търново, нито в София.
- Разбира се, тестето перфокарти, изготвено в Търново за първичен вход, можѣх да си го взема̨ в София, но не можѣх да дам копие на другиго.
- Остават магнитнитѣ ленти като единствен носител за прѣнос и обмѣн на данни и софту̌ер в онѣзи условия.
- Обаче в практиката перфокартитѣ се използваха̨ само за първичен вход на данни и програми.
- Какво да се запише на магнитна лента с цѣл дистрибуция (разпространение) на софту̌ерния̌т продукт?
- Сѫществуват три опции:
- картинката във вид подходящ за принтер,
- програмата като обектен модул, или
- програмата в изходен код на PL/1.
- Kартинката във вид подходящ за принтер.
- Съврѣменния̌т аналог е файл за картинка във формат bitmap (.bmp).
- Тогава подобен файл би се получил, ако
програмата, която отпечатва бродираната картинка на тракащ принтер,
или "генерираната програма", както ще бѫде нарѣчена тя по-долу,
се пусне, слѣд като изходът ѝ се прѣнасочи
от принтерът към магнитен носител. - Магнитна лента, съдържаща такъв файл, можѣше да се занесе в друг изчислителен център с машина ЕС ЭВМ и тракащ принтер към нея̨ и там да се разпечата, примѣрно с програмата DITTO.
- Доколкото в картинката бѣше включен и календар, този начин на разпространение не покриваше цѣ̋лата функционалност.
- Нова дистрибуция би била нужна за всѣ̋ка нова година.
- Програмата като обектен модул.
- Това бѣше "легитимния̌т вариант" за дистрибуция, ако не искате да разпространявате изходния̌т код на програмата.
- Програмата, която отпечатва бродираната картинка на тракащ принтер,
или "генерираната програма", както ще бѫде нарѣчена тя по-долу,
е програма на езикът за програмиране PL/1. - Компилаторът от PL/1 обработва тази програма и резултатът от работата му е машинен код във формат обектен модул за DOS/360.
- Този обектен модул може да се запише на магнитма лента и да се занесе в друг изчислителен център с машина ЕС ЭВМ и тракащ принтер към нея̨.
- Там този обектен модул се подава на програмата LNKEDT (Linkage Editor),
и LNKEDT произвеђа готовата за изпълнение програма,
която ще отпечата картинката, като се пусне. - Готовата за изпълнение програма, прѣди да отпечата картинката, трѣ̋бва да прочете от входът си годината за календарът.
- Забѣлѣжѣте, че на мѣстото, къдѣто програмата е получена чрѣз дистрибуция по този вариант, не е задължително да има инсталиран компилатор от езикът PL/1.
- Програмата в изходен код на PL/1
- Програмата, която отпечатва бродираната картинка на тракащ принтер,
или "генерираната програма", както ще бѫде нарѣчена тя по-долу,
е програма на езикът за програмиране PL/1. - Тя е получена като резултат - като изход - от изпълнението на
"генериращата програма", за която ще стане дума по-долу. - Прѣди да се пусне "генериращата програма" изходът ѝ трѣ̋бва да се прѣнасочи към магнитен носител (понеже устройствата за punch на перфокарти никъдѣ не функционираха̨).
- Ако този носител е магнитна лента, то тя може да се отнесе в друг изчислителен център с машина ЕС ЭВМ с тракащ принтер и с компилатор от PL/1.
- Програмата, която отпечатва бродираната картинка на тракащ принтер,
- (.. скрий ги опциитѣ за дистрибуция ..) (.. скрий го софту̌ерът за бродерията ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Частитѣ на програмата (.. покажи ги ..)
-
▼▼
Частитѣ на програмата
(.. скрий ги ..)
- Задачата, с която се бѣ̋х заел по врѣме на стажът ми в търновския̌т териториален изчислителен център прѣз лѣ̋тото на 1977, бѣше развойна задача, задача за производство на софту̌ер, it was a software development task.
- Дѣйноститѣ по тази задача бѣ̋ха̨ от два типа: бродиране и програмиране.
- И в двата случая резултатитѣ сѫ тестета перфокарти.
- Пет тестета, всѣ̋ко в един екземпляр.
- Калѐ-тестѐ: тесте перфокарти с програмата за календарът.
- Тази програма извеђа календар за зададена година.
- Обикновен календар по мѣсеци и дни в седмицата.
- Тука нѣ̋ма да се спирам на нея̨.
- Подготвям друга публикация по календарнитѣ въпроси.
- Това тесте трѣ̋бва да стане част от "генерираната програма".
- Пѝксел-тестѐ: съдържа самата "бродерия" на картинката.
- Най-голѣ̋мото тесте.
- За него изполвах перфокарти втора употрѣба,
- само срѣднитѣ им позиции.
- То трѣ̋бва да влѣзе в "генерираната програма" във фо̀рмата на текстови литерали (константи).
- Прѝнтер-тестѐ: тесте перфокарти с печатащата програма.
- Тя трѣ̋бва първо да изведе на принтерът картинката, слѣд което да пусне и подпрограмата за календарът.
- Това е началната част на "генерираната програма", прѣди текстовитѣ литерали (пѝксел-тестѐто) и прѣди програмата за календарът.
- Ра̀птор-тестѐ: Генера̀[п]торът, "генериращата програма".
- Това е първата програма, която трѣ̋бва да се компилира и да се изпълни.
- Прѣди да се пусне тя за изпълнение, изходът ѝ трѣ̋бва да се прѣнасочи към магнитен носител,
- зашото на изходът ѝ ще се получи "генерираната програма",
която от своя страна- или веднага ще се компилира и ще се изпълни, за да разпечата картинката и календарът,
- или веднага ще се компилира, като получения̌т обектен модул се използва за дистрибуция,
- или пък самата "генерираната програма" ще се използва за дистрибуция.
- "Генериращата програма" (генераторът), като се пусне,
- първо изчита прѝнтер-тестѐто и го извеђа на изходът си,
- послѣ чете срѣднитѣ позиции на пѝксел-тестѐто и прѣобразува прочетенитѣ данни в програмни литерали, които праща към изходът си като част от "генерираната програма",
- и накрая̌ изчита калѐ-тестѐто и го извеђа на изходът си.
- На изходът на генераторът се получава "генерираната програма" на езикът PL/1.
- Виртуално тестѐ JCL: Това не е тесте, а набор от перфокарти.
- Тѣзи перфокарти съдържат команди на езикът JCL.
- Разполагат се правилно около и међу горнитѣ четири тестета.
- С такава перфокарта:
- Mоже да се пусне компилаторът от PL/1.
- Току-що компилираната опрограма може да се свърже (via LNKEDT) и да се пусне.
- Може входът и изходът на програма, прѣди пускането ѝ, да се прѣнасоча̨т.
- Може да се означи края̌т на тесте перфокарти,
- Може да се означи края̌т на заданието към компютърът.
- Благодаря̨ на компютър не се казва.
- Калѐ-тестѐ: тесте перфокарти с програмата за календарът.
- (.. скрий ги частитѣ на програмата ..) (.. скрий го софту̌ерът за бродерията ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ◄► (.. скрий го софту̌ерът за бродерията ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ третата бесѣда по споменитѣ ми от 1977 ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ◄► (.. скрий я̨ третата бесѣда за бродерията на принтер по споменитѣ ми от 1977 ..) (.. свий я̨ ..) (.. посвий или поразгъни ..) (.. разгъни я̨ съвсѣм ..) .. към началото ..
►► 5. ЕГН-то отвѫтрѣ (.. покажи я̨ четвъртата бесѣда ..) (.. разгъна̨то ..) .. към началото ..
- Ако Ви интересува как е съставено ЕГН-то и в частност как се прѣсмѣ̋та контролната цифра. ::2021-10-30 11:13::
▼▼ 5. ЕГН-то отвѫтрѣ (.. скрий я̨ четвъртата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
::2021-10-30 11:13::- ►► ЕГН-то отвън (.. покажи ..)
-
▼▼ ЕГН-то отвън
(.. скрий го прѣдговорът на четвъртата бесѣда ..)
- Когато прѣз годинитѣ 1993..98 работѣх в Банксервиз, знаѣх алгоритъмът за опрѣдѣляне на контролната цифра на ЕГН-то. Моя бѣше програмата, която я̨ провѣряваше. Сѫщия̌т алгоритъм се използваше и за контролната цифра на още два тогавашни банкови идентификатора.
- Сега на стари години цѣлта ми е да си припомня̨ този алгоритъм.
- Отклонение: Единния̌т грађански номер (ЕГН) е въведен прѣз 1977.
- Знаете ли как изглеђаше точната идентификация на човѣкът-поданик прѣди 1977?
- Ето така изглеђаше:
- Жител на еди-кой си окрѫг и на еди-коя си община.
- [Жител на еди-кое си населено мѣ̋сто.]
- Забѣлѣжѣте: жител, не просто живущ или прѣбиваващ.
- Име, презиме, фамилия.
- Дата на рађане.
- Том и страница - отбѣлѣ̋звани в тогавашнитѣ паспорти.
- ЕГН-то бѣ въведено заради компютърнитѣ технологии.
- В САЩ ролята на ЕГН-то изпълнява SSN (Social Securuty Number) - номерът за социално осигуряване.
- Има правило от теорията за базитѣ данни, че
- в идентификаторитѣ на обектитѣ не бива да се кодират други характеристики на тѣзи обекти.
- ЕГН-то не спазва това правило.
- В него сѫ кодирани: датата на рађане, полът - мѫжки или женски, и - едва сега научавам това - окрѫгът.
- Google ме насочи към програма с автор Георги Чорбаџийски.
- Ето го изходния̌т код на тази програма.
- Ето я̨ в дѣйствие.
- Програмата на Георги Чорбаџийски е написана на php, което означава, че тя се изпълнява на web-сървър.
- Аз си нѣ̋мам мѣ̋сто на web-сървър, настоящия̌т мой текст е на blogspot.com, но това е само склад за текстове и картинки. Нѣ̋мам право да пиша̨ програми, които да се изпълняват на blogspot.com.
- Имам право обаче вѫтрѣ в настоящия̌т текст да вмъкна̨ програма, която да се изпълни на Вашето устройство, на Вашия̌т лаптоп или на Вашия̌т смартфон.
- Такава програма трѣ̋бва да бѫде написана на JavaScript.
- Интерпретатор на JavaScript е вграден във всѣки съврѣменен browser, и на Вашето устройство със сигурност има browser, чрѣз който Вие ровите в мрѣжата internet.
- И тъй, занимавката ми е да прѣпиша̨ от php на JavaScript тази част от програмата на Георги Чорбаџийски, която прави анализ на ЕГН-то.
- Програмата на Георги Чорбаџийски има и друга част - генерация на ЕГН-та, тя сѫщо би могла да се прѣпише от php на JavaScript, но ще си спѣстя̨ тази тривиалност.
- .. скрий го ЕГН-то отвън .. (.. скрий я̨ бесѣдата за ЕГН-то отвѫтрѣ ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Изходен код на програмата за изчисляване на контролната цифра (.. покажи ..)
-
▼▼ Изчисляването на контролната цифра в source на JavaScript
(.. скрий ..)
- Изчисляването на контролната цифра по модул 11.
Приема низ от цифри. Връща цифра или празно при невалидни данни. - .. скрий я̨ функцията на JavaScript .. (.. скрий я̨ бесѣдата за ЕГН-то отвѫтрѣ ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- Изчисляването на контролната цифра по модул 11.
-
►► Програмата за изчисляване на контролната цифра в дѣйствие
(.. покажи ..)
-
▼▼ Програмата за изчисляване на контролната цифра в дѣйствие
(.. скрий ..)
Въведете нѣ̋колко цифри, напримѣр първитѣ девет цифри на ЕГН:
Като натиснете , ще получите контролната цифра. -
►► Анализ на въведено ЕГН
(.. покажи ..)
-
▼▼ Анализ на въведено ЕГН
(.. скрий ..)
Въведете десеттѣ цифри на ЕГН-то:
- ◄► (.. скрий я̨ четвъртата бесѣда за ЕГН-то ..) (.. свий я̨ ..) (.. посвий или поразгъни ..) (.. разгъни я̨ ..) .. към началото ..
►► 6. Дисковата памет на System/360 (.. покажи я̨ петата бесѣда ..) (.. разгъна̨то ..) .. към началото ..
- Как развитието на харду̌ерът кара софту̌ериститѣ да забравя̨т старитѣ проблеми и да се захвана̨т с нови.
▼▼ 6. Дисковата памет на System/360 (.. скрий я̨ петата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Нѣщо като прѣдговор, нѣщо като въведение (.. покажи го ..) (.. разгъна̨то ..)
-
▼▼
Нѣщо като прѣдговор, нѣщо като въведение
(.. скрий го ..)
(.. свий го ..)
(.. разгъни го ..)
- ►► Шапка на тояга (.. покажи ..)
-
▼▼
Шапка на тояга. Доживѣ̋х.
(.. скрий ..)
- Прѣз 2018 се пенсионирах, слѣд като придобих изикващитѣ се стаж и възраст за това.
- Пенсионирах се слѣд 40 години работа като компютърен програмист и софту̌ерен инженер.
- В сѫщност бѣ̋х много добър кодировчик.
- Много добрѣ съм се разбирал с компютритѣ.
- Влизал съм им под тенекиитѣ - при битоветѣ.
- Защото тѣ само от битове разбират.
- С компютри съм се занимавал от 70-тѣ:
- като ученик в началото на 70-тѣ;
- като студент в срѣда̀та на 70-тѣ; и
- професионално от края̌т на 70-тѣ.
- Едва ли има друга технологична област с толкова много промѣни.
- Ако кажа̨, че прѣз 70-тѣ или 80-тѣ съм можѣл да прѣдскажа̨ бѫдещето, ще излъжа̨.
- (.. скрий това, че дочаках пенсия ..) (.. скрий го въведението към петата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Какво го нѣ̋ма днес при компютритѣ. И добрѣ че го нѣ̋ма. (.. покажи ..)
-
▼▼
Какво го нѣ̋ма днес при компютритѣ - това ще е тази пета бесѣда.
(.. скрий ..)
- Нѣ̋ма бездискови компютри.
- Нѣ̋ма канални програми.
- Нѣ̋ма потрѣбителско форматиране на дисковитѣ писти.
- Нѣ̋ма значение геометрията на дисковетѣ.
- Нѣ̋ма намѣстване на файловетѣ върху дискът от потрѣбителя̌т.
- Нѣ̋ма сподѣлени цилиндри.
- Нѣ̋ма осигурен от харду̌ерът асоциативен достѫп до дискът.
- Нѣ̋ма си прѣдстава системния̌т софту̌ер за вѫтрешната структура на файловетѣ.
- Нѣ̋ма магнитни глави отдѣлно от дисковетѣ.
- То и истински дискове нѣ̋ма вече.
- SSD-тата дискове ли сѫ?
- Върша̨т работа като дискове. Минават за дискове.
- (.. скрий какво го нѣ̋ма днес ..) (.. скрий го въведението към петата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ◄► (.. скрий я̨ петата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Бездискови компютри (.. покажи ги ..)
-
▼▼
Бездискови компютри
(.. скрий ги ..)
- Срѣдношколски спомени.
- Завършил съм гимназия (11-ти клас) прѣз 1972 със специалност "изчислител-кодировчик".
- В 9-ти клас за компютритѣ Минск-2 се учѣхме да кодираме на машинен език.
- Сега това го правя̨т програми, нарѣчени асемблери.
- В дѣйствителност, учебната програма бѣше остарѣ̋ла.
- Тогава вече никой не е пишѣл компютърни програми на машинен език.
- Все пак, тѣзи упражнения бѣ̋ха̨ полезни за мене.
- В гимназията не бѣ̋х чувал за дискови устройства.
- Компютритѣ Минск-2 и Минск-22 нѣ̋маха̨ дискови устройства.
- Тѣ май нѣ̋маха̨ никакви магнитни устройства.
- Повече за компютритѣ Минск-2 - в първата бесѣда.
- Прѣз 70-тѣ в България се появиха̨ териториални изчислителни центрове.
- В нѣ̋кои имаше компютри Минск-32, които имаха̨ магнитни ленти, но не и дискове.
- Водиха̨ ни на екскурзия в София и ни показаха̨ компютър FACOM - с магнитни ленти, без дискове.
- Магнитнитѣ ленти впечатляващо се въртѣ̋ха̨.
- Прѣз 80-тѣ колеги от варненско прѣдприятие ми разказаха̨.
- Имали стар оригинален компютър IBM/System-360. Но без дискове.
- Знаѣх, че първитѣ модели на IBM/System-360 нѣ̋мат дискове.
- Работѣл стабилно и безотказно. Вършѣл им работа.
- Не искали да го замѣнят с нов модел, който нѣ̋ма как да бѫде друг освѣн от некачественото производство отсам желѣ̋зната завѣса.
- Докато бѣ̋х в казармата, съм пропусна̨л двѣ важни събития:
- оттеглянето на Brigitte Bardot, и
- появата на компютърнитѣ дискове.
- Като студент и като професионалист не съм работил на бездискови компютри.
- Разни терминални устройства може вѫтрешно да сѫ приличали на компютър.
- Обаче устройство, което не прѣдлага програмистки достѫп, за мене не е компютър.
- Забѣлѣжка_1. Съврѣменнитѣ смартфони сѫ компютри. Тѣ имат диск (макар и SSD). Прѣдлагат и програмистки достѫп за този, който знае как.
- Забѣлѣжка_2. Най-разнообразни устройства мога̨т да съдържат вграден (embedded) софту̌ер. Компютри се използват за създаването му и вѣроятно за самото вграђане.
- Споменатитѣ компютри - Минск-2, Минск-32, Facom-230–30 (ЗИТ-151), нѣ̋мат магнитно-дискови устройства.
- Нѣ̋мат енерго-независима външна памет с прѣ̋к достѫп.
- Били сѫ в експлоатация у нас прѣз 60-тѣ и 70-тѣ.
- Вече нѣ̋ма такива компютри. Слава Богу!
- (.. скрий ги бездисковитѣ компютри ..) (.. скрий я̨ петата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- Срѣдношколски спомени.
- ►► Канали (периферни процесори) и канални програми (.. покажи ги ..)
-
▼▼
Канали (периферни процесори) и канални програми
(.. скрий ги ..)
- Дисковетѣ сѫ дошли у нас със системата IBM/360 (ЕС ЭВМ).
- Забѣлѣжка_1. В прѣдния̌т раздѣл на тази бесѣда стана̨ дума, че ..
- сѫ сѫществували младши модели на IBM/360 без дискове.
- Прѣдполагам, че когато сѫ планирали системата ЕС ЭВМ, не сѫ съзнавали голѣ̋мото значение и изключителната важност на дисковетѣ.
- "Социалистическа" България извадила късмет.
- Заводът за дискове го построили в Стара Загора.
- И този завод нѣ̋колко послѣдователни години бѣше монополист в производството на магнитно-дискови устройства в пространството от Бранденбургската врата до Владивосток.
- И реализираше голѣми печалби като монополист.
- Докато другитѣ страни от СИВ (СЭВ, Comecon) не се усѣтиха̨.
- Към края̌т на 80-тѣ монополът бѣше загубен.
- Забѣлѣжка_2. В
първата бесѣда
стана̨ дума за ..
- компютърът Витоша, изработен в един екземпляр от български учени и инженери.
- Оперативната му памет (RAMът му) е бил[а] реализиран[а] на магнитен барабан.
- Да, вѣрно е, че магнитния̌т барабан (drum) е вид диск
(диск с много глави и само един цилиндър),
но в компютърът Витоша този барабан (или диск) се е ползвал като оперативна памет, а не като трайна външна памет. - Пък и тогава - прѣз 70-тѣ, бѣ̋х чувал за фамозния̌т компютър Витоша, но прѣдстава си нѣ̋мах за строежът му.
- Забѣлѣжка_1. В прѣдния̌т раздѣл на тази бесѣда стана̨ дума, че ..
- Сега чиповетѣ "централен процесор" сѫ евтино масово производство
и се влагат в най-различни издѣлия.
- Във всѣки смартфон има един-два.
- Във всѣки автомобил има десетина.
- Тогава обаче централния̌т процесор на IBM/System-360 заемаше шкаф.
- Централния̌т процесор бѣше смѣ̋тан за скѫпа част от оборудването.
- Част, която трѣ̋бва да се щади. И да се разтоварва.
- В сѫсѣдство със шкафът на централния̌т процесор на IBM/System-360 бѣ̋ха̨ разположени перифернитѣ процесори.
- В "научната" литература тѣ се наричаха̨ "периферни процесори".
- Но в дикументацията на IBM се наричаха̨ канали (channels).
- Знаѣхме ги като канали.
- Сигурно е имало различни конфигурации на каналитѣ, но аз съм виђал само една:
- Три канала: 2, 1 и 0.
- Към 2-ри канал се включваха̨ магнитно-лентовитѣ устройства.
- Към 1-ви канал се включваха̨ магнитно-дисковитѣ устройства.
- А нулев канал бѣше прѣдназначен за бавната периферия: конзола, принтер, четец на перфокарти (reader) и пънч (punch).
- Оборудването за пънчът бѣше налично и значи заплатено.
- Но работещ пънч не съм виђал.
- Във Варна, къдѣто прѣз 80-тѣ все още експлоатирани стар оригинален бездисков модел на IBM/System-360, за което стана̨ дума в прѣдишния̌т раздѣл, пънчът си работѣл безотказно.
- При бездискова система имаше по-малко възможности да се елиминира необходимостта от пънч.
- И тъй, става дума за управлението на периферията на IBM/System-360, за входно-изходнитѣ (Input/Output, I/O) операции.
- Това е работа на каналитѣ (на перифернитѣ процесори).
- Особеното в архитектурата на IBM/System-360 е, че каналитѣ сѫ процесори и изпълняват програми.
- Каналнитѣ програми сѫ на машинния̌т език на каналитѣ,
който е много различен от машинния̌т език на централния̌т процесор.
- Тѣ се състоя̨т от 8-байтови команди.
- Една такава команда се наричаше CCW (Channel Command Word, ЦеЦеВѐ).
- При писане на канални програми от потрѣбител мнемоничността е минимална.
- Появата на адресната прѣадресация (на виртуалната памет) във IBM/System-370 (виж слѣдващата бесѣда) направи писането на канални програми от потрѣбител невъзможно.
- Чрѣз канална програма може да се разглоби входен запис или да се сглоби изходен запис.
- Примѣр. Нека на входът имаме записи по 80 байта (перфокарти) за всѣки човѣк от прѣдприятието.
- Първитѣ пет байта - служебен номер.
- Слѣдващитѣ десет байта - ЕГН.
- Слѣдващитѣ тридесет байта - име, прѣзиме, фамилия.
- До края̌т на перфокартата - други данни: отдѣл. адрес, и т. н.
- Интересуват ни само служебния̌т номер и полето "име, прѣзиме, фамилия".
- Чрѣз канална програма каналът може да бѫде инструктиран да пропуска даннитѣ, които не сѫ от интерес - да не се заема оперативна памет за тѣ̋х.
- Чрѣз канална програма каналът може да бѫде инструктиран даннитѣ, които сѫ от интерес, да бѫда̨т разположени в паметта в указан ред, а не непрѣмѣнно както сѫ във входния̌т поток.
- Чрѣз канална програма може да се осѫществи асоциативен достѫп до дискът.
- На това е посветен отдѣлен раздѣл на тази бесѣда.
- Свързано е и с потрѣбителското форматиране на дисковитѣ писти, на което сѫщо е посветен отдѣлен раздѣл.
- И тогава, и сега
елементарнитѣ операции с перифернитѣ (входно-изходнитѣ) устройства
се извършват с посрѣдничество на харду̌ерни устройства, нарѣчени контролери.
- Контролерът знае особеноститѣ на съотвѣтното периферно устройство.
- Контролерът е настроен и към харду̌ернитѣ интерфейси на съотвѣтния̌т компютър.
- При компютритѣ от системата IBM/360 (както и при IBM/370), всѣки контролер бѣше свързан с нѣ̋кой канал (с нѣ̋кой периферен процесор).
- При всички по-модерни компютри контролеритѣ сѫ свързани с централния̌т процесор, а повечето от тѣ̋х имат достѫп и до оперативната памет (до RAMът).
- Нѣ̋ма вече канали (периферни процесори).
- Нѣ̋ма вече и канални програми. Слава Богу!
- Съврѣменнитѣ процесори сѫ толкова бързи, че нѣ̋ма защо да се щадя̨т и да се разтоварват.
- И ако трѣ̋бват повече от един, слагат се толкова, колкото е нужно.
- Защо тѣзи процесори трѣ̋бва да имат толкова различни архитектури и различни машинни езици?
- Сега сѫществуват обособени части на системния̌т софту̌ер, нарѣчени
драйвери (drivers).
- Всѣ̋ко периферно харду̌ерно устройство (drive) си върви в комплект с drivers (драйвери) за всѣ̋ка компютърна архитектура и платформа.
- Драйверът, който е софту̌ер, се разбира с контролерът, който е харду̌ер.
- Драйверът подава команди на контролерът, който знае как да накара устройството да изпълни командата.
- Драйверът получава отчет от контролерът за изпълнението на задачата.
- Драйверът получава отчет от контролерът за текущото състояние на устройството.
- Тогава на нивото на сегашнитѣ драйвери имаше системен софту̌ер, нарѣчен методи на достѫп (access method).
- Каналнитѣ програми бѣ̋ха̨ части от методитѣ на достѫп.
- Имахме си работа с три метода на достѫп:
- послѣдователен (sequential),
- прѣ̋к (direct), и
- индексно-послѣдователен (indexed sequential, ISAM).
- (.. скрий ги каналнитѣ програми ..) (.. скрий я̨ петата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- Дисковетѣ сѫ дошли у нас със системата IBM/360 (ЕС ЭВМ).
- ►► Потрѣбителското форматиране (.. покажи го ..) (.. разгъна̨то ..)
-
▼▼
Потрѣбителското форматиране
(.. скрий го ..)
(.. свий го ..)
(.. разгъни го ..)
- Потрѣбителското форматиране на дисковитѣ писти съм го срѣщал само в системитѣ IBM/360 и IBM/370.
- Да, на потрѣбителитѣ им се налагаше да форматират дискети, но тогава се прилагаше фабрично форматиране, стандартно форматиране.
- При форматиране на дискета потрѣбителя̌т не указваше как тя да бѫде форматирана.
- За да се разбере проблемът с форматирането на дисковитѣ писти,
(.. покажи ..)
(.. покажи ..) първо трѣ̋бва да имаме прѣдстава за магнитнитѣ ленти. - За да се разбере проблемът с форматирането на дисковитѣ писти,
(.. скрий ..)
първо трѣ̋бва да имаме прѣдстава за магнитнитѣ ленти. (.. скрий ..)- Понеже една неформатирана писта на магнитен диск е като магнитна лента. Е да, доста по-кѫса.
- Човѣк може да види и даже да прочете запис върху перфолента или перфокарта.
Човѣк може да види баркод или QR-код.
Но не и магнитен запис. Човѣк нѣ̋ма сѣтива за това. - Стандартнитѣ магнитни ленти от 70-тѣ и 80-тѣ бѣ̋ха девет-пистови (девет-пѫтечкови, 9 tracks).
- Това, което се виђаше като магнитна глава на устройството, в дѣйствителност бѣше букетче от девет глави за запис и четене.
- Отклонение_1. Осем плюс едно е девет.
- Или броя̌т на пиститѣ при стандартнитѣ магнитни ленти бѣше девет, защото в индустрията вече бѣше установено понятието байт като редица от осем бита.
- Или понятието байт като редица от осем бита е възникна̨ло заради установилия̌т се деветпистов стандарт при магнитнитѣ ленти.
- Как да е. Връзка има.
- При най-простия̌т метод на запис (NRZ, 800bpi), можете да си прѣдставяте магнитната лента като девет-пѫтечкова перфолента.
- На всѣ̋ка позиция - 0 или 1 - има или нѣ̋ма дупка.
- На всѣки ред - девет позиции, девет бита.
- Деветия̌т бит е за контрол по нечетност (odd parity).
- Ако на редът, който е съставен от девет бита, нѣ̋ма нито една дупка - нито една единица, то на този ред нищо не е записано.
- Защото дори байт, съставен от осем нулеви бита, се записва с единица в пѫтечката за контрол по нечетност.
- Броя̌т на единицитѣ (на дупкитѣ) на един ред трѣ̋бва да е нечетен.
- Редоветѣ, къдѣто има нѣщо записано, трѣ̋бва да сѫ групирани в записи (records).
- Понѣ̋кога вмѣсто запис (record) се казваше блок (block).
- Имаше ограничения за дължината на един запис.
- Устройството се сърдѣше, ако записът е по-кѫс от 18 байта.
- Не се приемаха̨ и твърдѣ дълги записи, защото лентата може много да се разпъне на такова мѣ̋сто при скоростта на четене.
- Устройството не може да си почива вѫтрѣ в един запис (вѫтрѣ в един блок).
- Освѣн това, на самия̌т край на блокът има един или два контролни байта.
- Устройството си почива међу записитѣ (међу блоковетѣ).
- За цѣлта међу записитѣ се оставя празнина (gap), достатъчно дълга, така че да даде възможност на устройството да спре међу два записа и да може слѣд това да ускори до скорост за четене прѣди достигане на слѣдващия̌т блок.
- Отклонение_2. Чист спирт за почистване на магнитнитѣ глави.
- Главитѣ на магнитно-дисковитѣ устройства сѫщо се замърсяваха̨, но почистването им изискваше специална квалификация и се правѣше при редовна харду̌ерна профилактика.
- А да чистя̨ главитѣ на магнитно-лентовитѣ устройства се е налагало и на мене.
- Чист спирт винѫги бѣше на разположение за цѣлта в нѣ̋кой шкаф или чекмеџе - знаѣше се къдѣ, заедно с чисто парцалче.
- Имаше едно българо-съвѣтско прѣдприятие на софийската улица Александър Стамболийски.
- Там дошъл на работа ново-назначен директор - прямо из Москвы или прямо из Минска - не знаю точно.
- И първата му работа била да провѣри как се съхранява чистия̌т спирт, нужен за почистване на магнитнитѣ глави.
- Наложило се да му обясняват, че никой в България нѣ̋ма да пие чист спирт при наличието на толкова много спиртни напитки.
- Ролкитѣ с магнитни ленти се произвеђаха̨ в три стандарни дължини: 600ft, 1200ft и 2400ft.
- Най-голѣмитѣ ролки не се събираха̨ в дамска чанта.
- Архив на пълен 20-мегабайтов дисков пакет IBM/2314 (ЕС-5061) не се събираше на по-малка ролка.
- Но можѣше да се сложи втора ролка.
- Началото и края̌т на лентата се маркират със свѣтло-отразителни станиолчета, които датчикът на устройството засича.
- Слѣд станиолчето в края̌т на лентата трѣ̋бва да има мѣ̋сто за още нѣ̋колко записа (до шест), за да завърши файлът нормално.
- Магнитната лента е с послѣдователен достѫп. Строго послѣдователен.
- Не може да се зададе команда "прѣвърти 100 ft (фута) и почни да четеш (или да пишеш) оттам!"
- Нѣ̋ма жалон за 100 ft (фута).
- Обаче може да се зададе команда "пропусни 100 записа (100 блока) и почни да четеш (или да пишеш) оттам!"
- Устройството не може да пропусне 100 записа, без послѣдователно да ги прочете.
- Да ги пропусне - значи прочетенитѣ данни да не се пращат към оперативната памет.
- Наред с обикновенитѣ записи, имаше и специален особен запис върху магнитната лента, нарѣчен TM (tape mark).
- Устройството изпълняваше такива команди:
- Вземи от този адрес на физическата памет толкова послѣдователни байта и ги запиши върху лентата на текущата позиция.
- Запиши TM върху лентата на текущата позиция.
- Пропускай всички записи върху лентата, докато стигнеш TM.
- Пропускай записи върху лентата, докато стигнеш TM, но най-много толкова записа.
- Прочети от текущата позиция запис, докладвай дали е TM, и ако не е, докладвай дължината му, а даннитѣ запиши по този адрес на физическата памет.
- Мило устройство, знам, че току-що си прочело TM. Върни се, моля̨, една стѫпка назад, така че слѣдващия̌т запис да покрие tape-mark-ерът.
- Rewind! Прѣвърти лентата и я̨ позиционирай в началото, на началното станиолче.
- И това сѫ всички команди, които устройството изпълнява.
- При всѣ̋ка команда, ако устройството засѣче крайното станиолче, то е длъжно да докладва, че лентата е на привършване.
- На първо приближение може да се приеме, че файлът върху магнитна лента
прѣдставлява редицата от записи међу два tape-mark-ера.
- Два послѣдователни tape-mark-ера (без други записи међу тѣ̋х - празен файл) означава, че по-нататък на лентата нѣ̋ма нищо записано.
- (.. скрий ги магнитнитѣ ленти ..) (.. скрий го потрѣбителското форматиране ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- И тъй, магнитната лента е със строго послѣдователен достѫп и без прѣдварително форматиране.
- При всѣ̋ка операция за запис върху лентата мѣ̋стото на записът "се форматира" наново.
- Магнитно-дисковитѣ устройства прѣдоставят прѣ̋к достѫп до всѣки запис върху дискът.
- За цѣлта записитѣ трѣ̋бва прѣдварително да сѫ създадени.
- Създаването на записитѣ върху дисковата писта се нарича форматиране на пистата.
- Слѣд това, по врѣме на нормалната експлоатация, даннитѣ вѫтрѣ в създаденитѣ при форматирането записи се прѣзаписват.
- Разбира се, при форматиране на пистата, всичко, което е било записано на нея̨ прѣди това, безвъзвратно се губи.
- При системитѣ IBM/360 и IBM/370 всѣ̋ка дискова писта може да се форматира отдѣлно от другитѣ писти,
и то по указан от потрѣбителя̌т начин.
- Форматирането на една писта не засѣ̋га другитѣ писти.
- Различнитѣ писти мога̨т да имат различно форматиране.
- Различнитѣ писти мога̨т да имат различно форматиране, извършено по различно врѣме.
- Различнитѣ писти мога̨т да имат различно форматиране, заявено от различни потрѣбители.
- Потрѣбителскитѣ заявки за форматиране се указваха̨ чрѣз JCL (Job Control Language).
- При старитѣ дискови пакети се виђаше процѣпът, прѣз който се прокрадва свѣтлината, която устройството засича.
- Този процѣп маркира началото и края̌т на всѣ̋ка писта.
- Процѣпът е един за цѣлия̌т дисков пакет.
- Пистата прѣдставлява окрѫжност. Тя започва и свършва на мѣ̋стото, маркирано от процѣпът.
- Това е фабрична маркировка.
- Форматирането си има работа с вѫтрешността на пистата.
- Къдѣ тя почва и къдѣ свършва - това е фабрично опрѣдѣлено.
- И тъй, във вѫтрешността на дисковата писта има записи (records) или блокове (blocks).
- Колко записа и колко байта да е един запис - както е указано в заявката за форматиране на пистата.
- Един запис върху дискът се състои от три части - жалон, индекс и данни.
- Међу тѣзи части има празнини.
- Цѣлта им е да дада̨т врѣме на "електрониката" да рѣши дали записът е от интерес в дадения̌т момент.
- Жалонът. Съдържанието му е слѣдното:
- номерът на цилиндърът (при IBM-2311 и IBM-2314: число от 0 до 199),
- номерът на дисковата повърхност (surface) или номерът на пистата вѫтрѣ в цилиндърът (при IBM-2314: число от 0 до 19), и
- номерът на записът (на блокът) върху пистата.
- Горнитѣ три числа съставляват дисковия̌т адрес на блокът (на записът).
- Освѣн дисковия̌т адрес, в жалонът е указана дължината на индексът и дължината на даннитѣ.
- Ако дължината на индексът е нула, индекс нѣ̋ма.
- Дължината на даннитѣ не може да е нула - данни винѫги има.
- Индексът.
Даннитѣ от него се ползват при асоциативния̌т достѫп и при индексно-послѣдователнитѣ файлове.
- Има си специален раздѣл за това.
- Ако пистата не е част от индексно-послѣдователен файл, в блокът нѣ̋ма индекс.
- Даннитѣ. Дължината на блокът с данни се задава при форматиране.
- Блоковетѣ данни върху една писта обикновено сѫ еднакво дълги.
- Защото нѣ̋ма лесен начин да се укаже друго.
- Ако магнитно-дисковото устройство получи команда ..
- за позициониране (за четене или за писане) на опрѣдѣлен дисков адрес,
- съставен от номер на цилиндър, номер на повърхност и номер на блок,
- устройството първо позиционира (с придвижване)
- гребенът с магнитнитѣ глави на указания̌т цилиндър
- и веднага идентифицира указаната писта.
- Но не чака да мине физическия̌т свѣтлинен маркер за началото на пистата.
- Веднага чете всѣки срѣщна̨т жалон и сравнява дисковия̌т адрес.
- Ако е този, който е указан в командата,
- значи устройството е на точното мѣ̋сто за четене или за писане.
- Забѣлѣжка_1: При асоциативния̌т достѫп вмѣсто дисков адрес в командата се дава тѫрсен индекс и устройството по подобен начин сравнява индекси, а не адреси.
- Забѣлѣжка_2: Ако жалон с тѫрсения̌т адрес не се намѣри върху идентифицираната писта, има възможност при форматиране да е било прѣцѣнено, че съотвѣтната част от пистата е поврѣдена и записът да е бил прѣнасочен към резервна писта. Там - на резервната писта, жалонът съдържа оригиналния̌т дисков адрес.
- Как да е.
- Отдавна нѣ̋ма потрѣбителското форматиране. Слава Богу!
- Него го имаше само в системитѣ IBM/360 и IBM/370.
- При всички други компютри дисковитѣ писти се форматират еднакво и това не може да бѫде промѣнено от потрѣбителя̌т.
- Винѫги без индекс и в блокове по 512 байта (по половин килобайт).
- За всѣки тип диск броя̌т на блоковетѣ върху една писта е фиксиран и се знае.
- (.. скрий го потрѣбителското форматиране ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ петата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- Потрѣбителското форматиране на дисковитѣ писти съм го срѣщал само в системитѣ IBM/360 и IBM/370.
- ►► Геометрията на дискът (.. покажи я̨ геометрията ..)
-
▼▼
Геометрията на дискът
(.. скрий я̨ геометрията ..)
- Стана̨ дума, че освѣн в системитѣ IBM/360 и IBM/370,
- при другитѣ компютри всички писти на един диск съдържат
- един и сѫщ брой блокове (записи), всѣки по половин килобайт.
- Този брой е фиксиран и се знае за всѣки тип диск.
- Напримѣр, дисковетѣ от тип IBM-2314 (ЕС-5061),
когато работя̨т с компютър PDP-11 (СМ-4),- имат по 10 (десет) блока на всѣ̋ка писта,
- по половин килобайт (512 байта) всѣки.
- 200 цилиндъра,
- по 20 писти на цилиндър: 4000 писти общо,
- по 10 блока на писта: 40000 блока общо,
- по половин килобайт на блок: 20000 килобайта, почти 20 мегабайта.
- Ако знаем броя̌т на цилиндритѣ (в примѣрът 200),
- броя̌т на пиститѣ на един цилиндър (броя̌т на дисковитѣ повърхности, в примѣрът 20),
- и броя̌т на блоковетѣ върху една писта (в примѣрът 10),
- значи знаем геометрията на дискът.
- В условията на примѣрът, ако знаем адресът на блок върху дискът
- разположен на цилиндър номер CylNo (число от 0 до 199),
- повърхност номер SurfNo (число от 0 до 19), и запис номер RecNo (число от 0 до 9),
- то по формулата ( ( ( CylNo * 20 ) + SurfNo ) * 10 ) + RecNo
- ще получим число от 0 до 39999.
- Това число се нарича номер на дисков блок.
- Именно то се ползва вече за адресиране на дисковата памет.
- И обратно, пак в условията на примѣрът, ако знаем
- номерът на дисков блок - число от 0 до 39999, което ще означим BlockNo,
- като раздѣлим BlockNo на броя̌т на блоковетѣ на писта (10),
- ще получим остатък RecNo (число от 0 до 9) и частно TrackNo.
- Слѣд това, като раздѣлим TrackNo на броя̌т на дисковитѣ повърхности (20),
- ще получим остатък SurfNo (число от 0 до 19) и частно CylNo - номерът на цилиндърът.
- В условията на примѣрът, като изключим дисковия̌т драйвер,
остана̨лата част от софту̌ерът на PDP-11
не се интересува от геометрията на дискът и от горнитѣ двѣ смѣтки. - Дисковия̌т драйвер на PDP-11, който е софту̌ерен компонент,
му се налага да знае геометрията на дискът
и да може да прави тѣзи двѣ смѣтки,- защото харду̌ерът е взет от IBM/System-360 и
дисковия̌т контролер, който е харду̌ерен компонент,
не знае как сѫ форматирани пиститѣ. - Вижте прѣдишния̌т раздѣл за форматирането.
- защото харду̌ерът е взет от IBM/System-360 и
- Обаче ако харду̌ерния̌т компонент "дисков контролер"
е проектиран така, че да знае геометрията на дискът, то на никой софту̌ерен компонент не му трѣ̋бва да я̨ знае.
- Софту̌ерът трѣ̋бва да знае общия̌т брой на дисковитѣ блокове, които по размѣр сѫ стандартни.
- Софту̌ерът работи само с номера на дискови блокове, които сѫ числа в плътен диапазон от нула нагорѣ.
- Софту̌ерът не се интересува вече от геометрията на дискът. Слава Богу!
- А пък при устройствата от тип SSD геометрията на дискът вече нѣ̋ма никакъв смисъл.
- (.. скрий я̨ геометрията на дискът ..) (.. скрий я̨ петата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- Стана̨ дума, че освѣн в системитѣ IBM/360 и IBM/370,
- ►► Разположението на файловетѣ върху дискът - задача на потрѣбителя̌т (.. покажи го ..) (.. разгъна̨то ..)
-
▼▼
Разположението на файловетѣ върху дискът - задача на потрѣбителя̌т
(.. скрий го ..)
(.. свий го ..)
(.. разгъни го ..)
- При IBM/System-360 една писта винѫги се назначава на един файл цѣ̋лата.
- Не е възможно част от една писта да принадлѣжи към един файл, а друга част от сѫщата писта - към друг файл.
- Пистата е най-малката единица - най-малката част от дискът - която може да бѫде назначена към файл.
- От друга страна, един файл може да заема нѣ̋колко писти.
- Даже много писти.
- И тѣзи писти може да не сѫ сѫсѣдни.
- Нѣщо повече: един файл може да заема писти от нѣ̋колко диска.
- Такова нѣщо май нѣ̋ма в съврѣменнитѣ файлови системи -
- от какъв зор един файл ще захапва и друга файлова система.
- Един диск от гледна точка на файловото си съдържание се наричаше том (volume).
- Той си имаше таблица на съдържанието VTOC (volume table of contents).
- Само една на том - една на диск - само една "директория".
- Тя донѣ̋къдѣ е прѣдшественик на сетнешнитѣ директории.
- Всѣки файл на дискът бѣше прѣдставен в таблицата VTOC.
- Идентифицира се с името си - до 44 байта без опрѣдѣлена структура.
- Кои дискови писти файлът заема и в какъв ред.
- Има ли файлът продължение на друг диск и дали това тука е продължение.
- И още данни за файлът - за вѫтрешната му структура,
- на което е посветен слѣдващ раздѣл.
- С томове и файлове се оперираше на езикът JCL (Job Control Language).
- Ако е нужен достѫп до сѫществуващ файл, указва се името на файлът и съдържащия̋т го том, и системния̌т софту̌ер го намира.
- Обаче когато се създава нов файл, системата DOS/360 не можѣше сама да го сложи нѣ̋къдѣ.
- При създаване на нов файл под DOS/360 потрѣбителя̌т трѣ̋бваше явно да укаже на кои писти файлът да бѫде разположен.
- Слава Богу! Такова нѣщо вече нѣ̋ма.
При всички нови системи системния̌т софту̌ер сам намира къдѣ да разположи нов файл. - Да забравим за системитѣ IBM/360 и IBM/370.
- Там потрѣбителя̌т на файлът, към който файл е назначена дискова писта, отговаря за форматирането ӥ - на колко блока по колко байта пистата да се раздѣли.
- В по-новитѣ компютърни системи нѣ̋ма такова нѣщо като потрѣбителско форматиране.
- В по-новитѣ компютърни системи всѣ̋ка писта е била подложена на стандартно форматиране -
- фиксиран брой блокове по половин килобайт (512 байта).
- В по-новитѣ компютърни системи на файловетѣ се назначават отдѣлни блокове,
- а не непрѣмѣнно цѣли писти.
- Геометрията на дискът вече нѣ̋ма значение.
- Има начин - има механизъм, по който за всѣки файл да се укаже кои дискови блокове той заема и в какъв ред.
- Това описание на разпрѣдѣлението на дисковитѣ блокове по файлове се съдържа в специален файл - най-важния̌т файл на дискът, нарѣчен индексен файл.
- Блоковетѣ се идентифицират или все едно се адресират с номерата си (BlockNo).
- Номерът на блокът (или все едно адресът му) е число в плътен интервал от нула нагорѣ.
- В нѣ̋кои дискови файлови системи се разпрѣдѣлят не стандартни блокчета по половин килобайт (512 байта), а групички ор сѫсѣдни блокчета (1024 байта, 2048 байта, 4096 байта).
- Понѣ̋кога това е съгласуването със системата на виртуалната памет (вижте шестата бесѣда).
- Отклонение.
Общо описание на дискова файлова система
(.. покажи го отклонението ..)
(.. покажи ..) с автоматично поблоково назначаване на дисковото пространство. - Отклонение.
Общо описание на дискова файлова система
(.. скрий го отклонението ..)
с автоматично поблоково назначаване на дисковото пространство. (.. скрий ..)- wiki/List_of_file_systems Не става дума за IBM/360 или IBM/370.
- В основата е индексния̌т файл - най-важния̌т файл върху дискът.
- Има и други файлове - важни части на файловата система:
- битмап на свободнитѣ елементи от индексния̌т файл,
- файл, съставен от свободнитѣ блокове на дискът,
- файл, съставен от поврѣденитѣ дискови блокове,
- изпълним код на операционната система, и
- главна директория.
- Обръщението към всѣки от горѣспоменатитѣ файлове е по номер, а не по нѣ̋какво име.
- Тоест, всѣки от горѣспоменатитѣ файлове си има фиксиран номер - нѣ̋какво малко число.
- Създаването на файловата система - създаването на тѣзи основни файлове - се нарича инициализация, а не форматиране.
- Форматирането е стандартно, фабрично и не е проблем на софту̌ерът.
- Индексния̌т файл се състои от плътно разположени елементи (entries)
с еднаква фиксирана дължина.
- Тѣзи елементи се номерират с послѣдователни числа от нула нагорѣ.
- Достѫпът до елемент на индексния̌т файл е по номер.
- Достѫпът до елемент на индексния̌т файл е бърз - мѣ̋стото му се изчислява лесно.
- Един елемент на индексния̌т файл:
- може да бѫде свободен, или
- може да съдържа описание на файл, или
- може да съдържа продължение на описанието на файл.
- Послѣдователнитѣ битове от битмап-файлът съотвѣтстват на послѣдователнитѣ елементи на индексния̌т файл.
- Съотвѣтния̌т бит показва дали елементът на индексния̌т файл е свободен.
- Когато един елемент на индексния̌т файл
съдържа описание на файл, тогава:
- Номерът на този елемент се ползва като номер на файл.
- Не само за горѣ-споменатитѣ "важни" файлове, но и за всѣки файл.
- Описанието на един файл,
съдържащо се в елемент от индексния̌т файл, се състои от слѣднитѣ части:
- Неформална част. Напримѣр име и разширение.
- Не е от интерес в този контекст.
- Затова тази информация е неформална.
- Типът на файлът. Важно.
- Обикновен файл (създаден от потрѣбител).
- Директория (directory, folder).
- "Важен" файл између горѣспоменатитѣ, поддържан от файловата система и скрит от потрѣбителитѣ.
- Спецификация на правата за достѫп. Важно.
- Кой има право на достѫп до файлът.
- И какъв вид достѫп му се разрѣшава.
- Датировки. Timestamps. Важно.
- Врѣмето на създаване на файлът.
- Врѣмето на послѣдното му измѣнение.
- Разположението на файлът върху дискът. Най-важното.
- На кои дискови блокове е разположен файлът.
- Послѣдователно се описват всички фрагменти на файлът.
- Пореден фрагмент от толкова дискови блока, започващ от този дисков блок.
- Ако файлът е силно фрагментиран, описанието му трѣ̋бва да продължи в друг елемент на индексния̌т файл.
- Ако елемент на индексния̌т файл съдържа продължение на описанието на файл, номерът му не се ползва като номер на файл.
- Неформална част. Напримѣр име и разширение.
- Самия̌т индексен файл като "важен" файл си има фиксиран номер (нула или едно) и чрѣз своя̌т си елемент с този номер сам описва разположението си.
- На фиксирано мѣ̋сто в началото на всѣки елемент от индексния̌т файл
има число, нарѣчено послѣдователен контролен номер.
- Всѣки пѫт, когато този елемент бива назначаван да съдържа описанието на нѣ̋кой файл, това число - послѣдователния̌т контролен номер, се увеличава с единица.
- Към самия̌т файл, чието описание се съдържа в елементът, се обръщаме не просто чрѣз номерът на елементът, а чрѣз двойка номера: номерът на елементът и послѣдователния̌т контролен номер.
- Така се прави, за да се обезсиля̨т обръщения към стари вече изтрити файлове, които сѫ ползвали за описанието си сѫщия̌т елемент от индексния̌т файл.
- Свободнитѣ дискови блокове се оформят като отдѣлен "важен" файл.
- "Разположението" му се описва чрѣз индексния̌т файл, подобно на всѣки друг файл.
- Само файловата система има достѫп до него, и то по номерът му.
- Ако нѣ̋кой обикновен файл бѫде изтрит от потрѣбителя̌т, неговитѣ блокове се добавят към този файл.
- Този файл бива прѣтѫрсван от разни програми за възстановяване на изтрити данни.
- Поврѣденитѣ (лошитѣ) дискови блокове се оформят като друг отдѣлен "важен" файл.
- "Разположението" му се описва чрѣз индексния̌т файл, подобно на всѣки друг файл.
- Само файловата система има достѫп до него, и то по номерът му.
- Изпълнимия̌т код на операционната система ..
- обикновено се оформя като "важен" файл.
- Но това не е задължително за самата файлова система.
- При начално заређане (boot) първия̌т софту̌ер е с минимални умѣния.
- За не го караме да се рови по директории, оформяме това, което трѣ̋бва да се прочете при начално заређане от дискът в оперативната памет, като файл с малък фиксиран номер.
- Просто за улеснение.
- Главната директория (master directory) е втория̌т по "важност" файл
слѣд индексния̌т файл.
- От "важнитѣ" файлове, само той се виђа от потрѣбителитѣ.
- Другитѣ "важни" файлове сѫ изключително за "служебно ползване".
- Макар да е "важен" файл, достѫпен по фиксиран малък номер, главната директория се виђа от потрѣбителитѣ, защото е директория (directory, folder).
- Файловетѣ, които потрѣбителитѣ виђат и с които тѣ оперират, биват
- обикновени файлове (ordinary files), и
- директории (directories, folders).
- Другитѣ типове (напримѣр линковетѣ) за простота ги пропускам.
- И директориитѣ, и обикновенитѣ файлове сѫ все файлове и си имат описание в нѣ̋кой елемент на индексния̌т файл.
- Номерът на този елемент служи за номер на файлът.
- Двойката числа номерът на елементът от индексния̌т файл и послѣдователния̌т контролен номер служа̨т за прѣпратка (за обръщение) към файлът.
- Това важи за всѣки файл: обикновен файл, директория или пък "важен" файл.
- Файловата система обикновено не обръща внимание на вѫтрешното съдържание на
обикновенитѣ файлове.
- С обикновенитѣ файлове се занимава потрѣбителския̌т софту̌ер.
- Обаче директориитѣ се поддържат от файловата система.
- Файловата система знае вѫтрешната структура на директориитѣ.
- А тази структура е слѣдната:
- [точка като име на файл], прѣпратка към самата директория, която си е файл
- [двѣ точки като име на файл], прѣпратка към директорията на по-горно йерархично ниво
- име на файл, прѣпратка към файлът
- име на друг файл, прѣпратка към файлът
- и така нататък за много файлове.
- Първитѣ два реда се слагат за удобство при обхођане на йерархията от директории.
- За името на файлът може да има нѣ̋какви ограничения, може и да нѣ̋ма.
- Прѣпратката към файлът прѣдставлява двойката числа номерът на елементът от индексния̌т файл и послѣдователния̌т контролен номер.
- Директориитѣ създават йерархична структура на файловата система.
- Потрѣбителитѣ имат прѣдстава за нея̨.
- Един потрѣбител или създава нов обикновен файл, или създава нова директория.
- Каквото и да създава, потрѣбителя̌т трѣ̋бва да го сложи в нѣ̋коя сѫществуваща директория.
- Потрѣбителя̌т не може да създава файлове извън сѫществуващитѣ директории.
- (.. скрий го отклонението ..)
- (.. скрий го разпрѣдѣлянето на дисковото пространство ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ петата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- При IBM/System-360 една писта винѫги се назначава на един файл цѣ̋лата.
- ►► Сподѣлени цилиндри (.. покажи ги ..)
-
▼▼
Сподѣлени цилиндри
(.. скрий ги ..)
- Дисковата памет на System/360: това е заглавието на тази пета бесѣда.
- При това положение не би било редно да подмина̨ такава техника като сподѣленитѣ цилиндри (shared cylinders).
- Ако при нѣ̋коя обработка участват два файла, напримѣр входен и изходен, и двата на един и сѫщ диск, при онова бѣдно буфериране заради онази оскѫдица на оперативна памет, бѣше възможно обработката да се бави заради движението на дисковитѣ магнитни глави међу цилиндритѣ, както и да се причини върхово натоварване на механизмитѣ на дисковото устройство.
- В такива случаи се налагаше да се прилага техниката сподѣлени цилиндри.
- Както бе казано в прѣдишния̌т раздѣл, потрѣбителя̌т (програмистът, технологът на обработката) трѣ̋бва да указва къдѣ по дискът да се разполагат файловетѣ.
- При техниката сподѣлени цилиндри долнитѣ писти на нѣ̋колко послѣдователни цилиндъра се назначават на единия̌т файл, а горнитѣ писти - на другия̌т.
- Така се намалява движението на гребенът с магнитнитѣ глави.
- Обработката може да мине нѣ̋колко пѫти по-бързо, без трѣ̋сък и вибрации.
- Отдавна вече дисковото пространство се разпрѣдѣля автоматично.
Геометрията на дискът отдавна нѣ̋ма значение.
Оскѫдицата на оперативна памет е прѣодолѣ̋на.
Осигурява се подходящо буфериране на операциитѣ за вход и изход.
Нѣ̋ма вече нуђа от техниката със сподѣленитѣ цилиндри. Слава Богу! - (.. скрий ги сподѣленитѣ цилиндри ..) (.. скрий я̨ петата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Асоциативен достѫп до дискът (.. покажи го ..) (.. разгъна̨то ..)
-
▼▼
Асоциативен достѫп до дискът
(.. скрий го ..)
(.. свий го ..)
(.. разгъни го ..)
- Дисковата памет на System/360: това е заглавието на тази пета бесѣда.
- При това положение не би било редно да подмина̨
- индексно-послѣдователнитѣ файлове и
- индексно-послѣдователния̌т метод на достѫп (ISAM: indexed-sequential access method).
- Съвсѣм нормално е компютритѣ да прѣдлагат и да осѫществяват асоциативен достѫп.
- Напримѣр, да се намѣря̨т даннитѣ за човѣк със зададено ЕГН.
- Или да се намѣри файл на дискът със зададено име.
- Но това се осѫществява от софту̌ерът.
- При индексно-послѣдователния̌т метод на достѫп обаче
асоциативния̌т достѫп е подпомогна̨т от харду̌ерът.
- При системитѣ IBM/360 и IBM/370 дисковитѣ писти се форматират според изискванията на потрѣбителя̌т.
- Пиститѣ на индексно-послѣдователния̌т файл, който ще съдържа данни за хора и който ще има ЕГН-то за ключ, ще бѫда̨т форматирани така, че међу жалонът и блокът с данни да има индекс с дължина 10 байта.
- Записитѣ в индексно-послѣдователния̌т файл сѫ сортирани (подредени) по ключ, в случая̌т по ЕГН.
- Устройството може да получи команда "тѫрси на тази писта запис с това съдържание на индексът".
- Устройството ще докладва "индекс с това съдържание току-що мина̨ под моята глава".
- И ще получи нова команда "прочети блокът с данни, който слѣдва".
- Колкото и бързо да се върти дискът, комуникацията устройство-контролер-канал е по-бърза.
- Когато блокът с данни стигне четящата глава на устройството, то вече ще знае, че трѣ̋бва да ги прочете даннитѣ.
- Ще знае, че даннитѣ за човѣкът със зададеното ЕГН сѫ намѣрени.
- Може и друго да се случи.
- Устройството може да докладва "индекс със съдържание, по-голѣ̋мо от тѫрсеното, прѣмина̨ под моята глава".
- Тогава каналът и каналната му програма ще си направя̨т изводът, че на тази писта такъв запис нѣ̋ма.
- Към един индексно-послѣдователен файл е възможен и
послѣдователен достѫп.
- Програмата ще получи послѣдователно един слѣд друг всички записи от файлът (напримѣр за всички хора, за които има данни във файлът), и то сортирани по ключ (подредени по ЕГН).
- Все едно, че програмата чете сортиран файл от магнитна лента.
- Обикновено, един индексно-послѣдователен файл се пълни
при послѣдователен достѫп.
- Индексно-послѣдователния̌т файл трѣ̋бва прѣдварително да е създаден на дискът с нужното форматиране.
- Записитѣ прѣдварително се подготвят като послѣдователен файл на магнитна лента.
- Сортирани! Подредени по ключ.
- Ако записитѣ, които ще запълня̨т индексно-послѣдователния̌т файл, не сѫ прѣдварително сортирани, резултатът може да е отчайващ.
- Слѣд първоначалното запълване на индексно-послѣдователния̌т файл, новопостѫпващитѣ записи си намират мѣ̋стото в подредбата по ключ, но свалят ефективността - и заемат повече мѣ̋сто, и се намират по-трудно.
- Затова от врѣме на врѣме един индексно-послѣдователен файл трѣ̋бва да се прѣсъздава.
- Има и други случаи, когато при системитѣ IBM/360 и IBM/370 се прѣдоставя
асоциативен достѫп до дискът.
- Дали в тѣзи случаи се ползва специална подкрѣпа от харду̌ерът, както при индексно-послѣдователнитѣ файлове, не зная̨.
- Първия̌т такъв случай е самата таблица на съдържанието на дискът, VTOC (Volume Table Of Contents).
- Системата намира сѫществуващ дисков файл по зададено име на файлът, прѣравяйки VTOC-ът.
- Втория̌т такъв случай (.. покажи го ..) сѫ така нарѣченитѣ библиотеки (libraries).
- Втория̌т такъв случай
сѫ така нарѣченитѣ библиотеки (libraries).
(.. скрий ги библиотекитѣ ..)
- Имаше програма библиотекар (librarian), която поддържаше дискови файлове с библиотечна структура - библиотеки.
- Една библиотека съдържа модули, на които можем да гледаме като на по-малки файлчета.
- Чрѣз библиотекаря̌т, един модул от библиотека можѣше да бѫде намѣрен по неговото име.
- Името на модула не можѣше да е по-дълго от 8 байта.
- На потрѣбителитѣ се даваше само CLI-достѫп до библиотекитѣ - чрѣз езикът JCL (Job Control Language).
- Системни програми - компилатори, асемблер, текстов редактор, LinkageEditor, Loader и други, ползваха̨ API-та към библиотекаря̌т - можѣха̨ да го извикват вѫтрешно, но това не бѣше документирано.
- Из разни книги съм срѣщал да се обсѫђа библиотечен метод на достѫп, но не и във фирмената документация.
- Може би защото във фирмената документация понятието метод на достѫп означаваше канални програми, а библиотекаря̌т може да не е ползвал такива.
- В системата DOS/360 сѫществуваха̨ три вида библиотеки:
- SLB: source code library: библиотека от изходни програмни кодове.
- Такава библиотека имаше раздѣли с еднобуквени означения.
- При тѫрсене на даден модул трѣ̋бваше да се укаже раздѣлът.
- Напримѣр, раздѣл 'A' бѣше прѣдназначен за асемблерски програми (за макродефиниции).
- А пък раздѣл 'P' - за програмки на PL/I.
- Библиотекаря̌т не провѣряваше синтаксисът на текстоветѣ като програмен код.
- Можѣше да се слагат произволни текстове, стига да не ги подавате на асемблер или на компилатор.
- Напримѣр, можѣте да отворите раздѣл 'L' и там като модули да слагате текстове на любовни писма.
- Самата операционна система DOS/360 се разпространяваше в source code във вид на SLB, съдържащо макродефиниции.
- RLB: relocatable library: библиотека от обектни модули.
- Резултатът от асемблер или компилатор се нарича обектен модул и обикновено се записва в RLB.
- Именно заради тази практика при IBM/360 резултатитѣ от работата на такива езикови процесори и досега се наричат модули (или обектни модули).
- Функционалността на нѣкогашнитѣ RLB-та и досега се пази едно към едно във файлове, наричани статични библиотеки.
- В системата Windows статичнитѣ библиотеки имат разширение на името ".LIB", а в Unix - ".a".
- Защо relocatable? Защото съдържащитѣ се програми на машинен език, резултат от работата на нѣ̋кой езиков процесор, не сѫ обвързани с мѣ̋сто в оперативната памет, къдѣто да бѫда̨т заредени и изпълнени.
- Макар и на машинен език, тѣзи програмки все още не сѫ изпълними.
- LinkageEditor-ът е програма, която от прѣдварително асемблирани или компилирани обектни модули (relocatables) ще създаде готова за изпълнение програма във формат core-image.
- И в помощ на LinkageEditor-ът, библиотекаря̌т може да намѣри модул в RLB-то не само по име, но и по друг "външен символ".
- Когато обектен модул (а relocatable) се пъха в RLB (в статична библиотека), библиотекаря̌т го индексира не само по името на модулът, но и по всѣки друг символ, отбѣлѣ̋зан като "външен" (external) от езиковия̌т процесор.
- Забѣлѣжка. Съврѣменния̌т термин "статична библиотека" отразява фактът, че вече има подобни библиотеки с разширена функционалност, наричани "динамични библиотеки" (DLLs) или (в Unix) "shared objects" (.so).
- CLB: core-image library: библиотека от изпълними програми.
- В системата DOS/360 един модул от CLB не подлѣжи на слѣдваща обработка.
- Той може само да бѫде зареден в паметта и изпълнен.
- Обикновено такъв модул е маркиран с адрес от паметта, къдѣто той трѣ̋бва да бѫде зареден, за да може да се изпълни правилно.
- Имаше изпълними модули, маркирани като само-прѣмѣстващи се (relocatable).
- Такава програма в началото провѣрява къдѣ е заредена и сама настройва мѣстата от своя̌т код, които сѫ позиционно зависими.
- SLB: source code library: библиотека от изходни програмни кодове.
- (.. скрий ги библиотекитѣ ..) (.. скрий го асоциативния̌т достѫп ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Използването на индексно-послѣдователнитѣ файлове и
индексно-послѣдователния̌т метод на достѫп може да е било умѣстно при
пакетния̌т режим на работа (batch processing).
- Но тѣ никак не сѫ подходящи за реалната работа на един съврѣменен сървър.
- Сегашнитѣ разнообразни изисквания се покриват от йерархичната файлова система и най-вече от базитѣ данни.
- Само софту̌ер може да посрѣщне разнообразието в съврѣменната дѣйствителност.
- Слава Богу! Харду̌ерът вече не се мѣси при прѣдоставянето на асоциативен достѫп.
- (.. скрий го асоциативния̌т достѫп ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ петата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Системния̌т софту̌ер се мѣси във вѫтрешната структура на файловетѣ (.. покажи ..) (.. разгъна̨то ..)
-
▼▼
Системния̌т софту̌ер се мѣси във вѫтрешната структура на файловетѣ
(.. скрий ..)
(.. свий ..)
(.. разгъни ..)
- Системния̌т софту̌ер се е чувствал длъжен да прави това, за да улеснява потрѣбителитѣ.
- Не е съзнавал, че това не му влиза в работата.
- Магнитната лента вече е отпадна̨ла като носител на потрѣбителски данни.
(.. покажи ..) А нѣ̋кога това бѣше основен носител. (.. покажи ги магнитнитѣ ленти ..) - Магнитната лента вече е отпадна̨ка като носител на потрѣбителски данни.
А нѣ̋кога това бѣше основен носител. (.. скрий ..) (.. скрий ги магнитнитѣ ленти ..)- Системния̌т софту̌ер се е чувствал задължен да маркира файловетѣ, разположени на магнитна лента,
- да слага в началото и в края̌т на всѣки файл етикети.
- В етикетитѣ на файлът системата записва:
- името на файлът,
- версия и дата,
- поредност на този файл в поредицата файлове на този том (на тази ролка),
- дали това е само фрагмент от файлът,
- колко други фрагменти на този файл върху други ролки сѫществуват,
- това послѣдния̌т фрагмент на файлът ли е или файлът има продължение на друга ролка,
- дали записитѣ сѫ с фиксирана или с променлива дължина,
- колко е дължината - фиксирамата или максималната - на един физически запис,
- колко е дължината на един логически запис,
- колко общо записа има в сегментът или във файлът.
- Както заради пакетната обработка при машинитѣ IBM/360/370,
така и заради магнитнитѣ ленти като основен носител на потрѣбителски данни,
така и заради установилата се коболистка традиция,- системния̌т софту̌ер маркираше мета-данни за файловетѣ
- както при лентитѣ, така и при дисковетѣ.
- Пакетната обработка остана̨ в мина̨лото.
Компютритѣ вече работя̨т в реално врѣме. (.. покажи какво донесе системата Unix ..)
(.. покажи ..) Дойде и системата Unix. - Пакетната обработка остана̨ в мина̨лото.
Компютритѣ вече работя̨т в реално врѣме.
Дойде и системата Unix. (.. скрий какво донесе тя ..) (.. скрий ..)- Системата Unix е много-потрѣбителска (multi-user).
- Основната ӥ грижа трѣ̋бва да е правилното разпрѣдѣление на ресурситѣ међу потрѣбителитѣ.
- Магнитната лента е недѣлим ресурс. Не се сподѣля међу потрѣбителитѣ.
- Системата я̨ назначава на потрѣбител цѣ̋лата
- и не се интересува какво потрѣбителя̌т ще прави с лентата.
- Системата Unix не поддържа файлове на магнитна лента.
- Цѣ̋лото лентово устройство се разглеђа като файл.
- Софту̌ерът, който по коболистка традиция чете и пише етикети и файлове от и на магнитна лента, е изцѣ̋ло потрѣбителски.
- От друга страна, коболистката традиция е възникна̨ла в "бездисково врѣме".
- А пък системата Unix прѣдполага диск,
- прѣдполага външно запомнящо устройство с прѣ̋к бърз достѫп и за сподѣлено ползване от всички потрѣбители.
- Системата Unix поддържа файлова система на диск, и разпрѣдѣля дисковитѣ ресурси въз основа на файловетѣ.
- Системата Unix трѣ̋бва да идентифицира и локализира файл в йерархичната файлова система по файлова спецификация (име на файл).
- Системата Unix трѣ̋бва да провѣри дали този потрѣбител има право на достѫп до този файл.
- Тя може да откаже достѫп до файлът.
- Но ако тя разрѣши искания̌т достѫп, какво потрѣбителя̌т ще прави вѫтрѣ във файлът - това си е работа на потрѣбителя̌т - системата Unix не му се мѣси.
- Системата Unix рѣшава въпросът за компетенциитѣ в слоеветѣ на софту̌ерът.
- Нѣ̋ма си вече прѣдстава системния̌т софту̌ер за вѫтрешната структура на файловетѣ.
- Слава Богу!
- (.. скрий го оттеглянето на системния̌т софту̌ер ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ петата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Магнитнитѣ глави вече сѫ си част от дисковетѣ (.. покажи ги дисковетѣ Winchester ..)
-
IBM-2311
- Спира се дисковото устройство и се чака дисковия̌т пакет да спре да се върти.
- Нѣ̋ма спирачки, спира бавно.
- Нѣ̋къдѣ наблизо, обикновено върху устройството, стои празната кутия на дисковия̌т пакет, състояща се от дъно и капак с рѫкохватка.
- Със силната (дѣ̋сната) рѫка се взема капак за рѫкохватката.
- С другата рѫка се отваря горната врата на устройството.
- Дисковия̌т пакет с помощта на своя̌т капак с въртеливо движение се прихваща и извађа се от устройството.
- С другата рѫка се затваря горната врата на устройството.
- Слага се върху дъното, дъното щраква и се прикрѣпя за пакетът отдолу.
- Дисковия̌т пакет се прибира за съхранение в шкаф.
- Другия̌т дисков пакет, който трѣ̋бва да се монтира, се вади от шкафът.
- Със силната си рѫка го хващаме здраво за рѫкохватката на капакът му.
- Занасяме го до устройството.
- С другата рѫка откопчаваме дъното от пакетът и го слагаме върху устройството.
- Със сѫщата слаба рѫка отваряме горната врата на устройството.
- Със силната си рѫка поставяме дисковия̌т пакет върху шпинделът на устройството
- и с въртеливо движение закрепваме пакетът към шпинделът и освобођаваме капакът на пакетът.
- Със слабата рѫка затваряме горната врата на устройството.
- Силната рѫка държи празния̌т капак и го поставя върху дъното.
- С коя да е рѫка се пуска дискът да се завърти.
- Може да мине минута, докато ускори до нужната скорост.
- Щом това стане, гребенът с главитѣ влизат на нулев цилинддър и устройството минава в готовност.
- Устройствата ЕС-5063 (IBM-2314), с които сѫщо съм разботил, външно изглеђаха̨ по сѫщия̌т начин.
- Обаче дисковия̌т пакет имаше 11 плочи (вмѣсто 6) и тежѣше повече.
- И плътността на магнитния̌т запис бѣ удвоена.
- В резултат, IBM-2314 събираше четири пѫти повече информация, отколкото IBM-2311.
- Устройството на картинката е музеен експонат.
- На мѣ̋стото, къдѣто е надписът с техническитѣ данни, стоѣше празната кутия на монтирания̌т дисков пакет.
- Такива устройства се произвеђаха̨ в Стара Загора, а дискови пакети - в Пазарџик.
-
▼▼
Магнитнитѣ глави вече сѫ си част от дисковетѣ
(.. скрий ги дисковетѣ Winchester ..)
- Нѣ̋кога се е считало, че магнитнитѣ глави и механизмът за придвижването им међу цилиндритѣ
сѫ много по-скѫпи от магнитнитѣ носители.
- Магнитния̌т носител е метална плоча с магнитно покритие от двѣтѣ страни.
-
(..Вижте IBM-2311 на картинка ..) (.. прочетѣте за него ..) - Плочитѣ обикновено се оформяха̨ в пакети (disk packs).
- Пакет от шест плочи (IBM-2311) имаше десет повърхности и съотвѣтно десет писти на цилиндър.
- Пакет от единадесет плочи (IBM-2314) имаше двадесет повърхности и двадесет писти на цилиндър.
- Външнитѣ повърхности в пакетът не се ползваха̨.
- Дисковетѣ и дисковитѣ пакетитѣ бѣ̋ха̨ смѣнни.
- Тѣ се монтираха̨ в устройството от човѣк-оператор.
- Механизмът, въртящ дисковетѣ, магнитнтѣ глави и механизмът за придвижването им бѣ̋ха̨ част от устройството (част от драйвът, disk drive).
- Едно дисково устройство бѣше голѣ̋мо колкото автоматична пералня или автоматична миялна.
- По нѣ̋кое врѣме имаше флопи-дискове или дискети - пластмаса с магнитно покритие.
- Тѣ̋х не ги считам за истински дискове, понеже не прѣдоставяха̨ достатъчно бърз достѫп.
- Основния̌т експлоатационен проблем бѣше замърсяването.
- При смѣнни носители, прахът поврѣђаше и магнитнитѣ глави, и носителитѣ.
- Друг експлоатационен проблем бѣше настройката на главитѣ към стандарт за магнитен запис.
- Обикновено ги оставяха̨ ненастроени.
- В резултат, за всѣки дисков пакет трѣ̋бваше да се знае кое от устройствата може да го чете.
- Операционната система OS/360 изискваше настройка на главитѣ към стандартът.
- DOS/360 не поставяше такова изискване.
- Технологиитѣ напрѣдна̨ха̨: миниатюризация, масово производство, поевтиняване.
- Магнитнитѣ глави и механизмът за придвижването им међу цилиндритѣ не се смѣ̋тат вече за много по-скѫпи от магнитнитѣ носители.
- Огромната вмѣстимост при новитѣ технологии намаляват необходимостта от смѣ̋на на носителитѣ.
- Всичко вече се оформя като едно едно устройство - глави и магнитна повърхност, капсулирани и изолирани от външната срѣда̀.
- За първитѣ такива модели се използваше названието Winchester.
- При тѣ̋х задвижването бѣше все още външно.
- При съврѣменнитѣ HDD (hard disk drives) абсолютно всичко е капсулирано и изолирано -
и въртенето на дискът, и постѫпателното движение на гребенът с главитѣ. - (.. Илюстрация: един терабайт HDD Toshiba, USB, 2.5 инча ..)
- Магнитнитѣ глави сѫ фабрично капсулирани в едно дисково устройство заедно с магнитната повърхност.
- Слава Богу!
- (.. скрий ги дисковетѣ Winchester ..) (.. скрий я̨ петата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- Нѣ̋кога се е считало, че магнитнитѣ глави и механизмът за придвижването им међу цилиндритѣ
сѫ много по-скѫпи от магнитнитѣ носители.
- ►► Нѣщо като заключение (.. покажи го заключението на бесѣдата ..) (.. разгъна̨то ..)
-
▼▼
Нѣщо като заключение
(.. скрий го заключението на бесѣдата ..)
(.. свий го ..)
(.. разгъни го ..)
- ►► А нѣ̋кога System/360 бѣше за примѣр .. (.. покажи ..)
-
▼▼
А нѣ̋кога System/360 бѣше за примѣр ..
(.. скрий ..)
- Нѣ̋кога от Москва е дошла команда всички проекти да се канцелират и
цѣ̋лата инженерна мисъл в пространството от Бранденбургската врата до Владивосток
да се впрѣгне във reverse-engineering на IBM System/360.
- За да се издаде такава команда от Москва, трѣ̋бва System/360 на IBM да е била вече стана̨ла за примѣр в цѣлия̌т остана̨л свѣ̋т.
- Официално се казваше, че разработваме ЕС ЭВМ (Единая Система Электронных Вычислительных Машин).
- Професионалната ми история като компютърџия започна̨ от System/360.
- Не претендирам за точност при историческитѣ справки.
- Не знам в кой компютър сѫ били приложени магнитни дискове за пръв пѫт.
- Но до мене дисковетѣ достигна̨ха̨ на бордът на System/360.
- Освѣн дисковетѣ, какво друго трайно е остана̨ло от System/360?
- На първо мѣ̋сто, софту̌ерния̌т бизнес. Компютърната програма като индустриален продукт.
- Слѣд това, нѣщо незначително: понятието байт. Никой вече не смѣе да изневѣри на тази тогавашна мода.
- Понятията обектен модул и библиотека от обектни модули.
- Тука попадат и LinkageEditor-ът, асемблерът, компилаторитѣ ..
- Компилаторът от FORTRAN бѣ впечатляващ с бързината си.
- Съжалѣ̋вахме я̨ машината, като я̨ гледахме как се мѫчи да компилира COBOL.
- И защо не се сѣщам за друго? Трайно остана̨ло от System/360?
По много причини.- Забравил съм много нѣща вѣроятно.
- Наистина прогресът в технологиитѣ е огромен.
- Той е изхвърлил и обезсмислил много нѣща.
- В тази бесѣда, посветена на дисковетѣ на System/360,
- Ви занимавах най-вече с това, което го имаше нѣ̋кога там,
- а сега вече - Слава Богу! - го нѣ̋ма.
- Сѣщам се за нѣ̋кои нѣща, несвързани с дисковетѣ, които ги имаше в System/360, а сега вече ги нѣ̋ма.
- Десетични числа с плаваща точка. Това е необяснима странност на System/360.
- Разни други странни формати и кодировки.
- EBCDIC вмѣсто ASCII.
- Пакетирани десетични числа и машинна аритметика с такива числа.
- Записи с промѣнлива дължина с прѣдшестващ брояч.
Това може да е полезно, но е изоставено.
- (.. скрий кога System/360 бѣше за примѣр ..) (.. скрий го заключението на бесѣдата ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Нѣ̋кога от Москва е дошла команда всички проекти да се канцелират и
цѣ̋лата инженерна мисъл в пространството от Бранденбургската врата до Владивосток
да се впрѣгне във reverse-engineering на IBM System/360.
- ►► Езикът COBOL стъпкан в прахта от езикът C (.. покажи ..)
-
▼▼
Езикът COBOL стъпкан в прахта от езикът C
(.. скрий ..)
- На какво се дължи зашеметяващия̌т успѣх на техническото развитие?
На това, че не се обръщаше внимание на тѣснитѣ мѣста (bottle-necks: ботълнеци),
а на важнитѣ нѣща, които извеђат технологията на нови равнища, на нови висоти.- Не на машинна десетична аритматика.
- Не на харду̌ерно подпомагане на асоциативния̌т достѫп до дискът.
- Не на сложни машинни инструкции, които така се опитват да въвлѣка̨т харду̌ерът в ботълнецитѣ.
- Не - ботълнецитѣ сѫ си софту̌ерен проблем.
- Да на екстремната миниатюризация.
- Да на екстремно голѣ̋мата компютърна памет.
- Да на екстремното бързодѣйствие.
- Да на екстремно ниската енергозависимост.
- Прѣди повече от 40 години съм почна̨л на компютър със 120 килобайта оперативна памет и със седем-мегабайтови дискове.
- Сега се наслађавам:
- на 16 гигабайта оперативна памет (140000 пѫти повече)
- и на терабайтов диск (25000 пѫти повече),
- и то с размѣрът на кутия шоколадови бонбони, а не в зала с климатик, противопожарна инсталация и повдигна̨т под.
- Само се наслађавам. Защото заслуга нѣ̋мам. Само се възползвам.
- А кой има заслуга?
- Кой го движи прогресът?
- Има за какво да им завиђат смо̀танитѣ злобни лѣви поcepковци "всех стран".
- Компютърна архитектура от тип RISC (Reduced Instruction Set Computers).
- Не е важно, че харду̌ерът на централния̌т процесор смѣ̋та само двоично, а не десетично.
- Важното е да смѣ̋та екстремно бързо.
- Софту̌ерът лесно ще прѣвърне числата от десетични в двоични, а послѣ обратно в десетични.
- Ако десетичната аритметика бѣше реализирана в "харду̌ерът", едва ли щѣше да е по-различно.
- Не е важно, че централния̌т процесор не приема инструкция "прѣмѣсти оттук там двѣста байта".
- Важното е инструкцията "прѣмѣсти оттук там един байт" да се изпълнява екстремно бързо.
- Пък софту̌ерът ще я̨ задава тази инструкция двѣста пѫти.
- Архитектурата RISC бѣ навѣяна от езикът C и от системата Unix.
- За ужас на коболиститѣ.
- Не е важно, че харду̌ерът на централния̌т процесор смѣ̋та само двоично, а не десетично.
- Коболистът може да цѣни техниката "логически и физически записи"
и да се радва на прѣдоставенитѣ от системата улеснения в тази връзка.
- А пък програмистът на C се подхилква на това.
- Че това сѫ елементарни нѣща.
- Родния̌т ми език за програмиране бѣше PL/I.
- Той бѣше нѣщо като обединение на тритѣ езика ALGOL-60, FORTRAN-IV и COBOL,
- но без "извращенията", каквито всѣки от тѣ̋х си имаше.
- Езикът C, системата Unix и обектно-ориентираното програмиране стъпкаха̨ и PL/I.
- Завърших професионалната си кариера като програмист на C и C++.
- Сега като пенсионер се упражнявам на JavaScript.
- (.. скрий я̨ побѣдата на езикът C ..) (.. скрий го заключението на бесѣдата ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- На какво се дължи зашеметяващия̌т успѣх на техническото развитие?
- ►► Дискът е душата на компютърът (.. покажи ..)
-
▼▼
Дискът е душата на компютърът
(.. скрий ..)
- Макар че жабитѣ и рибитѣ сѫ все гръбначни животни като нас, аз не съм способен да им назначавам индивидуалност.
- Хората назначават индивидуалност на кучетата и коткитѣ.
- Даже душа им назначават!
- Лично аз с пуделитѣ имам спомени!
- За мене тѣ сѫ личности с индивидуалност и душа.
- Има ли компютърът индивидуалност и душа?
- Стана̨ дума, че нѣ̋кога имаше бездискови компютри.
- Тѣ сѫ като рибитѣ и жабитѣ.
- Без индивидуалност и без душа.
- Докато ползвам даден компютър, аз пълня̨ дискът му със спомени.
- Дискът му придава на компютърът индивидуалност.
- Да не се изсилвам да казвам, че компютърът имал душа.
- Знам му карантиитѣ - това е машина.
- Битове. Много много битове, ама все битове.
- Каква душа.
- На нов компютър се радвам.
- Може да се погрижа̨ да прѣхвърля̨ споменитѣ си от стария̌т на новия̌т диск.
- За стария̌т компютър нѣ̋ма да плача̨.
- А при смъртта на два пудела и аз, и Тамара плакахме.
- (.. скрий я̨ душата на компютърът ..) (.. скрий го заключението на бесѣдата ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ◄► (.. скрий я̨ петата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ◄► (.. скрий я̨ петата бесѣда за дисковетѣ на IBM/360 ..) (.. свий я̨ ..) (.. посвий или поразгъни ..) (.. разгъни я̨ ..) .. към началото ..
►► 7. Виртуалната памет на компютритѣ (.. покажи я̨ шестата бесѣда ..) (.. разгъна̨то ..) .. към началото ..
- Виртуалната памет на компютритѣ се осѫществява чрѣз автоматична динамична прѣадресация.
- Можете ли да си прѣдставите компютър без динамична прѣадресация?
- Съврѣменнитѣ компютри не мога̨т без нея̨.
▼▼ 7. Виртуалната памет на компютритѣ (.. скрий я̨ шестата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ◄► Не знам при кой компютър се е появила виртуалната памет за пръв пѫт.
- Не претендирам за точност при историческитѣ справки.
- Писах, че до мене дисковетѣ достигна̨ха̨ на бордът на System/360.
- Сега пиша̨, че до мене виртуалната памет достигна̨ на бордът на System/370.
- Нѣщо повече.
- Самата дума "виртуално" до мене сѫщо така дойде със System/370.
- Когато ставаше дума за виртуални адреси и виртуална памет.
- Сега вече има виртуална реалност, виртуален свѣ̋т, виртуални приятели, виртуална любов.
- Но това вече е съвсѣм друго.
- А можѣха̨ нѣ̋кога вмѣсто думата "виртуална" (virtual) да употрѣбя̨т думата "симулирана" (simulated).
- ►► Нѣщо като увод (.. покажи го ..) (.. разгъна̨то ..)
-
▼▼
Нѣщо като увод
(.. скрий го ..)
(.. свий го ..)
(.. разгъни го ..)
- ►► Машинни инструкции, операнди и адреситѣ им (.. покажи ги ..)
-
▼▼
Машинни инструкции, операнди и адреситѣ им
(.. скрий ги ..)
- Централния̌т процесор (CPU: Central Processing Unit) е мозъкът на компютърът -
това, дѣто смѣ̋та, мисли и взема рѣшения.
- От човѣшка гледна точка, той изпълнява програма.
- Самия̌т той обаче не знае за нея̨, за програмата си.
- Централния̌т процесор (CPU-то) във всѣки момент изпълнява нѣ̋каква инструкция, машинна инструкция.
- Съсрѣдоточил е вниманието си на нея̨, на текущата инструкция.
- Докато я̨ изпълнява текущата инструкция, вече е забравил прѣдишната и си нѣ̋ма прѣдстава коя ще е слѣдващата.
- А инструкцията идва от оперативната памет на компютърът.
- Оперативната памет на компютърът (RAM-ът: Random Access Memory, main memory) е извън CPU-то.
- За да получи инструкцията си за изпълнение, CPU-то издава заявка до RAM-ът:
- Прати ми съдържанието на толкова байта, както си ги запомнил, започвайки от този адрес.
- Колко толкова? Два, четири, осем най-много.
- RAM-ът взема от посочения̌т адрес поредица от битове (нѣ̋колко байта) и ги праща на CPU-то.
- А пък CPU-то ги интерпретира и ги изпълнява като машинна инструкция.
- Вѫтрѣ в себе си CPU-то поддържа специален регистър, нарѣчен PC (Program Counter).
- Чрѣз PC-регистърът CPU-то знае от кой адрес на RAM-ът да вземе инструкцията си.
- Когато CPU-то иска от RAM-ът слѣдваща инструкция за изпълнение, CPU-то използва съсдържанието на PC-регистърът за адрес към RAM-ът и веднага CPU-то увеличава PC-регистърът да бѫде готов за по-слѣдващата инструкция.
- Вѫтрѣ в себе си CPU-то поддържа нѣ̋колко регистъра, за които ще стане дума по-долу.
- PC-регистърът е един от тѣ̋х.
- Повечето регистри сѫ с общо прѣдназначение (General Purpose Registers).
- При нѣ̋кои компютри CPU-то взема съдържанието на PC-регистърът и на регистритѣ с общо прѣдназначение по един и сѫщ начин.
- При други компютри (напримѣр при IBM/360/370) CPU-то взема съдържанието на PC-регистърът по специален начин, със специална инструкция.
- Практически при всички компютри има специални машинни инструкции за установяване на ново съдържание на PC-регистърът.
- Това сѫ инструкциитѣ за безусловен или условен прѣход (branching, jumping).
- Тѣ промѣнят адресът на слѣдващата машинна инструкция.
- Вѫтрѣ в себе си CPU-то поддържа регистри.
- Това сѫ елементчета памет. Памет на една рѫка разстояние до CPU-то.
- RAM-ът е памет на един поглед разстояние,
- а дискът е необятна памет отвѫд хоризонтът.
- Повечето от тѣзи регистри сѫ с общо прѣдназначение.
- CPU-то не знае прѣдназначението им. Програмата знае.
- CPU-то се обръща към такъв регистър, само ако това е указано в изпълняваната машинна инструкция.
- Нѣ̋кои от регистритѣ сѫ със специално прѣдназначение.
- Такъв е PC-регистърът, за който стана̨ дума.
- CPU-то знае прѣдназначението му и го използва според прѣдназначението му.
- В съврѣменнитѣ компютри (но не и във IBM/360/370) има и друг регистър със специално прѣдназначение - SP (Stack Pointer).
- Темата за stack-ът и за heap-ът може би заслужава бесѣда от тукашната поредица бесѣди.
- Такава обаче не се прѣдвиђа.
- Дори установени термини на български нѣ̋ма.
- Пък и това не е загубило актуалността си - на тѣзи, които се уча̨т да програмират на C или C++, stack-ът и heap-ът трѣ̋бва да им бѫда̨т обяснени.
- А аз не пиша̨ учебник.
- Регистритѣ на CPU-то най-често съдържат адрес.
- Най-често в тѣ̋х се съхраняват адреси на мѣста от RAM-ът, с които CPU-то или по-точно програмата работи.
- Двата регистъра със специално прѣдназначение, за които стана̨ дума - PC-регистърът и SP-регистърът, съдържат именно адреси.
- Регистритѣ на CPU-то с общо прѣдназначение, които не съдържат адреси, ако програмата ги ползва,
тя ги ползват като акумулатори, напримѣр суматори.
- Акумулаторитѣ съдържат данни, които сѫ резултат от изчисления и подлѣжа̨т на скорошна обработка.
- Това сѫ елементчета памет. Памет на една рѫка разстояние до CPU-то.
- Даннитѣ, с които CPU-то борави при изпълнението на машинна инструкция, се наричат операнди на инструкцията.
- Един операнд:
- или се съдържа в самата инструкция,
- или се съдържа в нѣ̋кой регистър,
- или се съдържа в RAM-ът по нѣ̋кой адрес.
- Ако операндът се съдържа в RAM-ът, то адресът му:
- или се съдържа в самата инструкция,
- или се съдържа в нѣ̋кой регистър,
- или се съдържа в RAM-ът по нѣ̋кой адрес.
- Това послѣдното рѣ̋дко се срѣща, но се срѣща.
- По-голѣ̋ма дѫлбочина на косвено адресиране не се срѣща.
- Един операнд:
- И тъй, основната връзка на CPU-то (на централния̌т процесор)
със свѣтът извън него е връзката му с RAM-ът.
- Основното в тази връзка е адресът на мѣ̋сто в RAM-ът.
- CPU-то задава този адрес.
- CPU-то или иска да получи от RAM-ът съдържанието на този адрес, какво е запомнено там,
- или иска от RAM-ът по указания̌т адрес да бѫда̨т записани (и запомнени) нѣ̋какви данни (поредица от битове), които CPU-то сѫщо задава.
- Друга връзка на CPU-то (на централния̌т процесор) със свѣтът извън него
е системата на прѣкѫсвания.
- Основното прѣдназначение на механизмът на прѣкѫсванията е
CPU-то да бѫде увѣдомено за настѫпило измѣнение във външния̌т свѣ̋т.
- Завършила е операция за вход или за изход, натисна̨л съм клавиш, мръдна̨л съм мишката, барна̨л съм touch-screen-ът.
- Трудно ми е да го опиша̨ механизмът на прѣкѫсванията обобщено.
- Пък е и извън темата на бесѣдата.
- Основното прѣдназначение на механизмът на прѣкѫсванията е
CPU-то да бѫде увѣдомено за настѫпило измѣнение във външния̌т свѣ̋т.
- При компютърна архитектура, която позволява много-потрѣбителска (multi-user) работа,
CPU-то има най-малко два режима на работа: системен режим (kernel mode) и потрѣбителски режим (user mode).
- В потрѣбителския̌т режим (user mode) машиннитѣ инструкции, които мога̨т да повлияя̨т на другитѣ потрѣбители, сѫ забранени.
- Това сѫщо е извън темата на бесѣдата и силно зависи от конкретната компютърна архитектура.
- (.. скрий ги машиннитѣ инструкции ..) (.. скрий го уводът към швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Централния̌т процесор (CPU: Central Processing Unit) е мозъкът на компютърът -
това, дѣто смѣ̋та, мисли и взема рѣшения.
- ►► Адреси, адресно пространство, адресация (.. покажи ..)
-
▼▼
Адреси, адресно пространство, адресация
(.. скрий ..)
- И тъй, CPU-то (централния̌т процесор) на компютърът генерира и извеђа към външния̌т свѣ̋т адреси,
които сѫ част от два вида заявки:
- Заявка за четене:
- CPU-то иска да получи даннитѣ, записани на този адрес,
като прѣдполага, че това е адрес на мѣ̋сто от RAM-ът.
- CPU-то иска да получи даннитѣ, записани на този адрес,
- Или заявка за писане:
- CPU-то иска по този адрес да се запиша̨т и запомня̨т
нѣ̋какви данни, които CPU-то прѣдоставя заедно с адресът,
като пак прѣдполага, че адресът е на мѣ̋сто от RAM-ът.
- CPU-то иска по този адрес да се запиша̨т и запомня̨т
- Заявка за четене:
- Напримѣр, когато CPU-то иска да получи слѣдваща машинна инструкция за изпълнение, CPU-то издава заявка за четене по адрес, взет от PC-регистърът.
- При съврѣменнитѣ компютри адресът е адрес на байт - на поредица от 8 бита, нарѣчена байт.
- Не винѫги е било така.
- Но системата IBM/360 въведе тази мода и оттогава това е стандарт в индустрията.
- Ако към един адрес прибавим единица, ще се получи адресът на слѣдващия̌т байт.
- Заявката за четене или за писане по адрес, която CPU-то издава към външния̌т свѣ̋т,
може да има обхват с различна ширина:
- един байт (8 бита),
- два байта (16 бита),
- четири байта (32 бита - най-често), или
- осем байта (64 бита)
- Ако заявката е за два байта, обикновено адресът е четен (послѣдния̌т бит от адресът е 0).
- Ако заявката е за четири байта, обикновено адресът се дѣли на 4 (послѣднитѣ два бита от адресът сѫ 00).
- Харду̌ерът може да се сърди, ако не е така, а може и да не се сърди.
- CPU-то не може да издава заявки с произволна ширина.
- Не може 100 или 200 байта.
- CPU-то трѣ̋бва да издаде заявки байт по байт, а не наведнѫж.
- Не може само 5 бита.
- CPU-то трѣ̋бва да издаде заявка за цѣлия̌т 8-битов байт, а послѣ да си отдѣли интересуващитѣ го битове.
- Не може 100 или 200 байта.
- Най-често адресът прѣдставлява редица от 32 бита, интерпретирана като 32-битово двоично цѣ̋ло число без знак.
- Но има и други случаи.
- При други компютри адресът може да е 16-битово двоично число без знак.
- При IBM/360/370 адресът е 24-битово двоично число без знак.
- При други компютри адресът може да е 64-битово двоично число.
- Адреситѣ съставляват адресно пространство (address space).
- То се състои от всички възможни адреси.
- Отсега ще го нарѣка̨ физическо адресно пространство (physical address space), макар засега да не е ясно за какво е думата физическо.
- Ако адресът е 32-битов, то всички адреси на брой сѫ 4294967296.
- Това число е в десетичен запис и прѣдставлява 2 на степен 32.
- Толкова различни байта може да се адресират с 32-битови адреси.
- Може да се каже, че обемът на адресното пространство при 32-битови адреси е 4 гигабайта.
- При друга разрядност на адресът (16-битов, 24-битов, 64-битов) обемът на адресното пространство може да се прѣсмѣтне по сѫщата формула - числото 2 на тази степен.
- Най-ниския̌т (най-малкия̌т) адрес е съставен само от нулеви битове (двоични нули).
- Най-високия̌т адрес е съставен само от двоични единици.
- Стойността на адрес нѣ̋ма смисъл да се прѣдставя десетично.
- Прѣдставя се в шестнадесетичен или в осмичен запис и обикновено се запълват всички разряди.
- Напримѣр, най-високия̌т 32-битов адрес шестнадесетично се прѣдставя така: FFFFFFFF.
- А пък най-ниския̌т, разбира се е 0 (нула) или 00000000.
- CPU-то се обръща по адрес към външния̌т свѣ̋т -
CPU-то адресира физическо адресно пространство -
- или за да получи слѣдващата машинна инструкция, която CPU-то трѣ̋бва да изпълни,
- тогава това е заявка за четене,
- или в изпълнение на машинна инструкция,
- тогава това може да е заявка за четене или за писане според машинната инструкция.
- или за да получи слѣдващата машинна инструкция, която CPU-то трѣ̋бва да изпълни,
- (.. скрий ги адреситѣ и адресацията ..) (.. скрий го уводът към швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- И тъй, CPU-то (централния̌т процесор) на компютърът генерира и извеђа към външния̌т свѣ̋т адреси,
които сѫ част от два вида заявки:
- ►► Оперативна памет и физическо адресно пространство (.. покажи ..)
-
▼▼
Оперативна памет и физическо адресно пространство
(.. скрий ..)
- Когато CPU-то издава към външния̌т свѣ̋т - към физическото адресно пространство - заявка за четене или за писане, кой му отговаря?
- Кой я̨ изпълнява заявката?
- Кой е разположен във физическото адресно пространство?
- Най-често това е RAM-ът, оперативната памет.
- RAM-ът - това е памет (memory).
- Записва (запомня) подадени данни на мѣ̋сто, опрѣдѣлено чрѣз адресация, опрѣдѣлено от зададен физически адрес.
- Подава обратно даннитѣ, които сѫ били записани (запомени) на мѣ̋сто, опрѣдѣлено чрѣз адресация.
- RAM-ът е пасивно устройство.
- Изпълнява заявки и не проявява инициатива.
- Чии заявки изпълнява пасивното устройство RAM?
- На първо мѣ̋сто на CPU-то (на централния̌т процесор).
- В RAM-ът е записана неговата програма и CPU-то си я̨ чете програмата от RAM-ът.
- Пак към RAM-ът се обръща CPU-то и във връзка с операндитѣ на изпълняваната от него инструкция, освѣн когато операндът е в регистър.
- Но не само на CPU-то.
- Заявки към RAM-ът идват и откъм дисковия̌т контролер.
- По-общо казано, заявки към RAM-ът идват и откъм системата за вход/изход (I/O).
- Даннитѣ, които дискът или лентата записват на магнитната си повърхност, с посрѣдничеството на контролерът идват от RAM-ът, като контролерът използва сѫщата физическа адресация, както CPU-то.
- CPU-то ги е сложило на това мѣ̋сто в RAM-ът, прѣди да се стартира операцията за запис върху магнитен носител.
- И сѫщо така, даннитѣ, които дискът или лентата чета̨т от магнитната си повърхност, с посрѣдничеството на контролерът биват пращани към RAM-ът.
- CPU-то, при стартиране на операцията за четене от магнитен носител, е казало на контролерът къдѣ точно в RAM-ът - на кой физически адрес - да бѫда̨т записани тѣзи данни.
- Послѣ CPU-то ще си ги намѣри там.
- По-общо казано, заявки към RAM-ът идват и откъм системата за вход/изход (I/O).
- Напримѣр, от контролерът на дисплея̌т (на екранът).
- Дисплея̌т на моя̌т лаптоп (пиксели 1920 на 1080) изисква поне 8-мегабайтово мѣ̋сто в паметта.
- А реално вѣроятно доста повече.
- Цѣ̋лата RAM-памет на лаптопът ми е 16 гигабайта, което е 2000 пѫти повече от 8 мегабайта.
- За сравнение: прѣз 1979 започна̨х работа на компютър IBM/360 (ЕС ЭВМ) с RAM 120 килобайта.
- CPU-то подготвя в тази област от RAM-ът даннитѣ, включително картинкитѣ, които дисплея̌т трѣ̋бва да ми покаже.
- Областитѣ от RAM-ът, които служа̨т на CPU-то за обмѣн на данни с контролеритѣ на периферията, се наричат буфери.
- И CPU-то, и контролеритѣ се обръщат към буферитѣ чрѣз физическа адресация на RAM-ът.
- Контролеритѣ на периферията научават физическитѣ адреси на буферитѣ от CPU-то, от командата за стартиране на входно-изходната (I/O) операция.
- На първо мѣ̋сто на CPU-то (на централния̌т процесор).
- Най-много мѣ̋сто във физическото адресно пространство заема RAM-ът.
- Обаче RAM-ът не заема всичкото физическо адресно пространство.
- Може компютърът да е оборудван с по-малко RAM, отколкото физическото адресно пространство позволява.
- Може сегменти от RAM-ът да сѫ били отстранени заради поврѣда.
- А може и част от физическото адресно пространство да е била задѣлена от компютърната архитектура за контролеритѣ на периферията.
- Какъв е резултатът, слѣд като CPU-то издаде заявка за четене или писане по физически адрес към външния̌т свѣ̋т?
- Заявката ще бѫде изпълнена без проблеми.
- CPU-то може да бѫде увѣдомено, че адресът не е достѫпен заради защита по ключ.
- CPU-то може да бѫде увѣдомено, че адресът не е достѫпен, защото липсва.
- CPU-то може само̀ да се усѣти, че адресът липсва, ако отговорът на заявката закъснява.
- (.. скрий го физическото адресно пространство ..) (.. скрий го уводът към швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Много-потрѣбителска работа на компютърът (.. покажи ..)
-
▼▼
Много-потрѣбителска работа на компютърът
(.. скрий ..)
- Тази шеста бесѣда е за виртуалната памет. Напрѣдваме натам стѫпка по стѫпка.
- Прѣдишната пета бесѣда бѣше за дисковетѣ.
- Там стана̨ дума, че операционната система Unix не може без дискове.
- В дѣйствителност, всички съврѣменни компютри имат дискове и затова всички съврѣменни операционни системи разчитат на дискова памет.
- Всички съврѣменни компютри имат и виртуална памет.
- Съврѣменнитѣ операционни системи я̨ използват виртуалната памет, за да организират много-потрѣбителската работа (multi-user) на компютърът, и то до степента компютърът да може да се ползва като сървър - без формално заложено ограничение за едноврѣменно обслужванитѣ потрѣбители.
- Нататък в настоящия̌т подраздѣл ще се опитам да покажа̨ как е организирана много-потрѣбителската работа
в IBM/System-360 без виртуална памет.
- Какво значи да се организира много-потрѣбителска работа?
- Да е възможно компютърът да има много (поне повече от един) потрѣбители едноврѣменно,
- като системата чрѣз харду̌ерът и чрѣз системния̌т софту̌ер не позволява един потрѣбител неволно (чрѣз грѣшка в потрѣбителската програма) или умишлено да наруши работата на другитѣ потрѣбители или на компютърната система като цѣ̋ло.
- И тъй, в IBM/System-360 ..
- Наличната оперативна памет е раздѣлена на блокове (наричани още страници) по 2 килобайта (2048 байта).
- На всѣки такъв блок се назначава 4-битов ключ за защита.
- 4-битов ключ: това значи число от 0 до 15.
- Централния̌т процесор (CPU-то) сѫщо има своя текуща стойност на този 4-битов ключ.
- CPU-то го ползва своя̌т текущ 4-битов ключ при адресирането на оперативната памет (RAM-ът) по какъвто и да е повод.
- Когато CPU-то стартира канална програма, дава съотвѣтния̌т 4-битов ключ за ползване от каналът (от периферния̌т процесор) при изпълнението на тази канална програма.
- Всѣ̋ка заявка за достѫп до физически адрес
(а такава заявка може да идва от CPU-то или от нѣ̋кой канал)
трѣ̋бва да бѫде придружена от 4-битов ключ за достѫп. - Ако ключът за достѫп е нула, достѫпът се разрѣшава.
- Ако ключът за достѫп не е нула, достѫпът се разрѣшава,
само ако ключът за достѫп съвпада с ключът на защита на 2K-блокът, в който попада адресът. - Когато се изпълнява потрѣбителска програма, CPU-то работи в потрѣбителски режим.
- В потрѣбителски режим на CPU-то му е забранено да изпълнява привилигировани инструкции.
- В частност, на CPU-то в потрѣбителски режим му е забранено да промѣня своя̌т 4-битов ключ за достѫп, да промѣня 4-битовитѣ ключове за защита на блоковетѣ RAM, както и да стартира канални програми.
- Горното означава, че архитектурата на IBM/System-360 (без виртуална памет) позволява едноврѣменно обслужване на 15 потрѣбителя най-много.
- Имаше версия на операционната система - OS/360-MVT,
която автоматично разкрояваше наличната оперативна памет на потрѣбителски раздѣли (partitions)
според постѫпващитѣ задания в потокът за пакетна обработка (batch processing).
- Аз не съм имал досѣг с такава система.
- При системитѣ OS/360-MFT и DOS/360 наличната за ползване оперативна памет биваше разкроявана
на потрѣбителски раздѣли (partitions) от човѣк.
- Най-много 15 раздѣла, всѣки с ключ за защита от 1 до 15.
- Системата OS/360-MFT сама избираше кога да пусне дадено потрѣбителско задание и в кой от наличнитѣ раздѣли на паметта да го пусне.
- При системата DOS/360 човѣк указваше това (програмист, технолог, оператор).
- (.. скрий я̨ много-потрѣбителската работа ..) (.. скрий го уводът към швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Обектни модули, секции, сегменти (.. покажи ги ..)
-
▼▼
Обектни модули, секции, сегменти
(.. скрий ги ..)
- В този подраздѣл ще се помѫча̨ да покажа̨ как едно врѣме без виртуална памет се строѣ̋ха̨
голѣми програми за изпълнение от компютър.
- Толкова голѣми, че не се събират в наличната оперативна памет.
- Повечето от тѣзи нѣща все още сѫ валидни.
- Дори новитѣ технологии да ги скриват.
- Тука става дума само за програми, които сѫ създадени или построени да работя̨т непосрѣдствено на компютърът,
- а не за програми, които докато се изпълняват, се интерпретират от други програми.
- Не става дума за програми, написани на Java, JavaScript, Python, Perl, PHP и други подобни.
- Не става дума за програми, написани на разни shell-script-ове.
- Програмата се пише на части, нарѣчени изходни модули (source modules).
- Програмата може да се пише от колектив програмисти
- и различнитѣ изходни модули може да сѫ написани от различни програмисти.
- Но дори да е само един програмистът, естествено е програмата да се пише на части.
- Различнитѣ изходни модули може да сѫ написани на различни езици за програмиране.
- По принцип, на асемблер.
- Реално, на COBOL, FORTRAN, PL/I, Pascal, C или C++.
- Все още в употрѣба: C и C++.
- Всѣки изходен модул се обработва - компилира се или се асемблира - от асемблер или от компилатор,
и се получава обектен модул (object module).
- За обектни модули (object modules) ставаше дума и в прѣдната бесѣда.
- При всѣ̋ко пускане на асемблерът или на компилаторът се получава един обектен модул.
- Oбектния̌т модул има двоичен формат, нечетлив за хора.
- Едно врѣме за всѣ̋ка компютърна платформа сѫществуваше специфичен формат на обектнитѣ модули.
- Напримѣр, при IBM/System-360 обектнитѣ модули имаха̨ формат удобен за пънч, макар че отдавна тѣ не се пънчваха̨, а се записваха̨ на магнитен носител (диск или лента).
- Сега има нѣ̋какви стандартни общи формати за обектни модули. (.. Напримѣр, COFF .. или .. ELF ..)
- Един обектен модул съдържа машинни инструкции и данни,
- като даннитѣ мога̨т да бѫда̨т инициализирани (с обявени начални стойности) или не.
- Ако даннитѣ не сѫ инициализирани, тѣ не заемат мѣ̋сто в самия̌т обектен модул, но той пак назначава мѣ̋сто за тѣзи данни в оперативната памет по врѣме на изпълнение на програмата.
- Паметта за врѣмето на изпълнение на програмата можем да я̨ нарѣчем обектна памет.
- И тъй, един обектен модул назначава и пълни парчета от обектната памет.
- Когато ги пълни, пълни ги с машинни инструкции или инициализиращи данни.
- Но да не забравяме, че обектния̌т модул по начало е разултат от работата на компилаторът или асемблерът.
- Как обектния̌т модул допринася за обектната памет - компилаторът или асемблерът сѫ опрѣдѣлили това.
- Парчетата, с които обектния̌т модул допринася за обектната памет, се наричат програмни секции.
- Едно врѣме при IBM/System-360 вмѣсто програмни секции се казваше контролни секции.
- Обектната памет - оперативната памет, назначена за изпълняваната програма - се дѣли на програмни секции.
- Ако обектния̌т модул е резултат от работата на асемблерът, то асемблерът е слѣдвал точно указанията на програмистът как да се разкрои модулът на секции.
- Ако обектния̌т модул е резултат от работата на компилатор, компилаторът сам може да рѣши да отдѣли машиннитѣ инструкции, инициализиранитѣ данни и неинициализиранитѣ данни в различни секции.
- Но и в този случай програмистът трѣ̋бва да може да укаже специфика в оформянето на програмнитѣ секции.
- Има двѣ програми, които умѣя̨т да боравя̨т с обектни модули:
- програма-библиотекар (librarian), наричана в системата Unix архивар (ar), и
- линкер (Linker или LinkageEditor), наричан още свързващ редактор.
- Библиотекаря̌т (архиваря̌т) поддържа
- библиотеки от обектни модули, наричани още статични библиотеки.
- Като файлове в IBM/System-360 библиотекитѣ от обектни модули се наричаха̨
RLB-та,
в системата Unix файловетѣ със статични библиотеки имат разширение на името .a, а във Windows - .lib. - Един обектен модул е резултат от работата на асемблерът или на компилаторът.
- Той може да си остане отдѣлен файл (с разширение .o в Unix или .obj във Windows),
- но може с помощта на библиотекаря̌т да се пъхне в нѣ̋коя статична библиотека.
- Библиотекаря̌т и форматът на статичнитѣ библиотеки сѫ проектирани така, че да служа̨т на линкерът.
- Библиотекаря̌т не може да раздѣли обектен модул на съдържащитѣ се в модулът програмни секции - това го може линкерът.
- Линкерът - сам или с вѫтрешна невидима помощ от библиотекаря̌т, трѣ̋бва да може:
- Да извлѣче от статична библиотека обектен модул по името на модулът.
- Да извлѣче от статична библиотека този обектен модул, съдържащ се в нея̨, който дефинира даден външен символ.
- Външнитѣ символи най-често сѫ имена на подпрограми (функции), но може и да сѫ означения на блокове с данни.
- Линкерът е една от най-важнитѣ програми.
- Резултатът (изходът) от едно пускане на линкерът е изпълнима програма - executable.
- Забѣлѣжка в аванс. В новитѣ системи със виртуална памет резултатът от линкерът може да бѫде или executable, или динамична библиотека. Но засега ще забравим за това.
- Паметта на executable-ът се дѣли на сегменти (segments).
- По своя инициатива - ако не му е указано от програмистът, линкерът нѣ̋ма да направи повече от един сегмент.
- Забѣлѣжка в аванс. По своя инициатива линкерът нѣ̋ма да направи динамична библиотека.
- Забѣлѣжка в аванс. Динамичната библиотека е сегмент за общо ползване.
Но засега ще забравим за това.
- Резултатът (изходът) от едно пускане на линкерът е изпълнима програма - executable.
- Ако executable-ът (изпълнимата програма) се вмѣства в наличната оперативна памет,
- то нѣ̋ма смисъл executable-ът да се дѣли на сегменти - достатъчен е един сегмент.
- В този случай програмистът не мисли и за програмни секции.
- За всѣки изходен модул компилаторът ще създаде обектен модул с най-много три програмни секции: за машинни инструкции, за инициализирани данни и за неинициализирани данни.
- Дали тя съдържа машинни инструкции, инициализирани данни или неинициализирани данни - това е свойство на програмната секция.
- Компилаторът дава едно и сѫщо подразбиращо се име на програмнитѣ секции, щом програмистът не се е намѣсил.
- Послѣ линкерът ще сглоби секцията с това подразбиращо се име, като събере (конкатенира) приноситѣ към тази секция от различнитѣ обектни модули.
- Така в получения̌т единствен сегмент има само една програмна секция, съдържаща машинни инструкции, и името ӥ се подразбира.
- По подобен начин се третират и секциитѣ с данни, но тѣ не се събират, а се прѣпокриват.
- От различнитѣ изходни модули прѣз различнитѣ обектни модули се обръщаме към общи данни - това е смисълът на прѣпокриването.
- Когато такава програма се пуска за изпълнение, единствения̌т ӥ сегмент се заређа в оперативната памет и управлението на CPU-то се прѣдава на указана входна точка.
- Смисълът на този подраздѣл обаче е да обясня̨ как се строя̨т голѣми програми
- такива, които не се побират в наличната оперативна памет.
- Програмистът проектира и разкроява голѣ̋мата програма на сегменти.
- Всѣки сегмент се заређа в оперативната памет отдѣлно.
- Не е възможно всички сегменти да се заредя̨т едноврѣменно, защото програмата е голѣ̋ма.
- Един от сегментитѣ е базов - root segment.
- Той се заређа, когато програмата се пусне да се изпълнява, и той заређа другитѣ сегменти.
- Нѣкои от сегментитѣ се прѣпокриват - тѣ се заређат на един и сѫщ адрес (на едно и сѫщо мѣ̋сто) и не мога̨т да сѫ заредени едноврѣменно.
- Никой от другитѣ сегменти не прѣпокрива базовия̌т сегмент.
- Може да има нѣ̋колко групи от взаимно прѣпокриващи се сегменти.
- Програмистът указва на линкерът:
- от колко сегмента да бѫде построен executable-ът,
- кой е базовия̌т сегмент и кои сѫ групитѣ прѣпокриващи се сегменти,
- от кои обектни модули и програмни секции да се състои всѣки сегмент.
- Линкерът включва в базовия̌т сегмент подпрограмки за замѣстване на един сегмент с друг по врѣме на изпълнение.
- Дори да идват от един и сѫщ обектен модул, различнитѣ програмни секции мога̨т да отида̨т в различни сегменти.
- Програмистът проектира и разкроява една голѣ̋ма програма на сегменти, така че замѣстванията на един сегмент с друг да се случват максимално рѣ̋дко.
- При недобро разпрѣдѣление на програмнитѣ секции и обектнитѣ модули по сегментитѣ, производителността на програмата може да падне драстично.
- (.. скрий ги секциитѣ и сегментитѣ ..) (.. скрий го уводът към швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- В този подраздѣл ще се помѫча̨ да покажа̨ как едно врѣме без виртуална памет се строѣ̋ха̨
голѣми програми за изпълнение от компютър.
- ◄► (.. скрий го уводът ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ шестата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Нѣщо по срѣдата (.. покажи го ..) (.. разгъна̨то ..)
-
▼▼
Нѣщо по срѣдата
(.. скрий го ..)
(.. свий го ..)
(.. разгъни го ..)
- ◄► За да разберете това нѣщо по срѣдата, трѣ̋бва да сте прочели нѣщото като увод.
- ►► Динамичната прѣадресация (.. покажи ..)
-
▼▼
Динамичната прѣадресация
(.. скрий ..)
- Това, което се слага по срѣдата међу CPU-то (централния̌т процесор) и външния̌т за него свѣ̋т, е MMU-то.
(.. Повече за MMU-тата можете да прочетете тука ..)- Външния̌т свѣ̋т за CPU-то се състои от физическата оперативна памет и от периферията.
- MMU-то стои на изходът от CPU-то към външния̌т свѣ̋т.
- Всѣки адрес, който CPU-то генерира и праща към външния̌т свѣ̋т в заявки за четене или за писане, минава прѣз MMU-то.
- Когато MMU-то не работи (не е включено, изключено е), адреситѣ минават прѣз MMU-то без промѣ̋на.
- Може да се смѣ̋та, че когато MMU-то е изключено, адреситѣ не минават прѣз него.
- Когато обаче MMU-то работи (включено е), то промѣня адреситѣ и пуска към външния̌т свѣ̋т други адреси.
- MMU-то извършва динамична прѣадресация
- Адреситѣ, които важа̨т във външния̌т свѣ̋т, се наричат физически адреси.
- Тѣ образуват физическо адресно пространство.
- Адреситѣ, които CPU-то генерира и които стигат само до MMU-то, се наричат виртуални адреси.
- Тѣ образуват виртуално адресно пространство.
- MMU-то извършва динамична прѣадресация:
прѣобразува виртуалнитѣ адреси във физически. - CPU-то може да включва и да изключва MMU-то,
но само когато CPU-то е в системен (привилегирован) режим (kernel mode, privileged mode),
не и в потрѣбителски режим (user mode).
- Битоветѣ на виртуалния̌т адрес се дѣля̨т на двѣ групи - младши и старши.
- Старшитѣ битове опрѣдѣлят "сѫдбата" на виртуалния̌т адрес.
При "щастливо" стечение на обстоятелствата,
тѣ опрѣдѣлят базовия̌т физически адрес,
към който се добавят младшитѣ битове,
за да се получи физическия̌т адрес.
- Старшитѣ битове опрѣдѣлят "сѫдбата" на виртуалния̌т адрес.
- Виртуалнитѣ адреси със съвпадащи старши битове образуват виртуална страница (virtual page).
- Виртуалнитѣ адреси от една виртуална страница обикновено имат една и сѫща "сѫдба". (Изключение: PDP-11)
- Колко на брой сѫ младшитѣ битове на виртуалния̌т адрес?
- Колко е голѣ̋ма една виртуална страница?
- Тѣзи два въпроса, разбира се, сѫ свързани:
броя̌т на младшитѣ битове на адресът опрѣдѣля размѣрът на една виртуална страница. - Зависи от архитектурата на компютърът и от моделът на MMU-то.
- При нѣ̋кои MMU-та броя̌т на младшитѣ битове на адресът е част от настройката на това устройство, и то работи според текущата си настройка.
- При IBM/System-370 ..
- броя̌т на младшитѣ битове e 11, и съотвѣтно една виртуална страница е 2048 байта (2 килобайта, 2К байта, 2 на степен 11 байта).
- Спомнѣте си, че в IBM/360/370 толкова е и размѣрът на блокът памет с общ 4-битов ключ за защита.
- Адресът в системата IBM/370 е 24-битов.
- Младшитѣ 11 бита на виртуалния̌т адрес дават адресът вѫтрѣ във виртуалната страница, а старшитѣ 13 бита опрѣдѣлят коя е самата виртуална страница.
- При VAX броя̌т на младшитѣ битове e 9, и съотвѣтно една виртуална страница е 512 байта (2 на степен 9 байта, половин килобайт).
- При по-новитѣ компютърни архитектури, с модерна организация на дисковата памет, размѣрът на виртуалната страница е съгласуван с размѣрът на дисковитѣ блокове в разпрѣдѣлението на дисковото пространство по файлове..
- (.. покажи ..) MMU-то на PDP-11 не е показателно за другитѣ компютри, но този случай е обозрим. (.. покажи подробности за MMU-то на PDP-11 там ..)
-
MMU-то на PDP-11 не е показателно за другитѣ компютри, но този случай е обозрим.
(.. покажи подробности за MMU-то на PDP-11 там ..)
(.. скрий го PDP-11 ..)
- PDP-11 е 16-битов компютър, и виртуалния̌т адрес е 16-битов.
- Броя̌т на младшитѣ битове във виртуалния̌т адрес е 13, а на старшитѣ - 3.
- Това означава, че:
- една виртуална страница е 8 К (2 на степен 13) байта,
- виртуалното адресно пространство е 64 К (2 на степен 16) байта, и
- виртуалното адресно пространство съдържа 8 (осем на брой: 2 на степен 3) виртуални страници.
- За да извършва динамичната прѣадресация, MMU-то на PDP-11 ползва таблица с осем реда - таблица на виртуалнитѣ страници, по един ред за всѣ̋ка виртуална страница.
- В дѣйствителност, MMU-то на PDP-11 има достѫп до двѣ такива таблици: една за системния̌т режим (kernel mode) на CPU-то, и друга за потрѣбителския̌т режим (user mode).
- С други думи, във всѣки момент има двѣ виртуални адресни пространства - едно за "kernel mode" и друго за "user mode".
- С прѣвключването от "kernel mode" във "user mode", CPU-то смѣня видимото за него виртуално адресно пространство.
- А колко е голѣ̋мо физическото адресно пространство при компютритѣ PDP-11?
- Младшитѣ модели нѣ̋мат MMU и физическото адресно пространство е сѫщото като виртуалното.
- Младшитѣ модели на PDP-11 сѫ едно-потрѣбителски компютри.
- При срѣднитѣ модели физическитѣ адреси сѫ 18-битови и размѣрът на физическото адресно пространство е 256 К байта (2 на степен 18 байта).
- При старшитѣ модели физическитѣ адреси сѫ 22-битови и размѣрът на физическото адресно пространство е 4 М байта (4 мегабайта, 2 на степен 22 байта).
- При всички модели горнитѣ 8 К байта от физическото адресно пространство сѫ задѣлени за входно-изходната страница.
- Остана̨лата част на физическото адресно пространство е свободна за разполагане на физическа оперативна памет там.
- При срѣднитѣ модели 248 К байта е максималния̌т размѣр на наличната физическа оперативна памет.
- Характерно за архитектурата на PDP-11 е това, че размѣрът на физическото адресно пространство (то е 18-битово или по-голѣ̋мо) надвишава размѣрът на виртуалното адресно пространство.
- При PDP-11, MMU-то (динамичната прѣадресация) дава на CPU-то възможност да гледа по цѣ̋лото физическо адресно пространство, като прѣнастройва и промѣня виртуалното адресно пространство.
- Виртуалната страница е доста голѣ̋ма по размѣр - 8 K байта.
- А пък наличната физическа оперативна памет при PDP-11 е цѣ̀нен ресурс,
- при положение, че срѣднитѣ и старшитѣ модели се рекламират като много-потрѣбителски компютри.
- Физическата оперативна памет се разпрѣдѣля за ползване по̀ на дребно - на парчета по 128 байта.
- Едно такова парче се опрѣдѣля от съвпадащи старши битове на физическия̌т адрес, слѣд като отрѣжем младшитѣ 7 бита.
- Една виртуална страница (8 К байта) може да съдържа 64 на брой 128-байтови парчета.
- Колко точно такива парчета сѫ назначени за виртуалната страница - това може да се укаже със 6 бита.
- Схема на 16-битов виртулен адрес при PDP-11:
P P P L L L L L L Λ Λ Λ Λ Λ Λ Λ ................. Λ Λ Λ Λ Λ Λ Λ => 7 най-младши бита ..... L L L L L L ............. => 6 срѣдно младши бита P P P ......................... => 3 старши бита
- P: тритѣ старши бита опрѣдѣлят една от 8-тѣ виртуални страници на виртуалното адресно пространство.
- Λ: 7-тѣ най-младши бита се запазват без промѣ̋на във физическия̌т адрес слѣд динамичната прѣадресация.
- L: 6-тѣ срѣдни бита опрѣдѣлят 128-байтовото парче от физическата памет. Ако такова парче не е назначено, адресът е невалиден.
- L: тѣзи 6 бита, разглеђани като двоично число без знак, се прибавят към базовото число от специалния̌т регистър PAR за съотвѣтната виртуална страница.
- Схема на 18- или 22-битов физически адрес при PDP-11:
b b b b B B B B B B B B B B B Λ Λ Λ Λ Λ Λ Λ ............................. Λ Λ Λ Λ Λ Λ Λ => 7 най-младши бита b b b b B B B B B B B B B B B ............. => 11 или 15 старши бита
- Λ: 7-тѣ най-младши бита сѫ копирани от виртуалния̌т адрес.
- bB: старшитѣ битове на физическия̌т адрес се получават, като към базовото число от специалния̌т регистър PAP се прибави 6-битовото число LLLLLL от виртулния̌т адрес.
- И тъй, MMU-то на PDP-11 във всѣки момент прѣдоставя двѣ виртуални адресни пространства:
- едно за системен режим (kernel mode) и друго за потрѣбителски режим (user mode).
- Всѣ̋ко от двѣтѣ виртуални адресни пространства се състои от осем виртуални страници.
- За всѣ̋ка виртуална страница във MMU-то има по два специална регистъра:
- PAR (Page Address Register). Съдържа старшитѣ битове на физическия̌т адрес на началото на страницата, слѣд като младшитѣ седем бита сѫ отсѣчени.
- PDR (Page Descriptor Register). Описва виртуалната страница.
- CPU-то казва на MMU-то дали достѫпът до виртуалната страница изобщо е разрѣшен.
- CPU-то казва на MMU-то дали във виртуалната страница е разрѣшено писане (е разрѣшена промѣ̋на).
- CPU-то казва на MMU-то колко 128-байтови парчета физическа памет сѫ задѣлени за виртуалната страница.
- CPU-то казва на MMU-то дали тѣзи 128-байтови парчета физическа памет сѫ разположени в началото или в края̌т на виртуалната страница.
Удобно е виртуална страница, използвана за стек (stack), да започва от края̌т на адресния̌т диапазон. - MMU-то казва на CPU-то дали виртуалната страница е била промѣняна.
- Освѣн това, има нѣ̋колко специални регистъра общо за MMU-то, така че:
- CPU-то да може да го пуска MMU-то и да го спира,
- MMU-то да може да каже на CPU-то защо виртуален адрес е невалиден и как да се излѣзе от ситуацията.
- Резюме́: Какво позволява MMU-то на PDP-11? За какво се ползва то?
- Физическото адресно пространство да е по-голѣ̋мо от виртуалното адресно пространство, което е ограничено до 64 K байта.
- Изолиране на потрѣбителитѣ един от друг.
- Базовия̌т сегмент и стекът може да започват от едни и сѫщи виртуални адреси за кой да е потрѣбител.
- Слѣд динамичната прѣадресация полученитѣ физически адреси ще сѫ различни за различнитѣ потрѣбители.
- Един конкретен потрѣбител изобщо не може да виђа физическата памет извън показаното в неговото виртуално адресно пространство.
- В рамкитѣ на обслужването на един потрѣбител.
- На един потрѣбител при нуђа може да му бѫде задѣлена физическа оперативна памет,
повече отколкото той може в даден момент да виђа прѣз виртуалното си адресно пространство.
- Виртуалното адресно пространство е 64 К байта.
- А може да има и 100 K байта налична физическа оперативна памет, свободна за разпрѣдѣление.
- MMU-то на PDP-11 позволява прѣзаређане на виртуални страници, така че в различни моменти една виртуална страница да гледа към различни сегменти на физическата оперативна памет.
- На един потрѣбител при нуђа може да му бѫде задѣлена физическа оперативна памет,
повече отколкото той може в даден момент да виђа прѣз виртуалното си адресно пространство.
- Обслужване на повече потрѣбители, отколкото наличната физическа оперативна памет без MMU би позволила.
- Физическа оперативна памет е цѣ̀нен ресурс, подлежащ на разпрѣдѣление међу потрѣбителитѣ съобразно тѣхнитѣ нуђи и приоритети.
- Парче физическа оперативна памет, обикновено с размѣр на виртуална страница, което е назначено на потрѣбител в състояние на очакване на нѣщо или на потрѣбител с нисък приоритет, може да бѫде записано на дискът в специален файл (swap file), без този "ощетен" потрѣбител да "съзнава" какво става, и мѣ̋стото във физическата оперативна памет да се даде на друг потрѣбител.
- В моментът, когато "ощетения̌т" потрѣбител отново се "събуди" за работа, неговото виртуално адресно пространство се заређа в MMU-то, но онова парче памет, което е било записано на дискът в специалния̌т файл, не се връща във физическата памет.
- Виртуалния̌т адрес, който сочи към него, ще бѫде невалиден.
- Може да не се случа̨т обръщения към тази невалидна виртуална страница, която отдавна е била изгонена от физическата оперативна памет на дискът. Тя ще си остане на дискът.
- Но ако има обръщение към нея̨, MMU-то ще рапортува невалиден адрес,
а операционната система ще се сѣти какво да направи.
- Потрѣбителя̌т ще мине в състояние на очакване.
- Ще му бѫде задѣлена нужната физическа оперативна памет.
- На това ново мѣ̋сто ще бѫде прочетена от дискът исканата виртуална страница.
- Виртуалната таблица ще бѫде промѣнена, така че тази виртуална страница да гледа към това ново мѣ̋сто.
- Потрѣбителя̌т ще мине в състояние на готовност.
- Ако настане момент този потрѣбител пак да отстѫпи назад и да даде прѣдимство на други, и ако при това физическа оперативна памет, задѣлена за тази виртуална страница, трѣ̋бва пак да бѫде освободена за други нуђи, операционната система ще провѣри дали тази виртуална страница е била промѣняна, докато е прѣбивавала във физическата оперативна памет.
- Ако не е била, парчето физическа памет просто се освобођава.
- Но ако е била промѣняна, парчето физическа памет се освобођава, едва слѣд като записът върху дискът се опрѣсни.
- (.. скрий го PDP-11 ..) (.. скрий го PDP-11 ..)
- (.. скрий я̨ динамичната прѣадресация ..) (.. скрий го това по срѣдата на швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Това, което се слага по срѣдата међу CPU-то (централния̌т процесор) и външния̌т за него свѣ̋т, е MMU-то.
- ►► Общо виртуално адресно пространство за цѣ̋лата система (.. покажи ..)
-
▼▼
Общо виртуално адресно пространство за цѣ̋лата система
(.. скрий ..)
- В прѣдишния̌т подраздѣл навлѣ̋зох в нѣ̋кои подробности за MMU-то на PDP-11.
- Но първото MMU, което ми е попадало, е това за IBM/System-370.
- Тука най-напрѣд ще ги сравня̨ накратко.
- MMU-то на PDP-11 изобразява малко виртуално адресно пространство върху по-голѣ̋мо физическо адресно пространство.
- При IBM/370 физическото адресно пространство реално е по-малко от виртуалното.
- MMU-то на PDP-11, както и всички по-нови MMU-та, прѣдоставят отдѣлни виртуални адресни пространства за различнитѣ режими на CPU-то - системния̌т и потрѣбителския̌т (kernel-user mode).
- MMU-то на IBM/370 прѣдоставя само едно виртуално адресно пространство.
- MMU-то на IBM/System-370 е трѣ̋бвало да поддържа защитата по 4-битов ключ, наслѣдена от IBM/System-360.
- MMU-то на PDP-11 позволява разрѣшения̌т диапазон на адреситѣ в една виртуална страница да е по-малък от самата виртуална страница.
Физическата памет се разпрѣдѣля на парчета по 128 байта. - При IBM/360/370 паметта се разпрѣдѣля само по цѣли страници, 2 K байта всѣ̋ка.
- При PDP-11, MMU-то е част от архитектурата на компютърът от самото начало.
- При IBM/360/370, MMU-то идва като късно допълнение на вече установила се сѫществуваща архитектура.
- Затова, при въвеђането на разширената архитектура IBM/370, първата работа на разработчицитѣ на системния̌т софту̌ер е да се пусне натрупания̌т за IBM/360 софту̌ер, системен и приложен, и то с минимални промѣни.
- Усилията сѫ били насочени към виртуализация.
- Физическата оперативна памет е да кажем 512 K байта (половин мегабайт).
Модели на IBM/370 с памет повече от един мегабайт май не сѫ пускали. - Във дисков файл (page file) се моделира виртуална памет да кажем два мегабайта.
То и дисковото пространство е кът.
Максималния̌т размѣр е 16 M байта. - Старата система - тази, която е работила години наред на IBM/System-360 и която не подозира за такива нѣща като MMU, динамична прѣадресация и виртуални адреси, се пуска да работи при памет два мегабайта.
- Само дѣто тази памет е виртуална.
- Цѣ̋лата виртуална памет я̨ има на дискът.
- Виртуалнитѣ страници, които се ползват в моментът, сѫ заредени във физическата оперативна памет, и MMU-то динамично прѣобразува виртуалнитѣ адреси в реални физически адреси.
- В нѣ̋какъв момент се случва обръщение към виртуална страница, която не е заредена във физическата оперативна памет,
- MMU-то ще съобщи за това събитие на CPU-то чрѣз прѣкѫсване.
- В случая̌т на IBM/370 това прѣкѫсване ще бѫде прихвана̨то и обработено от ново-написания̌т системен софту̌ер.
- MMU-тата на IBM/370 и на PDP-11 сѫ истински MMU-та,
- Едно истинско MMU ще помогне на системния̌т софту̌ер да рѣши коя виртуална страница између зареденитѣ в паметта да бѫде изгонена оттам, за да се освободи мѣ̋сто за ново-поисканата виртуална страница.
- Ще бѫде изгонена тази, към която не е имало обръщение най-отдавна.
- MMU-то ще каже дали тази страница е била промѣняна по врѣме на прѣстоя̌т си във физическата оперативна памет.
- Ако е била промѣняна, нейния̌т запис върху дискът ще се опрѣсни.
- Слѣд това исканата виртуална страница - тази, която е прѣдизвикала прѣкѫсването, ще бѫде заредена от дискът на освободеното мѣ̋сто във физическата оперативна памет, и изпълнението ще продължи от мѣ̋стото на прѣкѫсване.
- Прѣкѫсна̨тата програма нѣ̋ма да забѣлѣжи прѣкѫсването.
- Ново-написания̌т системен софту̌ер трѣ̋бва да прихваща и други нѣща от старата система.
- Командитѣ за работа с 4-битовитѣ ключове за защита трѣ̋бва да бѫда̨т прихващани.
- Тѣзи ключове важа̨т за виртуалнитѣ страници, сѫществуващи само като копие в дисковия̌т файл.
- Командитѣ за старт на вход-изход и прѣкѫсванията откъм системата за вход-изход трѣ̋бва да бѫда̨т прихващани,
- защото буферитѣ за вход-изход трѣбва да остана̨т във физическата оперативна памет.
- Още нѣщо. Тѣзи буфери имат различни виртуални и физически адреси, а системата за вход-изход трѣ̋бва да знае само физическитѣ адреси.
- Физическата оперативна памет е да кажем 512 K байта (половин мегабайт).
- Освѣн IBM/370, не зная̨ друг случай, когато при виртуална памет и "истинско" MMU
да се поддържа общо виртуално адресно пространство за цѣ̋лата система.
- При IBM/370 това се е наложило, за да може бързо да се пусне сѫществуващ и познат на потрѣбителитѣ софту̌ер на модел с модифицирана архитектура.
- (.. скрий го общото виртуално адресно пространство ..) (.. скрий го това по срѣдата на швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Всѣки потрѣбител с отдѣлно виртуално адресно пространство (.. покажи ..)
-
▼▼
Всѣки потрѣбител с отдѣлно виртуално адресно пространство
(.. скрий ..)
- В прѣдишния̌т подраздѣл показах кое е било най-малкото, което разработчицитѣ на системния̌т софту̌ер на IBM/System/360/370 е трѣ̋бвало да направя̨т, за да използват новия̌т харду̌ер - MMU-то.
- Осигурили сѫ голѣ̋мо виртуално адресно пространство.
- На първо врѣме - едно за цѣ̋лата система.
- Слѣдващата стѫпка е да се осигури отдѣлно виртуално пространство за всѣки потрѣбител.
- Освѣн при IBM/370, при другитѣ системи с "истинско" MMU това е било първата стѫпка.
- Върху специален дисков файл системата моделира нѣ̋колко виртуални адресни пространства - по едно за потрѣбител.
- Всѣ̋ка виртуална страница, записана в специалния̌т файл, се идентифицира не само с виртуалния̌т си адрес, но и с идентификаторът на потрѣбителя̌т.
- Всѣки потрѣбител получава свое виртуално адресно пространство.
- Но, разбира се, не с максималния̌т размѣр (16 M байта при IBM/370), а само толкова, колкото му е нужно.
- Старото ограничение - 15 - за броя̌т на едноврѣменно обслужванитѣ потрѣбители, наложено от 4-битовия̌т ключ за защита при IBM/360, отпада.
- Специалния̌т дисков файл може да съдържа страницитѣ на повече от 15 виртуални адресни пространства.
- Потрѣбителитѣ сѫ изолирани един от друг - всѣки виђа само своето виртуално адресно пространство.
- Във всѣ̋ка архитектура MMU-то си има особености.
- Обобщение на особеноститѣ при IBM/370.
- Отдѣлно виртуално адресно пространство за всѣки потрѣбител е втора стѫпка при IBM/370, докато при другитѣ е първа стѫпка и се подразбира.
- MMU-то при IBM/370 трѣ̋бва да се съобразява с 4-битовия̌т ключ за защита, наслѣден от IBM/370.
- Развитието на системния̌т софту̌ер при IBM/370 е вървѣ̋ло в двѣ посоки:
- Старитѣ операционни системи, които потрѣбителитѣ добрѣ познават от IBM/360, се модифицират така, че всѣки потрѣбител в терминитѣ на старата система да получи свое виртуално адресно пространство.
- Разработена е нова операционна система VM/370, която може да обслужва много потрѣбители.
- Разбира се, програми мога̨т да се изпълняват непосрѣдствено на операционната система VM/370.
- VM е съкращение на Virtual Machines.
- Системата VM/370 може да играе ролята на домакин, като потрѣбителитѣ ӥ сѫ ӥ гости.
- Като домакин тя може да прѣдостави на всѣки свой гост отдѣлна виртуална машина - отдѣлен виртуален компютър.
- Архитектурата на прѣдоставената на гостът виртуална машина - IBM/360 или IBM/370, както и конфигурацията, е по избор.
- Системата VM/370 като домакин симулира за гостът избраната от него виртуална машина.
- За домакинът VM/370 един гост е един потрѣбител.
- Но гостът може да пусне на своята си виртуална машина каквато си иска опрационна система - стара (DOS/360, OS/MFT, OS/MVT) или нова (т.е. модифицирана стара).
- стара, дълго врѣме експлоатирана на IBM/360, или
- нова, за IBM/370 - с едно виртуално адресно пространство или с нѣ̋колко такива.
- Така на своята си виртуална машина гостът може да обслужва свои потрѣбители.
- Накратко, новата операционна система VM/370 прѣдоставя на всѣки свой потрѣбител, когото аз тука наричам гост, не само и не толкова отдѣлно виртуално адресно пространство, а отдѣлна виртуална машина.
- Основна грижа на разработчицитѣ на системния̌т софту̌ер за IBM/370 е била да не налагат промѣни в потрѣбителския̌т софту̌ер, който е бил дълго врѣме в експлоатация на IBM/360.
- (.. скрий ги отдѣлнитѣ виртуални адресни пространства ..) (.. скрий го това по срѣдата на швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Потрѣбители, сесии, процеси и нишки (.. покажи ..)
-
▼▼
Потрѣбители, сесии, процеси и нишки
(.. скрий ..)
- Едно врѣме - при IBM/System/360/370, при пакетната обработка и прѣди системата Unix - тѣзи понятия не бѣ̋ха̨ добрѣ опрѣдѣлени.
- В прѣдишнитѣ раздѣли и подраздѣли на тази бесѣда употрѣбявах нѣ̋какво недобрѣ дефинирано понятие потрѣбител.
- При пакетната обработка (batch procesisng) точната дума бѣше job, но не мога̨ да намѣря̨ подходяща българска дума за job.
- Нѣ̋кога думата job я̨ прѣвеђахме на български и на руски с думата задание.
- Думата задание не се вписва добрѣ в контекстът на настоящата бесѣда.
- Затова досега пишѣх потрѣбител.
- Но настана̨ врѣме понятията да се уточня̨т.
- Уточнението дойде със системата Unix.
- Да напомня̨, че виртуална памет без дискова памет нѣма.
- На виртуалната памет е посветена настоящата бесѣда, а на дисковата памет - прѣдишната.
- В прѣдишната бесѣда май бѣ̋х написал, че без дисковата памет и системата Unix я̨ нѣ̋ма.
- Потрѣбителитѣ (users).
- Описанието на потрѣбителитѣ се намира в "зорко охраняван" файл на системния̌т диск.
- В нашитѣ модерни врѣмена описанието на потрѣбителитѣ може да се намира в нѣ̋кой облак тъмен.
- Това значи да се намира на диск на нѣ̋кой сървър, разположен в нѣ̋коя точка от глобусът или от космосът.
- Сървърът е мощен компютър.
- Облачността на глобалната мрѣжа се състои от сървъри, които мѣня̨т локацията си като стратегически ядрени ракети.
- В настоящата си бесѣда облачността ще я̨ игнорирам.
- Все пак, аз пиша̨ прѣдимно за мина̨лото.
- Един потрѣбител се идентифицира с името си (username).
- Потрѣбителя̌т си има и парола.
- Потрѣбителя̌т е собственик на нѣ̋кои файлове на дискът, и към тѣ̋х той има пълен достѫп.
- Към други файлове един потрѣбител може да има ограничен достѫп, или пък може да нѣ̋ма никакъв достѫп.
- Този важен аспект - достѫпът на потрѣбителитѣ до дисковитѣ файлове, нѣ̋ма отношение към виртуалната памет.
- Може би трѣ̋бваше да бѫде разгледан в прѣдишната бесѣда.
- Как да е. За достѫът на потрѣбителитѣ до дисковитѣ файлове - толкова.
- Описанието на потрѣбителитѣ се намира в "зорко охраняван" файл на системния̌т диск.
- Сесиитѣ.
- Потрѣбителя̌т отваря и затваря сесии.
- Отварянето на сесия се нарича LogIn или SignIn,
- а затварянето - LogOut или SignOut.
- От гледна точка на потрѣбителя̌т в рамкитѣ на сесията той изпълнява програми - потрѣбителски програми, приложни програми, приложения, applications.
- Напримѣр аз сега като пенсионер на лаптопът си най-често изпълнявам двѣ приложения - брау̌зерът (the internet browser), с който ровя̨ из интернет, и редакторът, с който въвеђам текстоветѣ на html.
- Процеситѣ.
- За изпълнението на всѣ̋ка компютърна програма (включително на всѣ̋ко приложение), операционната система пуска процес.
- Един процес може да пуска други процеси.
- В повечето случаи, самата операционна система работи като взаимодѣйстващи си процеси.
- Един процес може сам да си завърши (to terminate).
- Може и привилегирован процес да го терминира (to be terminated).
- Понятието процес е най-важното във връзка с MMU-тата. тоест в контекстът на настоящата бесѣда.
- Процесът е това нѣщо, което има свое отдѣлно виртуално адресно пространство.
- Процеситѣ, работещи едноврѣменно, се конкурират един друг за ресурситѣ на компютърът.
- Обаче процеситѣ сѫ изолирани един от друг в оперативната памет.
- Когато CPU-то прѣвключва от един процес на друг, CPU-то прѣвключва от едно виртуално адресно пространство на друго.
- Всѣ̋ка сесия се прѣдставя със своя̌т базов процес.
- Когато потрѣбителя̌т отвори сесия, за нея̨ се пуска процес - базов процес за сесията.
- За изпълнението на разни приложения в рамкитѣ на сесията, този базов процес пуска други процеси.
- Игнорирайки детайли, базовия̌т процес на сесия можете да си го мислите като интерпретатор на команди или като manager на екранът.
- Нишкитѣ (threads).
(.. advanced topic .. за напрѣдна̨ли ..)
- Думата нишка идва като съкращение на изразът нишка на изпълнение (execution thread).
- Нишкитѣ сѫ тѣзи, които се конкурират за "вниманието" на CPU-то.
- Понѣ̋кога сложни програми се нуђая̨т от нѣ̋колко нишки, които се изпълняват едноврѣменно на CPU-то.
- Ако двѣ нишки сѫ част от един и сѫщ процес, то тѣ работя̨т в едно и сѫщо виртуално адресно пространство.
- Процесът може да си го мислите като нишка, но не каква да е, а нишка със собствено виртуално адресно пространство.
- Един процес може да пусне друг процес - друг отдѣлен процес с отдѣлно виртуално адресно пространство.
- Но сѫщо така, един процес може да пусне друга нишка във своето виртуално адресно пространство.
- Новата нишка ще е част от процесът, който я̨ е пусна̨л.
- Тя сѫщо така може да пусне друга нишка в сѫщото виртуално адресно пространство, тоест друга нишка към сѫщия̌т процес.
- Нишкитѣ, принадлѣжащи към един и сѫщ процес, не сѫ изолирани една от друга, понеже ползват общо виртуално адресно пространство.
- Забѣлѣжка. Коректното взаимодѣйствие међу нишкитѣ в един процес изисква специални умѣния у програмистът.
- Владѣенето на multi-threading-ът (много-нишковото програмиране) слѣдва изрично да се обяви в CV-то.
- Ако работата изисква multi-threading, това умѣние се провѣрява на интервютата за работа.
- Disclaimer. Разпрѣдѣлението на работата върху много компютри, разположени близо или далеч един от друг, е отвѫд прѣдмѣтът на бесѣдата.
- (.. скрий ги процеситѣ и нишкитѣ ..) (.. скрий го това по срѣдата на швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Едно врѣме - при IBM/System/360/370, при пакетната обработка и прѣди системата Unix - тѣзи понятия не бѣ̋ха̨ добрѣ опрѣдѣлени.
- ◄► (.. скрий го това по срѣдата ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ шестата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ►► Нѣщо като заключение (.. покажи го заключението ..) (.. разгъна̨то ..)
-
▼▼
Нѣщо като заключение
(.. скрий го ..)
(.. свий го ..)
(.. разгъни го ..)
- ◄► Като заключение: За какво служи виртуалната памет.
- ►► Физическото адресно пространство да е по-голѣ̋мо от виртуалното (.. покажи ..)
-
▼▼
Физическото адресно пространство да е по-голѣ̋мо от виртуалното
(.. скрий ..)
- Такъв е случая̌т при 16-битовитѣ компютри.
- При тѣ̋х виртуалното адресно пространство е твърдѣ малко - само 64 К байта.
- Динамичната прѣадресация към физически адреси може да предостави достѫп до оперативна памет с по-голѣ̋м размѣр.
- В тази бесѣда вече бѣ разгледано MMU-то на PDP-11.
- Тука трѣ̋бва да спомена̨ Intel 8086/8088 - процесоритѣ, използвани в първитѣ персонални компютри на IBM.
- За разлика от PDP-11, MMU-то при 8086/8088 не си поставя други цѣли освѣн разширението на физическото адресно пространство.
- Много-потрѣбителска работа не се осигурява.
- (.. скрий го голѣ̋мото физическо адресно пространство ..) (.. скрий го заключението към швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Голѣ̋мо виртуално адресно пространство (.. покажи ..)
-
▼▼
Голѣ̋мо виртуално адресно пространство
(.. скрий ..)
- Обърнѣте внимание на двѣ ключови думи: голѣ̋мо и виртуално.
- Голѣ̋мото адресно пространство е виртуално.
- Да, то може да е виртуална памет с огромен размѣр.
- Може да събере данни за обработка, много повече от прѣди.
- Прѣди динамичната прѣадресация и MMU-тата толкова данни не можѣха̨ да се побера̨т в оперативната памет.
- Програмистът трѣ̋бваше да се погрижи да ги организира даннитѣ в дисков файл.
- Сега на програмистът ще му е по-лесно. Ще разположи даннитѣ във виртуалната памет и тѣ "наглед" постоянно ще сѫ му под рѫка.
- Обаче това е само улеснение за програмитѣ и за програмиститѣ.
- Природата не може да бѫде излъгана.
- Системния̌т софту̌ер с помощта на MMU-то ще моделира голѣ̋мата виртуална памет върху дискът.
- Ще го прави скрито от програмистът, който нѣ̋ма да има грижата.
- Виртуално адресно пространство е голѣ̋мо.
- Да, то може да е виртуална памет с огромен размѣр.
- Програмата може да е толкова голѣ̋ма, че прѣди динамичната прѣадресация и MMU-тата да не е можѣла да се побере в оперативната памет.
- Програмиститѣ сѫ раздѣляли голѣмитѣ програми на припокриващи се сегменти.
- Върнѣте се да прочетете този подраздѣл.
- Сега програмата вѣроятно ще се събере в голѣ̋мата виртуална памет и програмистът нѣ̋ма да има грижата да я̨ сегментира.
- Обаче това е само улеснение за програмиститѣ.
- Природата не може да бѫде излъгана.
- Системния̌т софту̌ер с помощта на MMU-то ще моделира голѣ̋мата виртуална памет върху дискът.
- Вмѣсто прѣзаређане на програмни сегменти, опрѣдѣлени от програмистът, ще се случва автоматично прѣзаређане на виртуални сраници.
- Всѣки процес си има свое виртуално адресно пространство, и то е виртуално.
- Процесът работи не с реални физически адреси, а с виртуални адреси, които подлѣжа̨т на автоматично динамично прѣобразуване в реални физически адреси от MMU-то.
- Прѣди, без динамична прѣадресация, линкерът трѣ̋бва да настрои произвеђаната от него изпълнима програма (executable) към адресът на раздѣлът в оперативната памет, в който раздѣл executable-ът ще се пусне да се изпълнява.
- Сега, линкерът може да настрои произвеђания̌т от него executable към уговорен фиксиран адрес (обикновено над мѣ̋стото, задѣлено за stack).
- Този прѣдварително уговорен адрес е виртуален.
- Той е адрес във виртуалното адресно пространство за този процес.
- На какъв физически адрес отговаря - за това не трѣ̋бва да се грижим.
- Това ще стане ясно едва при пускане на програмата.
- При различни пускания на програмата физическия̌т адрес може да е различен.
- Фиксиран е виртуалния̌т адрес.
- (.. скрий го голѣ̋мото виртуално адресно пространство ..) (.. скрий го заключението към швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Изолация на процеситѣ един от друг (.. покажи ..)
-
▼▼
Изолация на процеситѣ един от друг
(.. скрий ..)
- Всѣки процес работи във свое виртуално адресно пространство и така е изолиран от другитѣ процеси.
- Бъгава или злонамѣрена потрѣбителска програма не може да пише из паметта на другитѣ процеси или на операционната система, защото нѣ̋ма достѫп.
- Процесът виђа само това, което му се показва в неговото виртуално адресно пространство.
- Към всѣ̋ка страница от виртуалното адресно пространство на процесът достѫпът може да е разрѣшен, да е напълно забранен, или да е само за четене.
- Процесът нѣ̋ма възможност да наврѣди на другитѣ.
- Да не може да се наврѣди на другитѣ - това е основното в много-потрѣбителската работа на компютърът.
- (.. скрий я̨ изолацията на процеситѣ ..) (.. скрий го заключението към швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- Всѣки процес работи във свое виртуално адресно пространство и така е изолиран от другитѣ процеси.
- ►► Динамични библиотеки (.. покажи ги ..)
-
▼▼
Динамични библиотеки
(.. скрий ги ..)
- Върнѣте се да прочетете този подраздѣл.
- Динамични библиотеки. Цѣлия̌т израз е библиотеки с динамично свързване.
- DLLs: Dynamically Linked Libraries.
- Наричани още: shared objects, shared libraries или раздѣляеми библиотеки.
- За функционалността на DLL-итѣ допринася не само динамичната прѣадресация (MMU-тата), но и възможността, която съврѣменнитѣ компютърни архитектури прѣдоставят, компилаторитѣ да генерират само позиционно независим код (PIC: position independent code).
- Една динамична библиотека и един executable си приличат много.
- Резултат сѫ от работата на линкерът.
- Съдържат или код (машинни инструкции - код, изпълним от CPU-то), или данни.
- Мога̨т да се заређат в оперативната памет за изпълнение.
- Обаче от executable може да се стартира процес, а от динамична библиотека не може.
- Един executable обявява на операционната система от коя входна точка да се стартира процесът.
- Една динамична библиотека нѣ̋ма специална входна точка.
- Обръщенията към съдържащитѣ се в нея̨ подпрограми и данни трѣ̋бва да дойда̨т от други програми, а не от операционната система.
- Тѣзи обръщения се свързват и настройват по врѣме на заређането на динамичната библиотека във виртуалното адресно пространство на процесът.
- Когато една динамична библиотека се заређа във виртуалното адресно пространство на процес, нуђаещ се от нея̨, намира ӥ се там мѣ̋сто.
- Ако сѫщата динамична библиотека се зареди във виртуалното адресно пространство на друг процес, тя може да бѫде намѣстена на друг виртуален адрес.
- Двата процеса използват едно и сѫщо копие на динамичната библиотека във физическата оперативна памет.
- Затова е важно подпрограмитѣ от динамичната библиотека да сѫ в позиционно независим код.
- (.. скрий ги динамичнитѣ библиотеки ..) (.. скрий го заключението към швстата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ►► Виртуални машини (.. покажи ..)
-
▼▼
Виртуални машини
(.. скрий ..)
- Думата виртуален означава симулиран или моделиран, а виртуализация - симулация или моделиране.
- А думата машина означава компютър, разбира се.
- За системата VM/370, която прѣдоставя гостуващи виртуални машини с архитектура, подобна на архитектурата на компютърът-домакин, стана̨ дума тука.
- Идеята за виртуализация на оперативната памет - идеята за виртуална памет, се прѣнася към цѣлия̌т компютър - към цѣ̋лата машина.
- Появява се идеята за виртуална машина.
- На пръв поглед - отсам хоризонтът, трѣ̋бва да се спомена̨т
виртуалнитѣ машини, които симулират-моделират реални машини.
- Реална машина - означава машина, сѫществуваща в харду̌ерно изпълнение.
- Слѣд системата VM/370, вече има много приложен софту̌ер за виртуални машини.
- Има даже софту̌ер, който симулира машина със съвсѣм друга архитектура.
- Напримѣр, виртуална машина с архитектура VAX, работеща на машина-домакин, която не е VAX.
- Виртуалнитѣ машини имат широко приложение
- както за тестване на програми, когато цѣлевия̌т харду̌ер не е наличен,
- така и за мултиплициране, когато един нов мощен модел идва да замѣни стари машини в нѣ̋колко обработки.
- А оттатък хоризонтът, на слѣдващо ниво на абстракция, сѫ
виртуалнитѣ машини, сѫществуващи изцѣ̋ло като софту̌ерна идея, без връзка в никакъв харду̌ер.
(.. Това излиза от темата на настоящата бесѣда ..)
- На първо мѣ̋сто слѣдва да се спомене виртуалната машина на езикът Java - JVM: Java Virtual Machine.
- Тя изпълнява програми на езикът Java.
- Програмитѣ на езикът Java се изпълняват на такава машина.
- За всѣки от езицитѣ за програмиране, които не се компилират, а се интерпретират, може да се изгради съотвѣтна идея за виртуална машина.
- Освѣн Java, такива езици сѫ PERL, Python, PHP, LISP и други.
- На първо мѣ̋сто слѣдва да се спомене виртуалната машина на езикът Java - JVM: Java Virtual Machine.
- (.. скрий ги виртуалнитѣ машини ..) (.. скрий го заключението към шестата бесѣда ..) (.. свий го ..) (.. разгъни го ..) .. към началото ..
- ◄► (.. скрий го заключението ..) (.. свий го ..) (.. разгъни го ..) (.. скрий я̨ шестата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
- ◄► (.. скрий я̨ шестата бесѣда за динамичната прѣадресация ..) (.. свий я̨ ..) (.. посвий или поразгъни ..) (.. разгъни я̨ ..) .. към началото ..
►► 8. [Draft] Хуманната аритметика на компютър (.. покажи я̨ седмата бесѣда ..) (.. разгъна̨то ..) .. към началото ..
- Колкото по̀ остарѣ̋вам, толкова по̀ се вдѣтинѣ̋вам.
- С това ще се упражнявам на JavaScript.
- Ще уча̨ компютърът на сѫщата аритметика, както дѣцата в началното училище.
- May appear in the future: Не е написано още. Я̀ доживѣя̨ да го напиша̨, я̀ не.
▼▼ 8. [Draft] Хуманната аритметика на компютър (.. скрий я̨ седмата бесѣда ..) (.. свий я̨ ..) (.. разгъни я̨ ..) .. към началото ..
-
In development: Не е написано още.
- ◄►
- ◄►
- ◄► (.. скрий я̨ седмата бесѣда за хуманната аритметика ..) (.. свий я̨ ..) (.. посвий или поразгъни ..) (.. разгъни я̨ ..) .. към началото ..
►► 9. Прѣпратки (references) (.. покажи ги ..) .. към началото ..
▼▼ 9. Прѣпратки (references) (.. скрий ги ..)
- christotamarin.blog: Житейска програма
- christotamarin.blog: XT Keyboard Layouts Reference: Клавиатури с разширена кирилица
- christotamarin.blog: Virtual Keyboard and some other tools
- christotamarin.blog: Принципи на моитѣ възгледи за мина̨лото
►► 10. Коментари, въпроси и отговори (comments, Q&As) (.. покажи ги коментаритѣ ..) (.. разгъна̨ти ..) .. към началото ..
▼▼ 10. Коментари, въпроси и отговори (comments, Q&As) (.. скрий ги ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
Ако има въпрос или коментар, на който трѣ̋бва да отговоря̨, ще прѣпиша̨ въпросът или коментарът тука и ще отговоря̨ тука.
- ►► ::christo.tamarin, 2023-04-13 20:34:: The history of IT at a glance (.. покажи тука ..) (.. разгъна̨то ..) (.. покажи във facebook: .. там .. или там ..) .. към началото ..
-
▼▼
::christo.tamarin, 2023-04-13 20:34:: The history of IT at a glance
(.. скрий ..)
(.. свий ..)
(.. разгъни ..)
(.. покажи във facebook: ..
там .. или
там ..)
.. към началото ..
- ◄► Историята на информационнитѣ технологии накратко Този текст не е завършен. Я̀ го завърша̨, я̀ не.
- ►► Програмисти (.. покажи ..)
-
▼▼
Програмисти
(.. скрий ..)
- Смѣ̋та се, че първата програмистка е била Ада Лъвлейс (Ada Lovelace), дъщеря на поетът Байрон и сътрудничка на Чарлз Бабиџ (Charles Babbage).
- Обаче прѣз животът си изпълнение на своя програма тя не е виђала, понеже компютърът на Чарлз Бабиџ не е влѣ̋зъл в дѣйствие.
- Реално първитѣ на свѣтът програмисти сѫ настройчицитѣ на жакардовитѣ тъкачни станове.
- ►► Бази данни (.. покажи ..)
-
▼▼
Бази данни
(.. скрий ..)
- Архиви и библиотеки сѫ първитѣ бази данни.
- Слѣдващия̌т сѫществен момент в развитието е холеритовата техника на фирмата IBM от края̌т на 19-ти и прѣз 20-ти вѣк.
- Бази данни в компютърната ера.
- Първо ще спомена̨ базитѣ данни по йерархичния̌т или по мрѣжовия̌т модел.
- Коболиститѣ (програмиститѣ на COBOL) бѣ̋ха̨ наложили езикът CODASYL.
- Нѣ̋ма май такива нѣща вече.
- Сега всѣ̋ка файлова система може да се смѣ̋та за йерархична база данни.
- Наложи се релационния̌т модел на базитѣ данни и езикът SQL.
- ►► Калкулатори (.. покажи ..)
-
▼▼
Калкулатори
(.. скрий ..)
- Смѣтала̀.
- Едно врѣме във всѣ̋ка класна стая в началното училище (в отдѣленията) имаше голѣ̋мо смѣтало,
- а всѣки второкласник имаше малко смѣтало като учебно пособие.
- Имаше и уроци за работа с такива смѣтала̀.
- Въпрѣки това българското образование се проваляше при усвояването на умѣнията за работа със смѣталата.
- Магазинеритѣ в България смѣ̋таха̨ с химически молив върху амбалажна хартия.
- Амбалажната хартия, с която магазинерът ще ти увие буцата сирене, обикновено съдържаше смѣтката на прѣдишния̌т клиент.
- Не така бѣше в Русия.
- Когато прѣз 80-тѣ ходѣх в командировка в Москва, тамошнитѣ магазинери работѣха̨ срѫчно със смѣтала̀.
- Логаритмична линийка и логаритмични таблици.
- Едно врѣме в гимназиитѣ се учѣхме да смѣ̋таме с логаритмична линийка и логаритмични таблици.
- Тогава това бѣше необходимо за инженерното дѣло.
- На срѣдношколскитѣ олимпиади по математика и физика разрѣшаваха̨ да си носим логаритмични линийки.
- Сега всичко това е out-of-date, остарѣ̋ло, измѣстено от компютритѣ и електроннитѣ калкулатори.
- Механични калкулатори.
- При такъв калкулатор се натискат клавиши и се върти рѫчка.
- Често сѫ снабдени и със звънчета.
- В много филми за старото американско врѣме може да се види, че във всѣки американски магазин или бар има такъв калкулатор като касов апарат.
- Баща ми бѣше счетоводител и имаше на разположение такъв калкулатор.
- Едно завъртане на рѫчката напрѣд - събиране.
- Завъртане назад - извађане.
- Пет завъртания напрѣд - умножаване на пет.
- Имаше брояч на завъртанията.
- Ако искаш да умножиш по пет, но си се засилил и си завъртѣ̋л рѫчката шест пѫти, завърташ веднѫж назад.
- Имаше и начин за извършване на дѣление, но в нашето село никой не знаѣше как става това.
- Електро-механични калкулатори.
- За разлика от чисто механичнитѣ, тѣзи си нѣ̋мат рѫчка, а само клавиши.
- Имат си и електромоторче[та] за въртене на регистритѣ.
- Изполвал съм такъв - нѣмско производство. Много удобен бѣше за работа.
- Електронни калкулатори.
- Тука има вече българска слѣда, даже двѣ такива слѣди.
- Иначе в областта на ΙΤ друга българска слѣда има само при компютърнитѣ вируси.
- Но за тѣ̋х изобщо нѣ̋ма да пиша̨, че ме е срам.
- Първата българска слѣда не е съвсѣм българска, ама все пак.
- На Џон Атанасов баща му още като дѣте роднини го отвели в Щатитѣ.
- Там той се изучил за инженер и се оженил за американка от ирландски произход, учителка по математика.
- А самия̌т Џон бил професор по физика в щатския̌т университет на Айова.
- По врѣме на WW2 той рѣшил да създаде калкулатор за насочване на артилерийския̌т огън, изграден върху материалната база на радиотехниката, т.е. електронен калкулатор.
- Нарѣчен бил ABC - Atanassoff-Berry Computer (Berry бил сътрудник на Atanassoff).
- Войната свършила и работата по калкулаторът била зарѣ̋зана, прѣди той да бѫде завършен.
- Прѣз слѣдващитѣ години във връзка със сѫдебен спор за патенти адвокатитѣ на едната страна по дѣлото изровили информация за ABC.
- Тази информация достигна̨ла до Благовѣст Сендов, слѣд което на случая̌т била придадена гласност и в България, и в свѣтът.
- При ABC за пръв пѫт електроника била използвана за IT.
- Но все пак, това ABC не е било компютър, защото ABC не е бил програмируем.
- ABC е бил калкулатор със специално прѣдназначение.
- Втората българска слѣда в електроннитѣ калкулатори.
- Прохођащата българска електроника прѣз 60-тѣ била на свѣтовно ниво при настолнитѣ електронни калкулатори.
- Построени били заводи в София и Силистра.
- Марката ЕЛКА стана̨ла нарицателно за електронен калкулатор в българския̌т език.
- Разбира се, българската електроника бързо изостана̨ла, защото не можѣла да слѣдва прогресът към калкулаторитѣ џобен формат.
- Тука има вече българска слѣда, даже двѣ такива слѣди.
- (.. скрий ги смѣталата и калкулаторитѣ ..)
- Смѣтала̀.
- ►► Електроника (.. покажи ..)
-
▼▼
Електроника
(.. скрий ..)
- Електрониката е слѣдваща фаза в развитието на радиотехниката, приложение на радио-техниката не само в радиото.
- Радио-техниката (електрониката) се обособила от електро-техниката слѣд изобрѣтяването на електронната лампа (1904).
- Технологичния̌т прогрес е замѣнил електроннитѣ лампи с транзистори (слѣд 1954), основани на полу-проводници (силиций, германий, ..).
- За разлика от електроннитѣ лампи, при полу-проводницитѣ имало мегдан за миниатюризация.
- Появили се интегрални схеми - LSI (Large Scale Integration), послѣ X-LSI (Extra-Large Scale Integration), послѣ XX-LSI, ..
- Сега нано-технологии и XXXX..XX-LSI.
- ►► Компютри (.. покажи ..)
-
▼▼
Компютри
(.. скрий ..)
- Конрад Цузе.
- Конрад Цузе.
- ◄► (.. скрий го коментарът ..) (.. свий го ..) (.. разгъни го ..) (.. скрий ги коментаритѣ ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
- ►► ::author.unknown, 2023-10-25 09:45:: Историческа справка за нашето поколѣние (.. покажи я̨ тука ..) (.. покажи я̨ във facebook: .. Нѣжна е нощта .. България ..) .. към началото ..
-
▼▼
::author.unknown, 2023-10-25 09:45:: Историческа справка за нашето поколѣние
(.. скрий я̨ ..)
(.. покажи я̨ във facebook: ..
Нѣжна е нощта ..
България ..)
.. към началото ..
- Има хора, които сѫ родени прѣз 50-тѣ и 60-тѣ години.
Отгледани сѫ прѣз 60-тѣ години.
Учили сѫ прѣз 70-тѣ години.
Тѣ сѫ се женили прѣз 80-тѣ години.
Работили сѫ прѣз 80-тѣ и 90-тѣ,
много работя̨т и днес ... - Тѣ си промѣниха̨ мирогледът прѣз 90-тѣ.
«Виђаха̨ свѣтлината» прѣз 2000-та.
Бѣ̋ха̨ изненадани прѣз 2010.
И неотказали се прѣз 2020! - Прѣживѣли почти
седем различни десетилѣтия...
два различни вѣка...
двѣ различни хилядолѣтия... - От телефон на дълги разстояния до видео-разговори навсѣ̋къдѣ по свѣтът,
от филмови ленти и slide-show-та до Youtube,
от винилови плочи до online-музика,
от рѫкописни писма до email, WhatsApp и социални мрѣжи.
От слушане на мачове по радиото, гледане на черно-бѣ̋ла телевизия и след това телевизия с висока раздѣлителна способност.
Тѣ ходѣха̨ във видеотеката, а сега гледат Netflix.
Знаѣха̨ как да отпечатат фотокарта,
имаха̨ първитѣ компютри, перфокарти, флопи дискове,
а сега имат гигабайти и терабайти на мобилни телефони или iPad.
Прѣз цѣ̋лото си дѣтство тѣ нося̨т кѫси панталони, слѣд това дълги панталони, оксфордки, бермуди или мини поли, макси поли, клинове, харем и др.
Обуваха̨ филцове, караха̨ ролери, триколки и велосипеди, мотопеди, бензинови или дизелови коли, а сега карат хибриди или 100% електрически скутери, велосипеди, скутери и коли.
Те избѣгна̨ха̨ дѣтски паралич, менингит, едра шарка, грип H1N1 и западнонилска треска. - Да! Такива хора сѫ мина̨ли прѣз много, но какъв прѣкрасен и интересен живот имат!
- Това поколѣние спокойно може да се нарече «бивши пенсионери»,
които сѫ родени в онзи свѣ̋т на 50-тѣ и 60-тѣ години,
имали сѫ аналогово дѣтство
и дигитален живот на зрѣ̋ла възраст.
Тѣ сѫ един вид «Абракадабра». В буквалния̌т смисъл на думата. - Това поколѣние е живѣ̋ло и прѣживѣ̋ло повече от всѣ̋ко друго в историята на човѣчеството във всѣ̋ко измѣрение на животът.
- Именно това поколѣние се адаптира към всѣ̋какви промѣни!
- 👏 Аплодисменти 👏!
За всички прѣдставители на особеното поколѣние,
което бѣше и си остава уникално, независмо от всичко!
Здраве, Радост, Късмет, Доброта и Щастие!💛🍀💜 - ◄►
::christo.tamarin, 2023-10-25 11:05::
два различни вѣка...
Кое е нашето хилядолѣтие?
двѣ различни хилядолѣтия...- Дали това, прѣз което европейцитѣ сѫ открили Америка?
- Или това, прѣз което американцитѣ ще заселя̨т Луната?
- (.. скрий я̨ историческата справка за нашето поколѣние ..) (.. скрий ги коментаритѣ ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
- Има хора, които сѫ родени прѣз 50-тѣ и 60-тѣ години.
- ►► ::christo.tamarin, 2024-04-01 15:34:: Не е била Brigitte Bardot (.. покажи го коментарът ..) .. към началото ..
-
▼▼
::author.unknown, 2023-10-25 09:45:: Не е била Brigitte Bardot
(.. скрий го коментарът ..)
.. към началото ..
- В третата си бесѣда разказах как прѣз лѣ̋тото на 1977, докато карах стаж в Търново, избродирах картинка за тракащ принтер.
- Искаше ми се Brigitte Bardot да е позирала на художникът.
- Но се оказа, че това нѣ̋ма как да е възможно.
- Литографията е рисувана около 1935 от съвѣтския̌т художник Е.А.Кибрик.
- (.. скрий го коментарът ..) (.. скрий ги коментаритѣ ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
- ◄► (.. скрий ги коментаритѣ ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
(.. pokaži vsičko ..) (.. svij&skrij vsičko ..) .. to the bottom ..
Za kompÿtrite polinomialno
- 1. Preambÿl: obq razdel
- 2. O, minulo burzozabravimo: 5-te dypki na perfolentata
- 3. Za kompÿtrite polinomialno
- 4. Broderia na trakaq printer
- 5. EGN-to otvutre
- 6. Diskovata pamet na System/360
- 7. Virtyalnata pamet na kompÿtrite
- 8. [Draft] Xymannata aritmetika na kompÿtur
- 9. Prepratki (references)
- 10. Komentari, vuprosi i otgovori (comments, Q&As)
►► 1. Preambÿl: obq razdel (.. pokaži go preambÿlut ..) (.. razgunuto ..)
- Sega sum pensioner.
- Vse̋ka ot tezi besedi e nezavisima ot drygite i može da se čete otdelno.
▼▼ 1. Preambÿl: obq razdel (.. skrij go preambÿlut ..) (.. svij go ..) (.. razguni go ..)
- ►► Predgovor na preambÿlut (.. pokaži go predgovorut na preambÿlut ..)
-
▼▼
Predgovor na preambÿlut
(.. skrij go predgovorut na preambÿlut ..)
- Prez 2018 se pensionirax, sled kato pridobix iziskvaqite se staž i vuzrast za tova.
- Pensionirax se sled 40 godini rabota kato kompÿturen programist i softweren inžener.
- V suqnost be̋x mnogo dobur kodirovčik.
- Mnogo dobre sum se razbiral s kompÿtrite.
- Vlizal sum im pod tenekiite - pri bitovete.
- Zaqoto te samo ot bitove razbirat.
- V tazi pyblikacia qe se pomuču da suberu spomeni ot dalečnoto minulo.
- Na durti godini čovek se vdetine̋va.
- Natam sum se zaputil i az.
- Tova tyka me vruqa kum mladežkite mi godini.
- Kato vzemut da me nale̋gat i detski spomeni, qe stane krajno vreme da spru da pišu.
- No ako po spomeni zaxvanu ne̋koä tema, qe prosledü i sledvaqoto ï razvitie.
- Toest, tova ne̋ma da su samo mladežki spomeni.
- A za zanimavka i za gimnastika na ymut, ne iskam da spiram da pišu softwer.
- Ypražnävam se na JavaScript.
- Taka če qe ima mnogo softwer vtukàn v tazi pyblikacia.
- There will be much software behind.
- .. skrij go predgovorut na preambÿlut .. (.. skrij go preambÿlut ..) (.. svij go ..) (.. razguni go ..)
- ►► Vse̋ka beseda e nezavisima ot ostanulite (.. pokaži ..)
-
▼▼
Vse̋ka beseda e nezavisima ot ostanulite
(.. skrij ..)
- Vse̋ka beseda e ot tozi sbornik s besedi e nezavisima ot ostanulite
- i može da se čete otdelno.
- Vse̋ka edna e predizvikana ot ne̋kakuv moj dalečen spomen.
- Obiknoveno se prosledäva i razvitieto na problemut prez sledvaqite godini.
- Vse̋ka ot besedite e svurzana po ne̋kakuv način s kompÿtrite.
- Vse pak v detajli ne sum navlizal.
- Ot čitatelite ne se iziskvat znania v oblastta na kompÿtrite ili softwerut.
- V ne̋koi ot besedite e vtukàn softwer.
- Toj demonstrira neqo.
- Napisan e na JavaScript.
- Može da se testva.
- .. skrij ü nezavisimostta na besedite .. (.. skrij go preambÿlut ..) (.. svij go ..) (.. razguni go ..)
- ◄► Zasega ne vsički planirani besedi su zavuršeni.
- No vsički planirani besedi si imat veče zaglavia i se poävävat v tablicata na suduržanieto.
- ◄► (.. skrij go preambÿlut ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
►► 2. O, minulo burzozabravimo: 5-te dypki na perfolentata (.. pokaži ü purvata beseda ..) (.. razgunuto ..) .. kum načaloto ..
- Po spomenite mi ot 9-ti klas.
- Sredno obrazovanie sum zavuršil s kvalifikacia "izčislitel-kodirovčik".
- Kodiraneto na myzikata - myzikalnite noti - se yčeše edno vreme v 3-to otdelenie.
- A mnogo po-važnoto kodirane za kompÿtrite maj samo eksperti go znaüt. ::2021-11-05 13:10::
▼▼ 2. O, minulo burzozabravimo: 5-te dypki na perfolentata (.. skrij ü purvata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
::2021-11-05 13:10::- ►► Predgovor, kojto tre̋bva da se pročete purvo (.. pokaži go predgovorut na purvata beseda ..)
-
▼▼ Predgovor, kojto tre̋bva da se pročete purvo
(.. skrij go predgovorut na purvata beseda ..)
- Minuloto biva minulo nezapomneno i minulo burzozabravimo.
- Progresut na čoveškoto obqestvo se dulži samo na napredukut na texnologiite.
- Revolÿciite ne mogut da vodüt do progres.
- Revolÿciite mogut da pričinüt regres v obqestvoto, ako se prevurnut v spiračka na texnologičnoto razvitie.
- A inače revolÿciite su naj-obiknoveni aktove na nasilie, kakvito čovečestvoto poznava otkraj vreme:
- bratoybijstva, grabeži, vojni, masovi ybijstva.
- Do napreduk te na vodüt.
- Pensioniral sum se sled 40 godini staž v kompÿturnata indystria - kato kompÿturen programist i softweren inžener.
- I tozi tekst tyka e posveten na dalečnata istoria na kompÿturnata indystria,
- dalečnata - otpredi az da vle̋zu profesionalno v indystriata.
- Iska mi se da materializiram spomenite si:
- kakvo sum yčil v deveti klas v turnovskata gimnazia prez 1969.
- Da, v deveti klas yčexme za mašinnoto kodirane na Minsk-2.
- Ne̋kakvi obqi poznania su ni bili prepodavani v deseti klas - sxemi, algoritmi, kodirovki, notacii.
- A v edinadeseti klas yčixme ezikut za programirane ot visoko nivo Algol-60.
- V diplomata mi za sredno obrazovanie ima i ne̋kakva profesionalna kvalifikacia: izčislitel-kodirovčik.
- Našata paralelka 'D' zavuršvaxme kato izčisliteli-kodirovčici.
- Drygi paralelki zavuršvaxu kato avtomontöri, elektrotexnici, ..
- Naj zaviǧaxme na šoförite ot 'G'-paralelka - zavuršvaxu gimnazia s šoförska knižka.
- Prez životut si nikoga ne sum programiral na Minsk-2, nito za Minsk-22 ili Minsk-32.
- Nito puk sum viǧal kompilator ot Algol-60.
- No programi na Algol-60 sum pisal.
- Veroätno edinstvenite vxodno-izxodni ystrojstva na "drevnite" kompÿtri Minsk-2 su bili vxod i izxod na petputečkova perfolenta, zaimstvana ot telegrafut.
- Zatova v dvata razdela tyka davam obqi svedenia za:
- No da karame nared.
- Ideite na Charles Babbage i Ada Lovelace ot 19-ti vek su izprevarvaqi - vremeto na kompÿturnata texnika oqe ne bilo došlo.
- No dosta texnologični postiženia ot 19-ti vek i ot purvite desetiletia na 20-ti vek su doprinesli za razvitieto na kompÿturnite texnologii:
- žakardovite stanove
- telegrafut
- xoleritovata texnika na IBM
- avtomatičnite telefonni centrali
- i razbira se,
- radiotexnikata.
- Naprimer:
- Elementnata baza na suvremennite kompÿtri e trugnula ot radiotexnikata.
- Obače purviut programiryem kompÿtur na Konrad Zuse (1941) e bil postroen s elementi na telefoniata, na avtomatičnite telefonni centrali.
- Purvo pročetete za 7-bitovata sredà, 7-bitovata sredà, 7-bitovata sredà, 7-bitovata sredà, 7-bitovata sredà, 7-bitovata sredà, za 7-bitovata bariera i za preodolävaneto ï v načaloto na 21-vi vek.
- Tyka qe stane dyma za petbitovata kodirovka, standartizirana za petputečkovite perfolenti, izpolzvani v telegrafiata, no i v "drevnite" kompÿtri Minsk-2.
- .. skrij go predgovorut na purvata beseda .. (.. skrij go minuloto nezapomneno ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Kodirovkata na petputečkovite perfolenti (.. pokaži ü ..) (.. razgunuto ..) .. kum načaloto ..
-
▼▼ Kodirovkata na petputečkovite perfolenti
(.. skrij ü ..)
(.. svij ü ..)
(.. razguni ü ..)
- ►► Telegrafut (.. pokaži ..)
-
▼▼ Telegrafut
(.. skrij go ..)
- V tesen smisul telegrafiata predstavläva distancionno predavane na električeski impylsi.
- Važni su suputstvaqite ystrojstva.
- [A] Perforator s klaviatyra
- Ystrojstvo s klaviatyra, priličaqo na pišeqa mašina, koeto vmesto da otpečatva bykvite, cifrite, točkite i zapetajkite na xartia vuv vid, ydoben za čovek, dypči kodovete im na perfolenta.
- [B] Pišeqa mašina bez klaviatyra
- Čete ot perfolenta kodovete na bykvi, cifri, točki i zapetajki, i gi otpečatva vuv vid, ydoben za čovek.
- [C] Četec na perfolenta
- Čete kodove ot perfolenta i gi praqa po telegrafna linia do otdalečeno me̋sto ili puk gi podava na kompÿtur - toj da pravi kakvoto iska s te̋x.
- [D] Perforator bez klaviatyra
- Dypči na perfolenta ili impylsite, polyčeni po telegrafna linia ot otdalečeno me̋sto, ili kodovete, polyčeni ot kompÿtur.
- V samata telegrafia črez ystrojstvo A telegramata se otpečatva na perfolenta,
koäto se podava na ystrojstvo C, za da budut prateni kodovete do destinaciata,
kudeto ystrojstvo D dypči polyčenite signali na perfolenta,
koäto se podava na ystrojstvo B, za da bude tekstut otpečatan na xartia.
Taka polyčenata telegrama se vručva na polyčatelüt. - Tazi yslyga, koäto poqite predostaväxu, e ot 19-ti vek.
- V načaloto na 21-vi vek telegrafiata izleze ot ypotreba, zaqoto yslygata "elektronna poqa" na internet i yslygata SMS na GSM-komynikaciite ü zamestixu.
- Bulgarskite poqi spre̋xu da praqat telegrami prez 2005.
- Poslednata telegrama v svetut e bila pratena na 2013-07-14.
- Ystrojstvata, obslyžvaqi telegrafiata, su bili izpolzvani pri purvite kompÿtri, vklÿčitelno i pri Minsk-2, za koito qe stane dyma.
- Zabeležka_1: Veroätno vinugi e imalo xora, sposobni da četut kodirani perfolenti i da zapisvat na ruka ili da diktyvat polyčenite telegrami.
- Zabeležka_2: Razbira se, telegrafiata ot poslednite desetiletia e izpolzvala po-suvremenni elektronni ystrojstva s pamet.
- (.. skrij go telegrafut ..) (.. skrij ü kodirovkata na petputečkovite perfolenti ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Kodirovkata (.. pokaži ..)
-
▼▼ Kodirovkata
(.. skrij ü ..)
Podredba na tablicata:
- Dvata reda s desetični čisla predstavät perforiranite kodove v dve notacii: s mladšiut bit otgore (BigEndian) i s mladšiut bit otdoly (LittleEndian).
- Tablicata može da se pokaže s tri podredbi na kolonite:
- spored gornite bitove - te su naj-značimi: BigEndian
- spored dolnite bitove - te su naj-značimi: LittleEndian
- spored klaviatyrata: QWERTY
0 2 8 4 29 25 16 10 1 21 28 12 3 13 24 20 18 22 11 5 26 30 9 17 23 14 15 19 6 7 27 31 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 0 8 2 4 23 19 1 10 16 21 7 6 24 22 3 5 9 13 26 20 11 15 18 17 29 14 30 25 12 28 27 31 NUL CR LF SP Q W E R T Y U I O P A S D F G H J K L Z X C V B N M ESC DEL NUL CR LF SP 0 1 2 3 4 5 6 7 8 9 - ' WRU ! & # BEL ( ) + / : = ? , . ESC DEL NUL CR LF SP Ä V E R T Ы Y I O P A S D F G X J K L Z J C Ž B N M ESC DEL NUL CR LF SP 0 1 2 3 4 5 6 7 8 9 - ' WRU Э Š Q Ÿ ( ) + / : = ? , . ESC DEL - Ima dva registura:
- osnoven registur - registur na bykvite
- alternativen registur - registur na formite - cifri, skobi, zapetai, ..
- Ima i dva režima:
- latinica
- kirilica
- Samo v stranite s pismenost na kirilica suqestvyva režim kirilica.
- Povečeto strani se zadovolävat samo s režim latinica.
- Četirite reda v tablicata su kakto sledva:
- osnoven registur - režim latinica
- alternativen registur - režim latinica
- osnoven registur - režim kirilica
- alternativen registur - režim kirilica
- Kontrolnite znaci NUL, LF, SP, CR, ESC, DEL se kodirat ednakvo v dvata registura i dvata režima.
- Ot osnoven kum alternativen registur se preminava sus ESC.
- A obratno ot alternativen kum osnoven registur se preminava sus DEL.
- Makar kodirovkata da e 5-bitova, dvata registura - osnoven i alternativen - pozvolävat 52 znaka, osven 6-te kontrolni znaka.
- Ako suqestvyva režim kirilica, to sled NUL se vliza v tozi režim, a sled DEL se preminava v režim latinica - osnoven registur.
- NUL označava neprodypčena perfolenta.
- Ako režim kirilica ne suqestvyva, NUL ne može da se sreqa vutre v suobqenie.
- Inače, ako režim kirilica suqestvyva, to tova e načalniut režim. Povečeto telegrami ne nalagat prevklÿčvane kum režim latinica, no ako se naloži, tova stava s DEL.
- (.. skrij ü petbitovata kodirovkata ..) (.. skrij go podrazdelut ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Perfolenti s poveče ot pet putečki (.. pokaži ..)
-
▼▼ Perfolenti s poveče ot pet putečki
(.. skrij ..)
- Petputečkovata perfolenta s kodirovkata, pokazana po-gore, opredelä petbitovata bariera.
Kompÿtrite Minsk-2, za koito qe stane dyma po-doly, su bili ystanoveni na tazi bariera.
Az ne sum rabotil s kompÿtri na petbitovata bariera, nito s petputečkovi perfolenti. - Kogato az započnux rabota, perfolentite, izpolzvani ot indystriata, be̋xu osemputečkovi, a kompÿtrite be̋xu ystanoveni na sedembitovata bariera, v 7-bitova sredà.
- Edno vreme - v purvite moi godini v indystriata -
perfolentite se izpolzvaxu, za da se zareǧat testovi programi, ili - re̋dko - pri načalno zareǧane (boot).
- [Q]Vupros: A sega kak se zareǧat testovi programi na poly-ymre̋l xardwer?
- [A]Otgovor: Sega celiut čip se izxvurlä i se zamenä s nov.
- Edno vreme lÿbimata drexa na čovek v tečenie na godinite se sdobivala s krupki.
- Sega čovek si izxvurlä skusanata drexa, kolkoto i da my e lÿbima, i si kypyva nova.
- Tova e texnologičen progres.
- Novoto proizvodstvo e dostatučno evtino i ne si stryva staroto da se remontira.
- Sega ima realna vuzmožnost xartiata da se izxvurli ot informacionnite texnologii.
- Plastika, implantirani čipove - kakvo my tre̋bva na čovek ..
- Daže lÿbovni pisma na xartia veče ne̋ma.
- Lično az imam bogat opit s perfokarti, a ne tolkova s perfolenti.
- No perfokartite su izvun obxvatut na tozi razkaz.
- (.. skrij gi 8-putečkovite perfolenti ..) (.. skrij ü kodirovkata na petputečkovite perfolenti ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- Petputečkovata perfolenta s kodirovkata, pokazana po-gore, opredelä petbitovata bariera.
- ◄► (.. skrij ü kodirovkata na petputečkovite perfolenti ..) (.. svij ü ..) (.. razguni ü ..) (.. skrij go minuloto nezapomneno ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Kompÿtrite Minsk-2 - v dalečnoto minulo na suvetskata indystria (.. pokaži ..) (.. razgunuto ..) .. kum načaloto ..
-
▼▼ Kompÿtrite Minsk-2 - v dalečnoto minulo na suvetskata indystria
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
- ►► I kakvo vse pak e stanulo s kompÿtrite Minsk-2 (.. pokaži ..)
-
▼▼ I kakvo vse pak e stanulo s kompÿtrite Minsk-2
(.. skrij ..)
- Prez suqata godina, kogato v deveti klas sum yčil kodiraneto na Minsk-2, zavodut v grad Minsk bil spre̋l proizvodstvoto na tezi kompÿtri.
- Sledvaqite modeli Minsk-22 i Minsk-32 done̋kude su bili programno suvmestimi s Minsk-2.
- Ne̋kolko kompÿtura Minsk-32 su bili instalirani i eksploatirani v Bulgaria.
- Pri Minsk-32 za priložno programirane se izpolzvaše naj-veče ezikut COBOL.
- Osven v grad Minsk, razvojni centrove za kompÿturna texnika v bivšiut Suvetski suÿz imaše v oqe ne̋kolko grada. Na purvo me̋sto v Moskva i v Kiev. No Bulgaria e bila klient na zavodut v Minsk.
- Kakto pri vsičko ostanulo, i pri kompÿtrite suvetskoto proizvodstvo otstupvaše na zapadnoto - i po kačestvo, i po cena, i po vsičko.
- V sredata na 60-te godini v indystriata na Zapad gole̋m yspex e postignula firmata IBM sus svoäta System/360. Done̋kude bila stanula indystrialen standart, s razvit pazar ne samo za xardwer, no i za softwer.
- Vuv vruzka s tova v Moskva su rešili da napravüt "gole̋m skok".
- Izdadena e bila komandata vsički stari proekti da se kancelirat i vsički resyrsi da se vpregnut v reverse-engineering na IBM System/360 pod označenieto ЕС ЭВМ.
- Poveče nikakvi stranni modeli sus stranni arxitektyri!
- Ravnävame se po purvite. Kradem ot purvite.
- Ravnävame se po IBM. Kradem ot IBM.
- Sled godini počnuxme da kradem i ot firmata DEC.
- V reverse-engineering-ut be̋x dobur.
- Ta tova e složilo kraj na kompÿtrite ot seriata Minsk.
- Specialistite ot grad Minsk i tamošniut zavod yspešno su se prekvalificirali za IBM System/360, pardon za ЕС ЭВМ.
- Samo da otbeležu, če nezavisimata duržava Belorysia e nasledila ot bivšiut Suvetski suÿz sravnitelno razvita kompÿturna indystria.
- Po-razvita ot bulgarskata.
- (.. skrij go kraüt na Minsk-2 ..) (.. skrij go podrazdelut za kompÿtrite Minsk-2 ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Otklonenie: Iz "drevnostite" na bulgarskata kompÿturna indystria (.. pokaži ..)
-
▼▼ Otklonenie: Iz "drevnostite" na bulgarskata kompÿturna indystria
(.. skrij ..)
- Kato stydent v yniversitetut i v purvite godini na profesionalnata mi kariera sum rabotil na IBM System/360 (t.e. na ЕС ЭВМ). Na izloženoto v tova otklonenie ne sum svidetel.
- Purvo i Vtoro.
- Purvo. V godinite 1960-63 bulgarski yčeni v edin ekzemplär su razrabotili kompÿtur Vitoša.
- Eto ne̋koi fragmentarni svedenia za nego.
- V mašinnata instrykcia se ykazvat adresite ne samo na operandite, no i na sledvaqata instrykcia. Eto zaqo.
- Operativnata pamet (RAMut) e bil[a] realiziran[a] na magniten baraban.
- Dokato centralniut procesor izpulnäva tekyqata instrykcia, barabanut se e zavurte̋l i e podminul me̋stoto na sledvaqata po razpoloženie instrykcia. Zatova se nalaga v mašinnata komanda da se ykaže adresut na samo na operandite, no i na sledvaqata instrykcia za izpulnenie.
- Vtoro.
Prez godinite 1967-1971 v sofijskiut ZIT (zavodut za izčislitelna texnika) se proizveǧali kompÿtri s označenie ZIT-151,
po licenz za Facom-230–30 ot äponskata firma Facom.
- Ne̋koi novosuzdadeni teritorialni izčislitelni centrove, nared sus suvetskite kompÿtri model Minsk-32, bili oborydvani i s kompÿtri ZIT-151 (Facom).
- Kompÿtrite ZIT-151 (Facom), kakto i kompÿtrite Minsk-32, ne̋mali diskova pamet, t.e. vunšna energo-nezavisima (trajna) pamet s burz dostup. Vunšnata im pamet e bila na magnitni lenti, a operativnata im pamet - na feromagnitni mrežički (core: connecting others reaching everyone).
- Proizvodstvoto na ZIT-151 e bilo spre̋no, kogato svыše e došla visočajša zapoved vsičkite ysilia na kompÿturnite specialisti v prostranstvoto ot Brandenbyrgskata vrata do Vladivostok da se vklÿčut v reverse-engineering (razbiraj kradene) na prodyktovata linia System/360 na firmata IBM. Ne samo ZIT-151 e bil spre̋n ot proizvodstvo, suqoto e spolete̋lo i Minsk-32, kakto i red drygi suvetski razrabotki.
- Zabeležete, če bulgarskata kompÿturna indystria (a veroätno i suvetskata) e bila podtiknuta kum kražbi na intelektyalna sobstvenost edva s visočajšata zapoved da se sledva IBM System/360.
- Prez 80-te v Čexoslovakia be̋xu razrabotili originalna operacionna sistema za IBM System/370. Dori firmata IBM ne̋maše takava razrabotka. Da, kato vseki nov softwer, češkata sistema be dosta bugava, no drygite strani ot SIV možexme da pomognem v debugvaneto. Niqo takova ne stanu. Češkata sistema be izxvurlena.
- Neysetno stignux do subitia, na koito sum svidetel.
- Obqo nablÿdenie: Kakto i pri vsički ostanuli prodykti, kompÿtrite zapadno proizvodstvo po kačestvo i nadeǧnost v puti nadvišavaxu kompÿtrite suvetsko proizvodstvo. Koito puk ot svoä strana po kačestvo i nadeǧnost nadvišavaxu kompÿtrite bulgarsko proizvodstvo.
- (.. skrij gi drevnostite na bulgarskata kompÿturna indystria ..) (.. skrij go podrazdelut za kompÿtrite Minsk-2 ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Pak otklonenie: bit i bajt (.. pokaži ..)
-
▼▼ Pak otklonenie: bit i bajt
(.. skrij ..)
- V pametta na kompÿtrite ima bitove, mnogo bitove.
- Edin bit ima dve sustoänia.
- Tova označava, če v edin bit ot pametta na kompÿturut se zapisva edin bit informacia.
- Bitut e estestveno ponätie.
- Edin bit ima dve sustoänia. Te fizičeski mogut da imat različno izraženie.
- Naprimer na opredelena pozicia na perfolentata ne̋ma dypka ili ima dypka.
- Obače e prieto xorata da označavat dvete sustoänia na bit s cifrite 0 i 1.
- Naj-često se izpolzvat ne otdelni bitove, a grypi ot susedni bitove, koito predstavät ne̋kakvo čislo ili kod.
- Kogato centralniut procesor čete danni ot operativnata pamet (ot RAMut) ili zapisva tam danni, vinugi čete ili piše navednuž grypa ot susedni bitove.
- Kogato centralniut procesor čete danni ot operativnata pamet (ot RAMut) ili zapisva tam danni, toj adresira me̋stoto.
- Adresut predstavläva čislo, koeto obiknoveno se interpretira kato dvoično čislo bez znak.
- Stupkata na adresite ne̋koga beše osnovna čast ot kompÿturnata arxitektyra.
- Prez kolko bita adresut na me̋stoto v operativnata pamet se promenä s edinica:
- Pri Minsk-2: prez 37 bita.
- Pri ZIT-151 (Facom-230): prez 10 bita.
- Pri IZOT-310 (PDP-8): prez 12 bita.
- Pri suvremennite kompÿtri tazi stupka e vinugi osem (8).
- Grypa ot osem susedni bajta na obq adres ot pametta e bila narečena bajt (byte).
- Tazi arxitektyrna čerta na suvremennite kompÿtri se nariča bajtova organizacia.
- Tazi moda se e ystanovila veroätno zaradi dominiraneto na IBM System/360 v moment ot minuloto.
- Y nas ponätieto bajt i kompÿtri s bajtova organizacia se poävixu s IBM System/360 i ЕС ЭВМ.
- Kompÿtrite Vitoša, Minsk-2 i ZIT-151, za koito stanu dyma, ne̋mat bajtova organizacia i ponätieto bajt pri te̋x ne se izpolzva.
- ◄►
Otklonenie_1: Otnosno merkite za količestvo informacia.
- Osnovnata me̋rka za količestvo informacia, zadadena ot prirodata, e bit.
- Obiknoveno skorostta na internet se meri v "Megabitove na sekynda" - MegaBits per second - Mbps.
- Megabit - MegaBit - tova su (1024*1024=)1048576 bita.
- Ne se izpolzva bajt, poneže otdelnite bitove ot edin bajt mogut da putyvat po različni putiqa iz debrite na internet.
- Osem bita informacia predstavlävat edin bajt (byte).
- 1024 bajta predstavlävat edin kilobajt (kilobyte, Kb).
- 1024 kilobajta predstavlävat edin megabajt (megabyte, Mb, gole̋m bajt).
- 1024 megabajta predstavlävat edin gigabajt (gigabyte, Gb, gigantski bajt).
- 1024 gigabajta predstavlävat edin terabajt (terabyte, Tb, zverski bajt).
- Osnovnata me̋rka za količestvo informacia, zadadena ot prirodata, e bit.
- ►► Otklonenie_2: Da obäsnü terminite 16-bitovi, 32-bitovi ili 64-bitovi kompÿtri (.. pokaži ..)
-
▼▼ Otklonenie_2: Da obäsnü terminite 16-bitovi, 32-bitovi ili 64-bitovi kompÿtri
(.. skrij ..)
- I tuj, kompÿtrite su s bajtova organizacia. V pametta im bitovete su organizirani v bajtove.
- V edin bajt može da se zapiše čislo (dvoično bez znak) ot 0 do 255.
- Ako adresut na bajt ot pametta se suduržaše samo v edin bajt, to qeše da e vuzmožno da se adresirat samo 256 bajta - tvurde malko za počti vse̋ko priloženie.
- Eto zaqo za adresi se izpolzvat po-golemi čisla (dvoični bez znak), zapisani v ne̋kolko susedni bajta.
- Ako adresut se sudurža v dva susedni bajta, to kompÿturut qe može neposredstveno da adresira 65536 bajta (s dvoično bezznakovo čislo meǧy 0 i 65535).
- Takuv kompÿtur se označava kato 16-bitov.
- Ako adresut se sudurža v četiri susedni bajta, to kompÿturut qe može neposredstveno da adresira 4294967296 bajta ili 4 GigaBytes (s dvoično bezznakovo čislo meǧy 0 i 4294967295).
- Takuv kompÿtur se označava kato 32-bitov.
- Ako adresut se sudurža v osem susedni bajta, to kompÿturut qe može da ima neposredstven dostup do adresno prostranstvo s kosmičeski razmeri.
- Takuv kompÿtur se označava kato 64-bitov.
- I tuj, kompÿturut e s bajtova organizacia i izpolzva za adresi bezznakovi dvoični čisla, razpoloženi v ne̋kolko susedni bajta.
- Vseki ot tezi ne̋kolko susedni bajta, zaedno predstavlävaqi bezznakovo dvoično čislo, izpolzvano za adres, vseki ot te̋x si ima svoj adres.
- No adresite im su susedni čisla. Naj-malkoto ot tezi čisla se izpolzva za adres na adresut.
- Adresut na adresut adresira adres - zatova e adres na adresut. No tova si e adres, znači e i adres na bajt. E, tozi bajt kakva pozicia ima v čisloto, v bezznakovoto dvoično čislo, predstavlävaqo adresut?
- Ako tova e mladšiut bajt - kompÿturut e LittleEndian.
- Ako tova e staršiut bajt - kompÿturut e BigEndian.
- Kompÿtrite ot seriata ЕС ЭВМ (IBM System/360/370) su BigEndian.
- Kompÿtrite s arxitektyri PDP-11 (DEC), VAX (DEC), X86 (Intel) su LittleEndian.
- Xarakteristikata LittleEndian/BigEndian ima značenie i pri kodirovkite, kogato različni kompÿtri si obmenät kodove, poneže tä se otnasä ne samo do adresite, koito su dvoični bezznakovi čisla, no i pri vse̋kakvi čisla.
- (.. skrij go otklonenieto za 16-32-64-bitovite kompÿtri ..)
- (.. skrij go otklonenieto za bit i bajt ..) (.. svij go ..) (.. razguni go ..) (.. skrij go podrazdelut za kompÿtrite Minsk-2 ..) (.. svij go ..) (.. razguni go ..)
- ►► Ne̋koi svedenia za kompÿtrite Minsk-2 (.. pokaži ..)
-
▼▼ Ne̋koi svedenia za kompÿtrite Minsk-2
(.. skrij ..)
- Navremeto znaex da pišu mašinni programi za Minsk-2.
- Sega sum zabravil. Celta na tozi tekst e da si pripomnü, kakvoto mogu.
- Prez profesionalnata si kariera vladeex mašinniut kod na IBM/System/360/370, PDP-11 i VAX.
- No tova beše prez purvata polovina na profesionalnata mi kariera.
- Prez vtorata polovina na profesionalnata mi kariera ne mi se e nalagalo da slizam na tova nivo.
- Minsk-2 beše 37-bitov kompÿtur.
- Susedni 37 bita ot pametta obrazyvaxu kletka (memory cell, ячейка памяти).
- Vse̋ka kletka si ima adres.
- Adresut predstavläva 12-bitovo dvoično čislo bez znak.
- Sledovatelno, adresut predstavläva čislo ot 0 do 4095.
- Pri modelut Minsk-22 adresut e 13-bitovo čislo ot 0 do 8191.
- Sledovatelno, pri Minsk-2 maksimalniut i realniut razmer na operativnata pamet e 4096 37-bitovi kletki, ili obqo (4096*37=) 151552 bita, koeto e 18944 suvremenni bajta, 18.5 kilobajta.
- Pri modelut Minsk-22 - dvojno.
- Kogato s takiva adresi rabotexu xora - programisti i kodirovčici, edin 12-bitov adres se predstaväše črez 4-cifrovo bezznakovo čislo v osmična sistema ot 0000 do 7777 (koeto znači ot 0 do 4095 desetično).
- I tuj, razmerut na operativnata pamet pri Minsk-2 v suvremenni merki e 18 i polovina kilobajta.
- Za sravnenie:
- Kogato zavuršix i postupix na rabota, kompÿturut, s kojto si imax rabota, imaše operativnata pamet 128 kilobajta. ЕС ЭВМ (IBM System/360).
- Edno vreme 32-bitovoto adresno prostranstvo na VAX (4 gigabajta) ni izgleǧaše ogromno.
- Ličniut mi laptop, na kojto pišu tova, ima 16 gigabajta operativna pamet.
- Drygo kompÿturče, lično moe, pak s ne̋kolko gigabajta pamet, si go nosü v x̌obut i go polzvam kato telefonče.
- Svidetel sum i na drevnite, i na modernite vremena.
- Kletkata, kakto pisax, predstavläva 37 susedni bita.
- Razbira se, takava kletka možeše da sudurža 37-bitovo dvoično čislo sus ili bez znak.
- Kompÿturut možeše da izvuršva operacii s takiva čisla.
- Suqo taka, edna takava kletka možeše da sudurža mašinna komanda za izpulnenie.
- Kogato s takiva 37-bitovi čisla ili mašinni komandi rabotexu xora - programisti i kodirovčici,
edna 37-bitova kletka se predstaväše črez 12-cifrovo čislo v osmična sistema sus znak otpred.
- Naprimer, +100001770200.
- Kato dvoično čislo (s fiksirana točka) tova e čisloto 8590454912 v desetičen zapis.
- Kato mašinna komanda, tazi 37-bitova kletka instryktira kompÿturut:
- Da pročete v symatorut suduržanieto na kletka na adres 0177 osmično (desetično 127).
- Da pribavi kum nego suduržanieto na kletka na adres 0200 osmično (desetično 128).
- Rezyltatut ot symatorut (symata na dvete čisla) da zapiše obratno v pametta na adres 0200 osmično (desetično 128).
- Obqiut format na mašinnata komanda pri Minsk-2 e sledniut:
- Staršite 7 bita su kodut na operaciata.
- Ostavat 30 bita.
- Sledvaqite 6 bita zadavat indeksniut registur.
- Ostavat 24 bita.
- Sledvat dvata operanda, vseki ykazan s 12-bitov adres.
- Vsičkite bitove v kletkata vle̋zoxu v ypotreba.
- Staršite 7 bita su kodut na operaciata.
- Otnosno indeksniut registur.
- Obiknoveno centralniut procesor na edin kompÿtur ima na svoe razpoloženie blizo do sebe si, "na edna ruka razstoänie", ne̋kolko registura, suduržaqi danni, nyžni v tekyqiut moment ili puk v neposredstvenoto budeqe.
- Broüt na tezi registri ne može da e mnogo gole̋m, poneže programiraqite na mašinen ezik ili na asembler tre̋bva da duržut tezi registri v čoveškata si pamet.
- 16 e prilično čislo za tozi broj.
- Ako te su 16, takuv registur se ykazva s čislo ot 0 do 15.
- Diapazonut ot 0 do 15 e miniatÿrno adresno prostranstvo za tezi registri, izvun adresnoto prostranstvo na operativnata pamet.
- Operativnata pamet e "na edin pogled razstoänie", po-daleče ot registrite.
- V kompÿturut Minsk-2 praktičeski ima samo edin takuv registur - symatorut. Toj vinugi se ykazva neävno i ne se nyǧae ot adres.
- Toj - symatorut - ne može da slyži za indeksen registur.
- V mašinnata komanda na Minsk-2 za adres na kletka ot operativnata pamet (za adres na operand) se zadelät 12 bita, a za nomer na indeksen registur se zadelät 6 bita.
- Vuzmožnite adresi na kletki ot pametta osmično su ot 0000 do 7777, ili desetično ot 0 do 4095.
- V 6-te bita, zadeleni za nomerut na indeksniut registur, može da se zapiše osmično čislo ot 00 do 77, ili desetično ot 0 do 63.
- V Minsk-2 purvite 64 kletki ot operativnata pamet, kletkite s adresi ot 00 do 77 osmično ili 0 do 63 desetično, mogut da se izpolzvat kato indeksni registri.
- Adresiraneto na tezi kletki s 12-bitov adres na operand si ostava vuzmožno.
- V Minsk-22 kato indeksni registri mogut da se izpolzvat samo purvite 16 kletki ot pametta.
- Za adresiraneto im su dostatučni 4 bita: ot 00 do 17 osmično ili ot 0 do 15 desetično.
- V Minsk-22 za vseki ot dvata operanda se vzema edin bit i se slaga kato starši bit na adresut na operandut.
- Taka v Minsk-22 adresite na operandite stavat 13-bitovi, koeto pozvoläva maksimalen razmer na operativnata pamet 8192 37-bitovi kletki.
- Kak v Minsk-2 se izpolzva indeksniut registur.
- Ot negovite 37 bita, samo 24-te bita, razpoloženi na pozicia na adres na operand, se izpolzvat.
- Ostanulite bitove tre̋bva da su nyli ili se priemat za nyli.
- Suduržanieto na indeksniut registur se dobavä kum mašinnata komanda.
- Po tozi način adresite na dvata operanda mogut da budut modificirani.
- Tazi texnika e neobxodima pri programirane na cikli.
- Pomnü, če v arxitektyrata IBM/System/360/370 (ЕС ЭВМ) da se ykaže nomer 0 (nyla) za indeksen ili za bazisen registur označava da ne se izpolzva takuv registur.
- Ne pomnü dali podobno pravilo imaše i pri Minsk-2.
- Zaklÿčenie: Kolko purvobitno e bilo mašinnoto programirane za Minsk-2.
- V deveti klas nikoj ne ni e yčil kum kakuv interfejs da se priduržame pri izvikvane na podprograma.
- Ävno, pri Minsk-2 čovek sam e tre̋bvalo da si razraboti takuv interfejs.
- Za sravnenie, pri IBM/System/360/370 (ЕС ЭВМ) i pri vsički sledvaqi kompÿturni arxitektyri, ako ne znaeš tozi interfejs, znači ne vladeeš mašinnoto programirane.
- Izklÿčitelno trydno e programata da se napravi relocatable.
- Sledvaqite kompÿturni arxitektyri predostavät takiva vuzmožnosti.
- Sega praktičeski vseki kompilator proizveǧa pozicionno-nezavisim kod (PIC: position-independent code).
- Istinski stek (stack) ne̋maše i v arxitektyrata IBM/System/360/370 (ЕС ЭВМ).
- Ne e opravdano v Minsk-2 da očakvame ylesnenia za stack.
- Ima li smisul izobqo da se govori za sharable-programi, poneže ne̋ma mnogo niški (threads), ne̋ma mnogo procesi, ne̋ma mnogo potrebiteli.
- Izklÿčitelno trydno e programata da se napravi reentrant.
- V častnost, izklÿčitelno trydno e da se programira rekyrsia.
- Čydü se dali za mašinite Minsk e imalo kompilator na Algol.
- Zaqo v edinadeseti klas yčixme Algol?
- Eksploataciata na kompÿtrite Minsk-32 y nas se e osnovavala na Kobol.
- I posledno: ne̋mam predstava kakva dulbočina na softwerut e bila dostignuta pri Minsk-2.
- (.. skrij gi svedeniata za kompÿtrite Minsk-2 ..) (.. skrij go podrazdelut za kompÿtrite Minsk-2 ..) (.. svij go ..) (.. razguni go ..)
- ◄► (.. skrij gi kompÿtrite Minsk-2 ..) (.. svij gi ..) (.. razguni gi ..) (.. skrij go minuloto nezapomneno ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
-
►► References: prepratki
(.. pokaži gi ..)
-
▼▼ References: prepratki
(.. skrij gi ..)
(.. skrij go minuloto nezapomneno ..)
(.. svij go ..)
(.. razguni go ..)
- christotamarin.blogspot.com: 7-bitovata sredà
- christotamarin.blogspot.com: The JCUKEN keyboard layout
- christotamarin.blogspot.com: 7-bitovata sredà
- christotamarin.blogspot.com: The JCUKEN keyboard layout
- christotamarin.blogspot.com: 7-bitovata sredà
- christotamarin.blogspot.com: The JCUKEN keyboard layout
- christotamarin.blogspot.com: 7-bitovata sredà
- christotamarin.blogspot.com: The JCUKEN keyboard layout
- christotamarin.blogspot.com: 7-bitovata sredà
- christotamarin.blogspot.com: The JCUKEN keyboard layout
- christotamarin.blogspot.com: 7-bitovata sredà
- christotamarin.blogspot.com: The JCUKEN keyboard layout
- wikipedia: Baudot code#ITA2
- wikipedia: MTK-2
- wikipedia: Punched tape
- Виртуальный компьютерный музей: Серия ЭВМ «Минск»
- Виртуальный компьютерный музей: Электронная цифровая вычислительная машина Минск-2
- ◄► (.. skrij ü purvata beseda ..) (.. svij ü ..) (.. posvij ili porazguni ..) (.. razguni ü ..) .. kum načaloto ..
►► 3. Za kompÿtrite polinomialno (.. pokaži ü vtorata beseda ..) (.. razgunuto ..) .. kum načaloto ..
- Po spomenite mi ot 11-ti klas, 1971..72.
- Iska mi se da si dokažu, če sega ne sum po-tup, otkolkoto sum bil togava.
- Zaglavieto na tazi beseda go složix kato zaglavie na celiut tozi sbornik s besedi.
▼▼ 3. Za kompÿtrite polinomialno (.. skrij ü vtorata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Postanovka na zadačata (.. pokaži go predgovorut na besedata ..) (.. pokaži go razgunuto ..)
-
▼▼
Postanovka na zadačata
(.. skrij go predgovorut na besedata ..)
(.. svij go ..)
(.. razguni go ..)
- ►► Srednoškolski spomeni (.. pokaži ..)
-
▼▼
Srednoškolski spomeni
(.. skrij ..)
- Zavuršil sum gimnazia (11-ti klas) prez 1972 sus specialnost "izčislitel-kodirovčik".
- Suyčenicite mi ot susednata "G" paralelka zavuršvaxu kato šoföri.
- V denüt na navuršvane na pulnoletiv vseki ot te̋x možeše da otide da si ü vzeme šoförskata knižka.
- V 11-ti klas po predmetut za kompÿturna podgotovka (ASM) izyčavaxme ezikut za programirane Algol-60.
- Kompilator ot Algol-60 ne sum viǧal.
- Ezikut se izpolzvaše za pyblikyvane na algoritmi,
- koeto znači, če az sum go izpolzval po prednaznačenie.
- V Algol-60 imaše stranno predavane na parametrite kum podprogramite.
- A tova beše trydno za realizacia.
- Kak da e. Makar ezikut Algol-60 da ne se izpolzvaše za realno programirane, sintaksisut my e povlial na mnogo drygi kompÿturni ezici (PL/I, Pascal, C, Java, JavaScript, ..).
- Napisax programa na Algol-60 za namirane na realnite koreni na polinom s realni koeficienti.
- Yčitelüt ni po matematika ü prati v ne̋kakvo spisanie i maj ü pyblikyvaxu.
- No togava tä ne beše testvana.
- (.. skrij gi srednoškolskite mi spomeni ..) (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Zavuršil sum gimnazia (11-ti klas) prez 1972 sus specialnost "izčislitel-kodirovčik".
- ►► Spomen ot okolo 1980 (.. pokaži ..)
-
▼▼
Spomen ot okolo 1980
(.. skrij ..)
- Kogato prez 1979 postupix na rabota, po edno vreme polyčix neograničen dostup do kompÿtur ES-1020 (ravnostoen s mladši model na IBM/360).
- Rešix da ne stoü bez rabota, a da iztestvam algoritumut na programata za namiraneto na realnite koreni na polinom s realni koeficienti, koäto be̋x napisal kato yčenik v 11-ti klas na ezikut Algol-60.
- Algoritumut go pomnex.
- Napisax programata na ezikut PL/I.
- Naloži se da simyliram rekyrsiata.
- Da, programata raboteše.
- No testvaneto ï beše povurxnostno.
- Ne̋max vreme za poveče.
- (.. skrij go spomenut mi ot okolo 1980 ..) (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Kato pensioner se vruqam kum spomenite si otpredi desetiletia (.. pokaži ..)
-
▼▼
Kato pensioner se vruqam kum spomenite si otpredi desetiletia
(.. skrij ..)
- Dal mi sega Gospod mnogo vreme.
- Mogu da se vurnu kum zadačata za namiraneto na realnite koreni na polinom s realni koeficienti.
- Imam vreme za obstojno testvane.
- Imam vreme da razrabotü i sredà za testvane.
- Texnologiite mnogo naprednuxu.
- Mogu da pišu na ezik kato JavaScript i "programata da se pyblikyva za vsenarodno testvane".
- Ne si postaväm za cel da gonü naj-moqnoto i naj-napredničavoto.
- Ima veroätno sredstva za čertane na grafiki, koeto bi moglo dobre da ilÿstrira besedata.
- No vse pak, softwerut, kojto polzvam, tre̋bva da mi e lesno dostupen, da go ima i na moeto laptopče, i na počti vse̋ko drygo kompÿturče - laptopče, tabletče ili smartfonče.
- Kato pensioner ne̋mam programistki dostup do survur.
- Zatova - JavaScript.
- (.. skrij go pensionerskoto mi ežednevie ..) (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ◄►
Namiraneto na realnite koreni na polinom s realni koeficienti -
- tova e zadačata.
- ►► Zadačata e matematičeska i algoritumut se osnovava na matematikata (.. pokaži ..)
-
▼▼
Zadačata e matematičeska i algoritumut se osnovava na matematikata
(.. skrij ..)
- Ne̋ma da iznasäm yrok po matematika.
- Niqo ne̋ma i da dokazvam tyka.
- Softwer se testva, ne se dokazva.
- No ne̋koi neqa - osnovaniata za algoritumut - tre̋bva da se napišut.
- Neka argymentut na polinomut, kakto obiknoveno, da označavame s bykvata x.
- Ako x0 e koren na polinomut (na mnogočlenut), togava za stojnost na argymentut x0
stojnostta na polinomut e nyla (0).
Tova e definicia na koren na polinom. - Ako x0 e koren na polinomut (na mnogočlenut), togava binomut (dvyčlenut) (x - x0) e delitel na polinomut.
- Korenut na polinomut si ima svoäta kratnost.
- Ako x0 e dvykraten koren na polinomut, togava (x - x0)2 e negov delitel.
- Ako x0 e trikraten koren na polinomut, togava (x - x0)3 e negov delitel.
- Bez ograničenie na obqnostta možem da sčitame, če staršiut koeficient na polinomut e položitelen.
- Ako e otricatelen, qe go ymnožim polinomut po -1 i qe polyčim polinom s položitelen starši koeficient i sus suqite koreni.
- Polinomut e gladka neprekusnuta fynkcia.
- Qom staršiut koeficient na polinomut e položitelen, to toj kloni kum +∞, kogato argymentut kloni kum +∞.
- Ako pri ne̋kakva stojnost na argymentut x1 stojnostta na polinomut e otricatelna, to ne̋kude v intervalut ot x1 do +∞ grafikata my qe preseče abscisnata os, toest ne̋kude v intervalut ot x1 do +∞ suqestvyva pone edin koren na polinomut.
- Qom staršiut koeficient na polinomut e položitelen, kogato argymentut kloni kum −∞,
polinomite ot nečetna stepen klonüt kum −∞, a
polinomite ot četna stepen - kum +∞.
- Ako pri ne̋kakva stojnost na argymentut x1 stojnostta na polinom ot četna stepen e otricatelna, to ne̋kude v intervalut ot −∞ do x1 suqestvyva pone edin koren.
- Ako pri ne̋kakva stojnost na argymentut x1 stojnostta na polinom ot nečetna stepen e položitelna, to ne̋kude v intervalut ot −∞ do x1 suqestvyva pone edin koren.
- Äsno e, če polinomut se razgleǧa kato fynkcia na argymentut si.
- I kato fynkcia toj ima proizvodna.
- Proizvodnata na polinom e pak polinom, no s edna stepen po-niska.
- Ako x0 e dvykraten koren na polinomut, togava x0 e koren i na proizvodnata.
- Ako x0 e trikraten koren na polinomut, togava x0 e koren i na proizvodnata i na nejnata proizvodna (toest na purvata i na vtorata proizvodna).
- Polinomut e gladka neprekusnuta fynkcia.
- Ako x0 e koren na proizvodnata, togava pri tazi stojnost na argymentut x0 samiut polinom ima ili lokalen minimym, ili lokalen maksimym, ili infleksna točka.
- Ako x1 e naj-malkiut koren na proizvodnata, togava v otvoreniut interval ot −∞ do x1 suqestvyva naj-mnogo edin koren na polinomut.
- Ako x2 e naj-golemiut koren na proizvodnata, togava v otvoreniut interval ot x2 do +∞ suqestvyva naj-mnogo edin koren na polinomut.
- Ako x1 i x2 su dva posledovatelni koreni na proizvodnata, togava v otvoreniut interval ot x1 do x2 suqestvyva naj-mnogo edin koren na polinomut.
- (.. skrij gi matematičeskite osnovi na algoritumut ..) (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Samiut algoritum (.. pokaži ..)
-
▼▼
Samiut algoritum e rekyrsiven.
(.. skrij ..)
- Realnite koreni na polinomut se namirat, sled kato sme namerili realnite koreni na proizvodnata my.
- Proizvodnata na edin polinom pak e polinom, no ot po-niska stepen.
- Korenut na polinom ot purva stepen se namira elementarno.
- Vuv vseki edin ot intervalite, opredeleni ot korenite na proizvodnata, može da ima naj-mnogo edin koren.
- Dali ima ili ne̋ma - tova se opredelä ot stojnostite na polinomut v kraiqata na intervalut.
- Ako bude opredeleno, če v intervalut ima koren, intervalut se deli na dva po-malki intervala, i se opredelä v koj ot te̋x e korenut.
- Ako intervalut, za kojto znaem, če sudurža koren, stane dostatučno maluk, tova znači, če sme go namerili korenut.
- Kolko maluk da stane intervalut?
Kakvato točnost na rezyltatut ni e nyžna. - (.. skrij go algoritumut ..) (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Analogičnata zadača v poleto na kompleksnite čisla (.. pokaži ..)
-
▼▼
Analogičnata zadača v poleto na kompleksnite čisla
(.. skrij ..)
- Za obobqenieto v poleto na kompleksnite čisla može da se dokaže slednoto:
- Edin polinom ot n-ta stepen s koeficienti ot poleto na kompleksnite čisla ima točno n korena v poleto na kompleksnite čisla, kato vseki koren se broi spored kratnostta si.
- Kakto i pri realnite čisla,
- ako kompleksnoto čislo x0 e koren na polinomut (na mnogočlenut), togava binomut (dvyčlenut) (x - x0) e delitel na polinomut.
- ako kompleksnoto čislo x0 e dvykraten koren na polinomut, togava (x - x0)2 e delitel na polinomut.
- Ne sum se zanimaval sus zadačata za namiraneto na korenite na polinom v poleto na kompleksnite čisla.
- I tazi beseda ne̋ma niqo obqo s kompleksnite čisla.
- Ot teoriata na kompleksnite čisla se polzva samo rezyltatut, če korenite na polinom ot n-ta stepen su točno n na broj.
- Ako se ograničim do poleto na realnite čisla, kakto pravü v tazi beseda, to tvurdenieto se izkazva taka:
- Edin polinom ot n-ta stepen s realni koeficienti ima naj-mnogo n realni korena, kato vseki koren se broi spored kratnostta si.
- (.. skrij gi kompleksnite čisla ..) (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Za obobqenieto v poleto na kompleksnite čisla može da se dokaže slednoto:
- ◄► V besedata su vklÿčeni i dve otklonenia ot temata.
- ◄► (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü vtorata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Polinomi s realni koeficienti (.. pokaži go vuvedenieto za polinomite ..) (.. pokaži go razgunuto ..)
-
▼▼
Polinomi s realni koeficienti
(.. skrij go vuvedenieto za polinomite ..)
(.. svij go ..)
(.. razguni go ..)
- ◄► V tozi razdel se demonstrira i testva
vuveǧaneto na polinom.
- Tozi razdel e stupka kum krajnata cel - detajlno testvane na programata za namirane na realnite koreni na polinom s realni koeficienti.
- ►► Qo e to polinom (.. pokaži ..)
-
▼▼
Qo e to polinom
(.. skrij ..)
- Tozi podrazdel ne̋ma da bude yrok po matematika, nito yrok po algebra.
- Celta mi e samo da se ytočnüt ponätiata i terminite.
- Ako ne pomnite ot srednoto yčiliqe kakvo e tova polinom, naričano oqe mnogočlen, otkažete se.
- Ako ne ste yčili za kompleksni čisla, to za Vas vsički čisla su realni i ponätieto polinom s realni koeficienti označava prosto polinom.
- Polinomut e fynkcia s edin argyment.
- Argymentut se označava s latinska bykva, obiknoveno bykvata x.
- V matematičeskata literatyra e prieto argymentite da se označavat s ne̋koä ot poslednite bykvi na latinskata azbyka, a purvite bykvi se izpolzvat za koeficientite, ako te suqo su promenlivi.
- V tazi beseda ne̋ma da stava dyma za polinomi s promenlivi koeficienti.
- Edin polinom, naričan oqe mnogočlen, predstavläva syma (sbor) ot ednočleni.
- A puk edin ednočlen predstavläva
argymentut na ne̋kakva stepen, ymnožen po koeficient.
- Koeficientut e čislo, v slyčaüt realno čislo.
- Stepenta e ce̋lo neotricatelno čislo.
- Ako tä e nyla, ednočlenut se nariča svoboden člen.
- Ednočlenite (členovete na mnogočlenut) s nylevi koeficienti obiknoveno ne se pišut.
- No prisutstvat pri izbranoto vutrešno predstaväne v kompÿturut.
- Pri predstaväneto na polinomut (mnogočlenut), členovete my (ednočlenite) obiknoveno se podreǧat po namalävane na stepenta si.
- Ednočlenite ot edna i suqa stepen se subirat e edni člen.
- Svobodniut člen - tozi s argyment na nyleva stepen - e posleden.
- Purviut člen s nenylev koeficient - tozi s naj-visokata stepen na argymentut - e starši člen.
- Koeficientut my e starši koeficient na polinomut (na mnogočlenut).
- Stepenta my stava stepen na polinomut.
- (.. skrij qo e to polinom ..) (.. skrij go vuvedenieto za polinomite ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
-
Bykva za argymentut: - ►► Kak da vuveǧame polinom (.. pokaži gi pravilata ..)
-
▼▼
Kak da vuveǧame polinom
(.. skrij gi pravilata ..)
- Po-gore v tozi razdel, pri vuveǧaneto na polinom s realni koeficienti, v sila su slednite pravila i svobodi:
- Špacii (intervali, space characters) su dopystimi navse̋kude, osven vutre v čislata i meǧy dvete zvezdički ** na znakut za stepenyvane.
- Polinomut (mnogočlenut) se vuveǧa kato syma ot ednočleni.
- Može i da e sustaven samo ot edin člen.
- Ne se iziskva podredba na sustaväqite ednočleni po stepen.
Programata qe gi podredi. - Razrešava se vuveǧane na ne̋kolko ednočlena ot edna i suqa stepen.
Programata qe gi obedini, sled kato symira koeficientite im. - Ednočlenut započva s koeficientut si.
Koeficientut može da se propysne, ako e raven na edinica. - Sled koeficientut na ednočlenut, se vuveǧa bykvata za argymentut.
- Tä može da se propysne, ako stepenta na ednočlenut e nyla (t.e. ako tova e svoboden člen).
- Meǧy koeficientut i argymentut, ako i dvete prisutstvat, može da se složi zvezdička * kato znak za ymnoženie.
- No zvezdičkata može da se propysne.
- Sled bykvata za argymentut kato ce̋lo čislo se piše stepenta na ednočlenut.
- Stepenta može da se propysne, ako e edinica.
- Meǧy bykvata za argymentut i stepenta, ako i dvete prisutstvat,
mogut da se složut dve zvezdički ** kato znak za stepenyvane.
No znakut za stepenyvane može da se izpysne.
- Primeri za ednočleni ot nyleva stepen:
5*x**0 1024*x**0 3.14*x**0 2.56*x**0 -1*x**0 -100*x**0 5x**0 1024x**0 3.14x**0 2.56x**0 -1x**0 -100x**0 5x**0 1024x**0 3.14x**0 2.56x**0 -x**0 -100x**0 5*x0 1024*x0 3.14*x0 2.56*x0 -1*x0 -100*x0 5x0 1024x0 3.14x0 2.56x0 -1x0 -100x0 5x0 1024x0 3.14x0 2.56x0 -x0 -100x0 5 1024 3.14 2.56 -1 -100 - Primeri za ednočleni ot purva stepen:
1*x**1 1024*x**1 3.14*x**1 2.56*x**1 -1*x**1 -100*x**1 1x**1 1024x**1 3.14x**1 2.56x**1 -1x**1 -100x**1 x**1 1024x**1 3.14x**1 2.56x**1 -x**1 -100x**1 1*x1 1024*x1 3.14*x1 2.56*x1 -1*x1 -100*x1 1x1 1024x1 3.14x1 2.56x1 -1x1 -100x1 x1 1024x1 3.14x1 2.56x1 -x1 -100x1 1*x 1024*x 3.14*x 2.56*x -1*x -100*x 1x 1024x 3.14x 2.56x -1x -100x x 1024x 3.14x 2.56x -x -100x - Meǧy ednočlenite, sustaväqi vuveǧaniut polinom, se slaga samo edin znak + (plÿs) ili - (minys).
- Pred purviut ednočlen može da se složi znak - (minys).
- Primer:
1*x**2 - 2*x**1 - 3*x**1 + 6*x**0 -2*x**3 + 3*x**2 - 1*x**1 + 7 1*x**2 - 5*x**1 + 6*x**0 -2x3 + 3x2 - x + 7 x2 - 5x + 6 2x3 - 3x2 + x - 7 - Zabeležete, če za celite na osnovnata zadača programata qe osigyri položitelen starši koeficient na polinomut.
- Ako pri vuveǧaneto toj e bil otricatelen, programata qe ymnoži vsički koeficienti po -1.
- Ako bude vuveden polinom ot vtora ili ot po-visoka stepen, qe se poävi byton
.
Sledvaqiut razdel e za ymnoženieto na polinomi.
Bytonut qe Vi prati tam. - Straničen efekt. Žultoto pole gore - tam, kudeto se vuveǧa polinomut,
može da se izpolzva kato prost kalkylator.
- Tam mogat da se subirat i izvaǧat čisla.
- Programata vuzpriema vse̋ko vuvedeno čislo kato koeficient na ednočlen ot nyleva stepen i symira tezi koeficienti.
- (.. skrij gi pravilata ..) (.. skrij go vuvedenieto za polinomite ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
-
►►
.. Pokaži kod na JavaScript ..
-
▼▼
Kod na JavaScript
(.. skrij go kodut ..)
- Klasut RealPolynom e razširenie na Array.
Obekt ot klasut RealPolynom e predi vsičko Array, masiv ot čisla.- Čislata ot masivut su koeficientite na polinomut.
- Broüt im e s edinica po-gole̋m ot stepenta na polinomut.
- Elementut [0] e staršiut koeficient - koeficientut pred naj-visokata stepen.
- Posledniut element e koeficientut pred nylevata stepen (svobodniut člen)
- Vsički nylevi koeficienti prisutstvat v masivut na mestata si, makar obiknoveno da ne se pokazvat.
-
class RealPolynom extends Array { argLetter = "x"; toString(raw) { var n = this.length; if(!n) { return ""; } if((n == 1) && !this[0]) { return "0"; } var t = ""; for(let j = 0; j < this.length; j++) { n--; if ( ! this[j] ) { continue; } if ( ( this[j] > 0 ) && j ) { t += "+" } t += this[j].toPrecision(10)*1; //.toString(); if (raw) { if ( n > 0 ) { t += this.argLetter; } if ( n > 1 ) { t += n; } } else { if ( n > 0 ) { t += "*<"+"b>"; t += this.argLetter; t += "<"+"/b>"; } if ( n > 1 ) { t += "<"+"sup>" t += n; t += "<"+"/sup>" } } } return t; } // toString doitRegular(positive) // Ensure non-zero/positive first coefficient { if (this.length == 1) { if(typeof(this[0]) != "number") { this.splice(0); } return; } if (this.length == 0) { return; } var m = 1; var t = 0; for(let j = 0; j < this.length; j++ ) { if(typeof(this[j]) != "number") { continue; } if ( t > 0 ) { } else if ( this[j] == 0 ) { continue; } else if(( this[j] < 0 ) && ((typeof(positive) != "boolean") || positive)) { m = -1; } else { } this[t] = this[j] * m; t++; } if ( t > 0 ) { this.splice(t); } } // doitRegular getDegree() // Returns -1 if not a regular RealPolynom { for(let j = 0; j < this.length; j++) { if(isNaN(this[j]) || (typeof(this[j]) != "number")) { return -1; } } if (this[0] == 0) { return -1; } return this.length - 1; } // getDegree }
- Metodut toString() pokazva polinomut v običaen vid.
Členovete s nylev koeficient se izpyskat.
Argymentut v nyleva stepen ne se pokazva.
Za da može kodut na tozi metod da se pokaže tyka, nalaga se html-tagovete da se dekompozirat. - Metodut getDegree() proveräva dali vsički elementi ot masivut su čisla.
Ako ne, vruqa -1.
Ako staršiut koeficient this[0] e nyla, pak vruqa -1 kato rezyltat.
Inače dava stepenta na polinomut - broüt na čislata bez 1. - Metodut doitRegular() osigyräva staršiut koeficient da e položitelno čislo.
Za tazi cel može da bude namalen broüt na čislata.
Za tazi cel vsički koeficienti može da budut ymnoženi po -1. - Programite, koito priemat vxodut ot ekranut i preobrazyvat vuvedenoto v obekt ot klas RealPolynom, ne se pokazvat.
- (.. skrij go kodut na JavaScript ..) (.. skrij go vuvedenieto za polinomite ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Klasut RealPolynom e razširenie na Array.
- ◄► Tozi razdel ot besedata može da se propysne.
- Toj e prosto posledovatelna stupka kum krajnata cel.
- Vsičko ot tozi razdel se povtarä v sledvaqite razdeli.
- Osven kalkylatorut za subirane i izvaǧane - toj raboti samo tyka.
- ◄► (.. skrij go vuvedenieto za polinomite ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü vtorata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ◄► V tozi razdel se demonstrira i testva
vuveǧaneto na polinom.
- ►► Polinomi-množiteli (.. pokaži go ymnoženieto na polinomi ..) (.. pokaži go razgunuto ..)
-
▼▼
Polinomi-množiteli
(.. skrij go ymnoženieto na polinomi ..)
(.. svij go ..)
(.. razguni go ..)
- ◄► Tozi razdel ot besedata može da se propysne.
- Toj e prosto posledovatelna stupka kum krajnata cel.
- Vsičko ot tozi razdel se povtarä v sledvaqiut razdel.
- ►► Zaqo v temata se namesva ymnoženie na polinomi? (.. pokaži ..)
-
▼▼
Zaqo v temata se namesva ymnoženie na polinomi?
(.. skrij ..)
- Tozi razdel e stupka kum krajnata cel - detajlno testvane na programata za namirane na realnite koreni na polinom s realni koeficienti.
- Podgotväme polinom, kojto da dadem na tazi programa, če tä da my nameri korenite.
- Ili tre̋bva predvaritelno da znaem koi su tursenite koreni, ..
- ili za vseki nameren ot programata koren tre̋bva da možem da proverim dali naistina e koren na polinomut.
- Namiraneto na realnite korenite na zadaden polinom s realni koeficienti e v sledvaqiut razdel.
- V po-sledvaqiut razdel qe može da se proveri dali namerenite koreni naistina su koreni na polinomut.
- A v nastoäqiut razdel se pokazva kak da podgotvim polinom za testvane, takuv če predvaritelno da my znaem korenite.
- Neka bykvata za argymentut da e x.
- Polinomut x-5 ima ednokraten realen koren 5.
- Polinomut x+2 ima ednokraten realen koren -2.
- Polinomut x ima ednokraten realen koren 0.
- Ako ymnožim trite polinoma (x-5)*(x+2)*x, proizvedenieto im x3-3x2-10x, koeto e polinom ot 3-ta stepen,qe ima točno tri realni korena 5, 0 i -2.
- Polinomut x ima ednokraten realen koren 0.
- Polinomut x2 ima dvykraten koren 0.
- Polinomut x3, kojto e polinom ot 3-ta stepen, ima trikraten koren 0.
- Polinomut x-5 ima ednokraten realen koren 5.
- Proizvedenieto na poslednite dva polinoma x3*(x-5) e polinom ot 4-ta stepen x4-5x3, koito ima četiri korena: vednuž 5 i tri puti 0.
- Polinomut ot 2-ra stepen x2+x+1 ne̋ma realni koreni, poneže stojnostite my su strogo položitelni.
- Tova se viǧa, ako se predstavi vuv vidut (x+0.5)2+0.75.
- Razbira se, ako svobodniut člen e po-gole̋m ot 0.25, naprimer 2, to polinomut x2+x+2 pak ne̋ma realni koreni.
- Ako za množitel se vzeme polinom ot 2-ra ili 4-ta stepen bez realni koreni, to lipsata na realni koreni tre̋bva da bude otčetena v rezyltatut.
- Edin polinom primerno ot 6-ta stepen ima naj-mnogo 6 realni koreni.
Može da ne̋ma i nito edin. - Edin polinom primerno ot 7-ma stepen ima naj-mnogo 7 realni koreni.
Ima pone edin. Polinom ot nečetna stepen ima pone edin realen koren.
- Ta taka: v tozi razdel se demonstrira ymnoženieto na polinomi.
- Tova qe se polzva, za da se polyči polinom, realnite koreni na kojto su izvestni.
- Fynkcionalnostta ot tozi razdel e povtorena v sledvaqiut razdel.
- Zatova tozi razdel može da se propysne.
- Vse pak, polyčeniut v tozi razdel polinom može da bude prenesen v sledvaqiut razdel, za da se testva.
- (.. skrij ü tykašnata cel na ymnoženieto na polinomi ..) (.. skrij go ymnoženieto na polinomi ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ◄► Ako vuvedete polinom ot nyleva stepen,
- toest čislo - konstanta,
- programata qe go preobrazyva vuv binom (polinom ot purva stepen),
- korenut na kojto e vuvedenoto čislo.
- Naprimer, ako vuvedete 5, vse edno če ste vuveli x-5.
- Ako bykvata za argymentut e x, razbira se.
-
Bykva za argymentut: -
►►
.. Pokaži kodut na JavaScript ..
-
▼▼
Kod na JavaScript
(.. skrij go kodut ..)
-
class RealPolynom extends Array { doitRegular(positive) // Ensure non-zero/positive first coefficient { if (this.length == 1) { if(typeof(this[0]) != "number") { this.splice(0); } return; } if (this.length == 0) { return; } var m = 1; var t = 0; for(let j = 0; j < this.length; j++ ) { if(typeof(this[j]) != "number") { continue; } if ( t > 0 ) { } else if ( this[j] == 0 ) { continue; } else if(( this[j] < 0 ) && ((typeof(positive) != "boolean") || positive)) { m = -1; } else { } this[t] = this[j] * m; t++; } if ( t > 0 ) { this.splice(t); } } // doitRegular getDegree() // Returns -1 if not a regular RealPolynom { for(let j = 0; j < this.length; j++) { if(isNaN(this[j]) || (typeof(this[j]) != "number")) { return -1; } } if (this[0] == 0) { return -1; } return this.length - 1; } // getDegree
multiplyBy(a) { if (!(a instanceof RealPolynom)) { return; } this.doitRegular(); const gth = this.getDegree(); if ( gth < 0 ) { return; } a.doitRegular(); const ga = a.getDegree(); if ( ga < 0 ) { this.splice(0); return; } var th = new RealPolynom; for ( let i = 0; i < this.length; i++ ) { th[i] = this[i]; } for ( let i = 0; i <= (ga+gth); i++ ) { this[i] = 0; } for ( let i = 0; i <= gth; i++ ) { for(let j = 0; j <= ga; j++) { this[i+j] += (th[i]*a[j]); } } } // multiplyBy
} - Programite, koito priemat vxodut ot ekranut i izveǧat rezyltatut na ekranut, ne se pokazvat.
- (.. skrij go kodut na JavaScript ..) (.. skrij go ymnoženieto na polinomi ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
-
- ◄► (.. skrij go ymnoženieto na polinomi ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü vtorata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ◄► Tozi razdel ot besedata može da se propysne.
- ►► Realnite koreni na polinom s realni koeficienti (.. pokaži kak se namirat ..) (.. pokaži razgunuto ..)
-
▼▼
Realnite koreni na polinom s realni koeficienti
(.. skrij gi ..)
(.. svij gi ..)
(.. razguni gi ..)
- ◄► Tova e osnovniut razdel na besedata.
- Tyka se demonstrira i testva programata za namirane na realnite koreni na polinom s realni koeficienti.
- ►► Za celite na testvaneto polinomut može da se vuveǧa po množiteli (.. pokaži ..)
-
▼▼
Za celite na testvaneto polinomut može da se vuveǧa po množiteli
(.. skrij ..)
- Podgotväme polinom, kojto da dadem na tazi programa, če tä da my nameri korenite.
- Ili tre̋bva predvaritelno da znaem koi su tursenite koreni, ..
- ili za vseki nameren ot programata koren tre̋bva da možem da proverim dali naistina e koren na polinomut.
- Namiraneto na realnite korenite na zadaden polinom s realni koeficienti e v tozi razdel.
- V sledvaqiut razdel qe može da se proveri dali nameren koren naistina e koren na polinomut.
- Za celta polinomut i presmetnutite v tozi razdel negovi koreni mogut da budut preneseni v sledvaqiut razdel za proverka.
- A v nastoäqiut razdel da vidim kak da podgotvim polinom za testvane, takuv če predvaritelno da my znaem korenite.
- Neka bykvata za argymentut da e x.
- Polinomut x-5 ima ednokraten realen koren 5.
- Polinomut x+2 ima ednokraten realen koren -2.
- Polinomut x ima ednokraten realen koren 0.
- Ako ymnožim trite polinoma (x-5)*(x+2)*x, proizvedenieto im x3-3x2-10x, koeto e polinom ot 3-ta stepen,qe ima točno tri realni korena 5, 0 i -2.
- Polinomut x ima ednokraten realen koren 0.
- Polinomut x2 ima dvykraten koren 0.
- Polinomut x3, kojto e polinom ot 3-ta stepen, ima trikraten koren 0.
- Polinomut x-5 ima ednokraten realen koren 5.
- Proizvedenieto na poslednite dva polinoma x3*(x-5) e polinom ot 4-ta stepen x4-5x3, koito ima četiri korena: vednuž 5 i tri puti 0.
- Polinomut ot 2-ra stepen x2+x+1 ne̋ma realni koreni, poneže stojnostite my su strogo položitelni.
- Tova se viǧa, ako se predstavi vuv vidut (x+0.5)2+0.75.
- Razbira se, ako svobodniut člen e po-gole̋m ot 0.25, naprimer 2, to polinomut x2+x+2 pak ne̋ma realni koreni.
- Ako za množitel se vzeme polinom ot 2-ra ili 4-ta stepen bez realni koreni, to lipsata na realni koreni tre̋bva da bude otčetena v rezyltatut.
- Edin polinom primerno ot 6-ta stepen ima naj-mnogo 6 realni koreni.
Može da ne̋ma i nito edin. - Edin polinom primerno ot 7-ma stepen ima naj-mnogo 7 realni koreni.
Ima pone edin. Polinom ot nečetna stepen ima pone edin realen koren.
- (.. skrij go vuveǧaneto na polinomut po množiteli ..) (.. skrij gi korenite na polinom ..) (.. svij gi ..) (.. razguni gi ..) .. kum načaloto ..
- ◄► Razbira se, možete da vuvedete celiut polinom kato edin množitel.
- ◄► Ako vuvedete polinom ot nyleva stepen,
- toest čislo - konstanta,
- programata qe go preobrazyva vuv binom (polinom ot purva stepen),
- korenut na kojto e vuvedenoto čislo.
- Naprimer, ako vuvedete 5, vse edno če ste vuveli x-5.
- Ako bykvata za argymentut e x, razbira se.
-
Namirane na realnite koreni na polinom s realni koeficienti Epsylon: Bykva za argymentut: -
►►
.. Pokaži go kodut na programata ..
-
▼▼
Kodut na programata
(.. skrij go kodut ..)
- Glavnata programa e getRoots().
- Tä namira realnite koreni na polinomut i gi vruqa v Array (masiv), podredeni po golemina.
- Ako polinomut ne̋ma realni koreni, rezyltatut e prazen masiv.
- Algoritumut e rekyrsiven. JavaScript poddurža rekyrsia, kakto i povečeto suvremenni kompÿturni ezici.
- Ako stava dyma za polinom ot purva stepen, programata vednaga presme̋ta korenut i zavuršva rabotata si.
- Inače s pomoqta na metodut getDerivative() se postroäva proizvodnata na polinomut.
- Proizvodnata e suqo polinom, stepenta na kojto e po-niska s edinica.
- Za tazi proizvodna rekyrsivno se izvikva glavnata programa e getRoots(),
- za da se namerüt realnite koreni na proizvodnata.
- Produlžavame algoritumut pri yslovie, če realnite koreni na proizvodnata su namereni.
- Ako proizvodnata ne̋ma realni koreni, to tozi polinom ima edin realen koren,
- za namiraneto na kojto se izvikva #getSingleRoot( -∞, +∞ ).
- Metodut #getSingleRoot() namira edinstven realen koren v zadaden interval, ako takuv koren ima.
- Purvo, tozi metod #getSingleRoot() se izvikva za intervalut ot -∞ do purviut realen koren na proizvodnata.
- Sled tova metodut #getSingleRoot() se izvikva za vseki interval meǧy dva posledovatelni realni koreni na proizvodnata.
- I posledno, metodut #getSingleRoot() se izvikva za intervalut ot posledniut realen koren na proizvodnata do +∞.
- Metodut getDerivative() postroäva proizvodnata kato obekt ot klasut RealPolynomEquation, taka če kum tozi obekt da može da se priloži getRoots().
- Na metodut #getSingleRoot() tre̋bva da my bude zadaden interval, za kojto da e äsno,
če v nego ima naj-mnogo edin realen koren na polinomut.
- Ako v intervalut ima realen koren, metodut #getSingleRoot() go namira i go vruqa kato čislo.
- Ako v intervalut ne̋ma realen koren, rezyltatut e NaN (Not a Number).
- Metodut #getSingleRoot() razgleǧa četiri slyčaä,
koito tyka su izbroeni v red obraten na tozi v kodut:
- Kraen interval meǧy dve čisla.
- Interval ot -∞ do čislo.
- Interval ot čislo do +∞.
- Intervalut ot -∞ do +∞.
- Metodut #getSingleRoot() se izvikva rekyrsivno za podintervali.
- Metodut getValue(), kojto se izpolzva tyka, se demonstrira otdelno v sledvaqiut razdel.
- Sledva samiut kod.
-
class RealPolynomEquation extends RealPolynom { static infinityPlus = "+\u221e"; static infinityMinus = "-\u221e"; static epsylon = 0.0001; level = 0; roots = null; derivative = null; parentEq = null;
getDerivative() { this.derivative = new RealPolynomEquation; this.derivative.parentEq = this; this.derivative.level = this.level; this.derivative.level++; var n = this.length; for(let j = 0; j < (this.length-1); j++ ) { n--; this.derivative[j] = this[j] * n; } return this.derivative; } // getDerivative
#isAlmostZero(z) { const ez = RealPolynomEquation.epsylon/2; if (ez < z) { return false; } if((-ez) < z) { return true; } return false; } // #isAlmostZero
#getSingleRoot(a,b) { console.log(this.level+":#getSingleRoot("+a+","+b+") called: "+this[0]+".."+(this.length-1)+".."+this[this.length-1]); if(isNaN(a) && isNaN(b)) { if(this[this.length-1] > 0) { return this.#getSingleRoot(RealPolynomEquation.infinityMinus,0); } if(this[this.length-1] < 0) { return this.#getSingleRoot(0,RealPolynomEquation.infinityPlus); } return 0; } var s = 1; // the step s /= this[0]; if (s < 0.001) { s = 0.001; } else if (s > 1000) { s = 1000; } else { } var c; if(isNaN(b)) { const vba = this.getValue(a); if (this.#isAlmostZero(vba)) { return a; } if ( vba > 0 ) { return NaN; } c = a; var vbc; while(true) { c += s; vbc = this.getValue(c); if(this.#isAlmostZero(vbc)) { return c; } if(vbc > 0) { return this.#getSingleRoot(a,c); } continue; } } const vb = this.getValue(b); if ( this.#isAlmostZero(vb) ) { return b; } if(!isNaN(a)) { } else if(this.length%2==0) // va is negative { if ( vb < 0 ) { return NaN; } c = b; var vac; while(true) { c -= s; vac = this.getValue(c); if(this.#isAlmostZero(vac)) { return c; } if(vac < 0) { return this.#getSingleRoot(c,b); } continue; } } else // va is positive { if ( vb > 0 ) { return NaN; } c = b; var vac; while(true) { c -= s; vac = this.getValue(c); if(this.#isAlmostZero(vac)) { return c; } if(vac > 0) { return this.#getSingleRoot(c,b); } continue; } } const va = this.getValue(a); if ( this.#isAlmostZero(va) ) { return a; } if(((va > 0) && (vb > 0)) || ((va < 0) && (vb < 0))) { return NaN; } const m = (a + b)/2; if(((a < b) && ((b - a) < RealPolynomEquation.epsylon)) || ((a > b) && ((a - b) < RealPolynomEquation.epsylon))) { return m; } const vm = this.getValue(m); if ( this.#isAlmostZero(vm) ) { return m; } if(((vm > 0) && (va < 0)) || ((vm < 0) && (va > 0))) { return this.#getSingleRoot(a,m); } return this.#getSingleRoot(m,b); } // #getSingleRootgetRoots() { this.roots = null; const d = this.getDegree(); if ( d < 1 ) { console.log(this.level+":getRoots() exits: "+this.roots.toString()); return this.roots; } console.log(this.level+":getRoots() called: "+this.toString(true)); this.roots = new Array; if ( d == 1 ) { this.roots[0] = -this[1]; this.roots[0] /= this[0]; console.log(this.level+":getRoots() exits: "+this.roots.toString()); return this.roots; } this.getDerivative(); console.log(this.level+":getRoots() is about to do a recursion: "+this.derivative.toString(true)); const dR = this.derivative.getRoots(); console.log(this.level+":getRoots() back from recursion: "+dR.toString()); var r; if ( dR.length == 0 ) { r = this.#getSingleRoot(RealPolynomEquation.infinityMinus,RealPolynomEquation.infinityPlus); if(!isNaN(r)) { this.roots[0] = r; } console.log(this.level+":getRoots() exits: "+this.roots.toString()); return this.roots; } r = this.#getSingleRoot(RealPolynomEquation.infinityMinus,dR[0]); if(!isNaN(r)) { this.roots[0] = r; } var j = this.roots.length; var i; for ( i = 1; i < dR.length; i++ ) { r = this.#getSingleRoot(dR[i-1],dR[i]); if(!isNaN(r)) { this.roots[j] = r; j++; } } r = this.#getSingleRoot(dR[dR.length-1],RealPolynomEquation.infinityPlus); if(!isNaN(r)) { this.roots[j] = r; } console.log(this.level+":getRoots() exits: "+this.roots.toString()); return this.roots; } // getRoots
} - Nade̋vam se na vsički ystrojstva rezyltatite da su pone sxodni, ako ne identični.
- Presme̋taniata se izvuršvat ne na web-server, a lokalno na Vašeto ystrojstvo (smartfon, tablet, laptop, ..).
- Presme̋taniata gi izvuršva interpretatorut ot JavaScript, kojto e vgraden vuv Vašiut browser.
- Ezikut JavaScript e standartiziran.
- Interpretatorut ot JavaScript polzva standartna aritmetika s plavaqa točka.
- Da, algoritumut polzva aritmetika s plavaqa točka.
- Tova nalaga da se obruqa vnimanie na zakrugläniata i približeniata.
- (.. skrij go kodut na programata ..) (.. skrij gi korenite na polinom ..) (.. svij gi ..) (.. razguni gi ..) .. kum načaloto ..
- Glavnata programa e getRoots().
- ►► Točnost na presme̋taniata (.. pokaži ..)
-
▼▼
Točnost na presme̋taniata
(.. skrij ..)
- Ne sum se zadulbočaval v točnostta na presme̋taniata.
- Razčitam na standartna aritmetika s plavaqa točka, kakvato polzva standarten interpretator ot JavaScript.
- Ne polzvam specialni softwerni biblioteki za matematičeski izčislenia.
- Programata tre̋bva da može da raboti na vse̋ko ystrojstvo.
- Vse pak, vuveden e parametur Epsylon sus stojnosti 0.001, 0.0001, 0.00001 ili 0.000001 po izbor.
- Sigyrno mogut da se namerüt primeri, pri koito tazi programa greši.
- Molü da budu yvedomävan, ako namerite takiva primeri.
- Az qe precenü dali si stryva da se popravä programata.
- (.. skrij ü točnostta na presme̋taniata ..) (.. skrij gi korenite na polinom ..) (.. svij gi ..) (.. razguni gi ..) .. kum načaloto ..
- Ne sum se zadulbočaval v točnostta na presme̋taniata.
- ◄► (.. skrij gi korenite na polinom ..) (.. svij gi ..) (.. razguni gi ..) (.. skrij ü vtorata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ◄► Tova e osnovniut razdel na besedata.
- ►► Presme̋tane na stojnostta na polinomi pri zadadena stojnost na argymentut (.. pokaži ..) (.. razgunuto ..)
-
▼▼
Presme̋tane na stojnostta na polinomi pri zadadena stojnost na argymentut
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
- ◄► V tozi razdel imenno tova se pravi:
- Kompÿturčeto sme̋ta stojnostta na zadaden polinom za zadadena stojnost na argymentut.
- I koeficientite na polinomut, i stojnostta na argymentut, i polyčenata stojnost na polinomut su realni čisla.
- Neposredstvenata cel e da može da se proveri dali nameren v predišniut razdel realen koren na polinomut naistina e koren.
- Neposredstvenata cel e da može da se proveri dali programata ot predišniut razdel sme̋ta ve̋rno.
- Ako dadeno čislo naistina e koren na polinomut, to kato se zamesti argymentut s tova čislo, stojnostta na polinomut tre̋bva da e nyla.
- Tova znači da e koren na polinomut.
- Po-natatuk, tozi razdel dava povod da se pokaže kak kompÿtrite presme̋tat stojnostta na polinom.
- Tova e vtorata cel na besedata, makar da e otklonenie ot osnovnata cel.
- ◄► Purvo zadajte polinomut.
- Tyka polinomut se vuveǧa navednuž, a ne po množiteli, kakto v predišniut razdel.
- No možete polinomut ot predišniut razdel zaedno s namerenite koreni da budut preneseni v tozi razdel.
- Tyka ne̋ma smisul da vuveǧate čisla-konstanti.
Te ne̋ma da budut preobrazyvani v binomi.
- ◄► Posle zadajte stojnost na argymentut.
- Možete da izberete stojnostta na argymentut izmeǧy čislata, koito v predišniut razdel su bili namereni kato koreni na polinomut, ako su bili preneseni ottam tyka.
- Možete i da vuvedete ne̋kakvo čislo za stojnost na argymentut, sled koeto da natisnete bytonut (ne tozi byton tyka, a onä po-doly pri vuvedenoto čislo).
-
Bykva za argymentut: Vuvedi stojnost na argymentut: Izberi stojnost na argymentut: - ►► Kak da vuveǧame polinom (.. pokaži gi pravilata ..)
-
▼▼
Kak da vuveǧame polinom
(.. skrij gi pravilata ..)
- Po-gore v tozi razdel, pri vuveǧaneto na polinom s realni koeficienti, v sila su slednite pravila i svobodi:
- Špacii (intervali, space characters) su dopystimi navse̋kude, osven vutre v čislata i meǧy dvete zvezdički ** na znakut za stepenyvane.
- Polinomut (mnogočlenut) se vuveǧa kato syma ot ednočleni.
- Može i da e sustaven samo ot edin člen.
- Ne se iziskva podredba na sustaväqite ednočleni po stepen.
Programata qe gi podredi. - Razrešava se vuveǧane na ne̋kolko ednočlena ot edna i suqa stepen.
Programata qe gi obedini, sled kato symira koeficientite im. - Ednočlenut započva s koeficientut si.
Koeficientut može da se propysne, ako e raven na edinica. - Sled koeficientut na ednočlenut, se vuveǧa bykvata za argymentut.
- Tä može da se propysne, ako stepenta na ednočlenut e nyla (t.e. ako tova e svoboden člen).
- Meǧy koeficientut i argymentut, ako i dvete prisutstvat, može da se složi zvezdička * kato znak za ymnoženie.
- No zvezdičkata može da se propysne.
- Sled bykvata za argymentut kato ce̋lo čislo se piše stepenta na ednočlenut.
- Stepenta može da se propysne, ako e edinica.
- Meǧy bykvata za argymentut i stepenta, ako i dvete prisutstvat,
mogut da se složut dve zvezdički ** kato znak za stepenyvane.
No znakut za stepenyvane može da se izpysne.
- Primeri za ednočleni ot nyleva stepen:
5*x**0 1024*x**0 3.14*x**0 2.56*x**0 -1*x**0 -100*x**0 5x**0 1024x**0 3.14x**0 2.56x**0 -1x**0 -100x**0 5x**0 1024x**0 3.14x**0 2.56x**0 -x**0 -100x**0 5*x0 1024*x0 3.14*x0 2.56*x0 -1*x0 -100*x0 5x0 1024x0 3.14x0 2.56x0 -1x0 -100x0 5x0 1024x0 3.14x0 2.56x0 -x0 -100x0 5 1024 3.14 2.56 -1 -100 - Primeri za ednočleni ot purva stepen:
1*x**1 1024*x**1 3.14*x**1 2.56*x**1 -1*x**1 -100*x**1 1x**1 1024x**1 3.14x**1 2.56x**1 -1x**1 -100x**1 x**1 1024x**1 3.14x**1 2.56x**1 -x**1 -100x**1 1*x1 1024*x1 3.14*x1 2.56*x1 -1*x1 -100*x1 1x1 1024x1 3.14x1 2.56x1 -1x1 -100x1 x1 1024x1 3.14x1 2.56x1 -x1 -100x1 1*x 1024*x 3.14*x 2.56*x -1*x -100*x 1x 1024x 3.14x 2.56x -1x -100x x 1024x 3.14x 2.56x -x -100x - Meǧy ednočlenite, sustaväqi vuveǧaniut polinom, se slaga samo edin znak + (plÿs) ili - (minys).
- Pred purviut ednočlen može da se složi znak - (minys).
- Primer:
1*x**2 - 2*x**1 - 3*x**1 + 6*x**0 -2*x**3 + 3*x**2 - 1*x**1 + 7 1*x**2 - 5*x**1 + 6*x**0 -2x3 + 3x2 - x + 7 x2 - 5x + 6 2x3 - 3x2 + x - 7 - V tozi razdel ne̋ma smisul da se vuveǧa polinom ot nyleva stepen, toest konstanta.
- (.. skrij gi pravilata ..) (.. skrij kak se sme̋ta polinom ..) (.. svij ..) (.. razguni ..) .. kum načaloto ..
-
►►
.. Pokaži komentar kum kodut na JavaScript ..
class RealPolynom extends Array { getValue(x) { var v = 0; for(let j = 0; j < this.length; j++) { v *= x; v += this[j]; } return v; } // getValue }
-
▼▼
Kodut na JavaScript
(.. skrij go komentarut kum kodut ..)
-
class RealPolynom extends Array { getValue(x) { var v = 0; for(let j = 0; j < this.length; j++) { v *= x; v += this[j]; } return v; } // getValue }
- Klasut RealPolynom e razširenie na Array.
Obekt ot klasut RealPolynom e predi vsičko Array, masiv ot čisla.- Čislata ot masivut su koeficientite na polinomut.
- Broüt im e s edinica po-gole̋m ot stepenta na polinomut.
- Elementut [0] e staršiut koeficient - koeficientut pred naj-visokata stepen.
- Posledniut element e koeficientut pred nylevata stepen (svobodniut člen)
- Vsički nylevi koeficienti prisutstvat v masivut na mestata si, makar obiknoveno da ne se pokazvat.
- Tazi programka e na kompÿturniut ezik JavaScript.
- Tä bi izgleǧala po suqiut način na Java, C, C++, C#, i po podoben način na Algol i PL/I.
- (.. skrij go komentarut kum kodut na JavaScript ..) (.. skrij kak se sme̋ta polinom ..) (.. svij ..) (.. razguni ..) .. kum načaloto ..
-
- ►► Beležki po tykašniut algoritum (.. pokaži ..)
-
▼▼
Beležki po tykašniut algoritum
(.. skrij ..)
- Stava dyma za algoritumut za presme̋tane na stojnostta na polinom za zadadena stojnost na argymentut.
- Suvet kum kandidati za pozicia na kompÿturen programist.
- Na intervÿto za rabota može da poiskat ot Vas da napišete malka programka podobna na gore-pokazanata.
- Ako stava dyma za suqata zadača i ako Vie kodirate ne̋kakuv algoritum, pri kojto se presme̋tat stepenite na argymentut, tova može da osnovanie da Vi otxvurlüt.
- Sledva slovesno opisanie na algoritumut za tezi, koito ne ymeüt da razčitat kompÿturen kod.
- Koeficientite na polinomut se nareǧat v masiv po staršinstvo.
Pruv e staršiut koeficient, svobodniut člen e posleden. - Dori ne̋koj ot koeficientite da e nyla - krugla nyla, toj zaema me̋stoto si v masivut i algoritumut ne može da go izpysne.
V častnost, nylev svoboden člen suqo zaema me̋stoto si (poslednoto me̋sto) v masivut. - Algoritumut započva s rezyltat 0 (nyla).
- Algoritumut preminava posledovatelno prez vsički koeficienti na polinomut, započvajki ot staršiut i zavuršvaqi sus svobodniut člen.
- Poredniut koeficient se dobavä kum rezyltatut.
- Ako ima sledvaq koeficient, rezyltatut se ymnožava po zadadenata stojnost na argymentut, predi da se premine kum sledvaqiut koeficient.
- Koeficientite na polinomut se nareǧat v masiv po staršinstvo.
- Primeri.
- Polinomut e
1*x5 - 5*x4 + 6*x3 - 1*x2 + 5*x - 6
a stojnostta na argymentut x e 2 .
- Algoritumut sledva formylata:
(((((((((((0+1)*x)-5)*x)+6)*x)-1)*x)+5)*x)-6)
.
- Algoritumut sledva formylata:
- Polinomut e
1*x4 - 1
a stojnostta na argymentut x e 256 .
- Algoritumut sledva formylata:
(((((((((0+1)*x)+0)*x)+0)*x)+0)*x)-1)
.
- Algoritumut sledva formylata:
Argyment Koeficienti Rezyltat 2 1 -5 6 -1 5 -6 0 1 1 2 2 -5 -3 2 -6 6 0 2 0 -1 -1 2 -2 5 3 2 6 -6 0 256 1 0 0 0 -1 0 1 1 256 256 0 256 256 65536 0 65536 256 16777216 0 16777216 256 4294967296 -1 4294967295 - Polinomut e
1*x5 - 5*x4 + 6*x3 - 1*x2 + 5*x - 6
a stojnostta na argymentut x e 2 .
- Čislata su v desetična pozicionna brojna sistema.
Kompÿturut (v slyčaüt interpretatorut ot JavaScript) taka gi pokazva. - Poslednoto čislo 4294967295
- v 16-ičen zapis e FFFFFFFF,
- v dvoičen zapis e 11111111111111111111111111111111 (32 cifri 1), a
- v 8-ičen zapis e 37777777777.
- Tova e prelÿdia kum sledvaqiut razdel, kojto e otklonenie za pozicionnite brojni sistemi.
- (.. skrij gi beležkite po algoritumut ..) (.. skrij kak se sme̋ta polinom ..) (.. svij ..) (.. razguni ..) .. kum načaloto ..
- ◄► (.. skrij kak se sme̋ta polinom ..) (.. svij ..) (.. razguni ..) (.. skrij ü vtorata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ◄► V tozi razdel imenno tova se pravi:
- ►► Otklonenie_1: pozicionni brojni sistemi (.. pokaži go otklonenieto ..) (.. razgunuto ..)
-
▼▼
Otklonenie_1: pozicionni brojni sistemi
(.. skrij go otklonenieto ..)
(.. svij go ..)
(.. razguni go ..)
- ►► V ežednevieto se polzva desetična pozicionna brojna sistema (.. pokaži ..)
-
▼▼
V ežednevieto se polzva desetična pozicionna brojna sistema
(.. skrij ..)
- Desetičnata pozicionna brojna sistema e
v Evropa otskoro: ima-ne̋ma petstotin godini.
- Segašnoto mlado pokolenie trydno može da si predstavi svetut bez kompÿtri i kompÿturčeta. Starite obače pomnim onova vreme.
- No vsički veče trydno možem da si predstavim kakuv e bil svetut bez desetičnata pozicionna brojna sistema.
- Tolkova sme sviknuli s neü.
- V Zapadna Evropa su se polzvali rimskite cifri.
- Ne̋koga gi yčexme v osnovnoto yčiliqe. Veroätno vse oqe se yčut.
- Prisutsvaxu obiknoveno na tabelite na klasnite stai: V a klas. Veroätno vse oqe e taka.
- Prisutsvaxu i v nomeraciata na partijni kongresi i na petiletkite.
- Sega, slava Bogy, ne pišut "XLIX narodno subranie" - samo vuv wikipedia-ta se mudri.
- Lično az izbe̋gvam ypotrebata na rimskite cifri i obiknoveno pišu "49-toto narodno subranie".
- Y nas su se polzvali
miletskite cifri.
- Do načaloto na 19-ti vek vseki gramoten našenec-xristianin gi e znael.
- Sega gi znaüt samo eksperti, trenirani da razčitat stari tekstove.
- V suvremenna Gurcia miletskite cifri gi znaüt.
- Tam ne ypotrebävat rimskite cifri.
- V slyčaite, kogato nie ypotrebävame rimskite cifri, v Gurcia polzvat miletskite.
- Spored mene, miletskite cifri su po-dobri ot rimskite.
- No i ednite, i drygite niqo ne stryvat pred desetičnata pozicionna brojna sistema.
- Desetičnata pozicionna brojna sistema opredeleno e sudejstvala za razvitieto na texnologiite.
- S takova neqo ne mogut da se poxvalüt nito rimskite cifri, nito miletskite.
- (.. skrij go ežednevieto ..) (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Desetičnata pozicionna brojna sistema e
v Evropa otskoro: ima-ne̋ma petstotin godini.
- ►► Polinomite i pozicionnite brojni sistemi (.. pokaži ..)
-
▼▼
Polinomite i pozicionnite brojni sistemi
(.. skrij ..)
- Zapisut na čislata v pozicionna brojna sistema ima neqo obqo s polinomite.
- Tova e i pričinata za poävata na tozi razdel, v kojto se pravi otklonenie ot osnovnata tema na besedata.
- Pri pozicionna brojna sistema se fiksira ce̋lo čislo po-gole̋mo ot edinica za
osnova na brojnata sistema ili nakratko radix.
- V ežednevniut život na xorata radix-ut e 10 (deset).
- Vutre v svetut na kompÿtrite - togava, kogato na kompÿtrite ne im se nalaga da obqyvat s xora, radix-ut e 2 (dve).
- Zapisut na čislo v pozicionna brojna sistema pri fiksiran radix
predstavläva poredica (masiv, array) ot cifri.
- Cifrite su koeficientite na polinomut, a radix-ut e argymentut.
- Za vse̋ko ce̋lo neotricatelno čislo, po-malko ot radix-ut,
suqestvyva cifra, stojnostta na koäto e tova čislo.
- Cifrite su tolkova na broj, kolkoto e radix-ut.
- Ako radix-ut e 2, i cifrite su 2: 0 i 1.
- Ako radix-ut e 10 (osem), i cifrite su osem: 0, 1, 2, 3, 4, 5, 6, 7.
- Ako radix-ut e 10 (deset), i cifrite su deset: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
- Ako radix-ut e 16 (šestnadeset), i cifrite su šestnadeset.
Obiknoveno se polzvat tezi: 0123456789ABCDEF. - Ako radix-ut e 36 (trideset i šest), i cifrite su tolkova.
Obiknoveno se polzvat tezi: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.
- Nylata vinugi e cifra, pri vseki radix.
- Pri vse̋ka pozicionna brojna sistema ima nyǧa ot cifrata
0 (nyla).
Kakto i ot edinica (1). - Izobretävaneto na pozicionniut zapis na čislata, veroätno delo na indijski matematici, e te̋sno svurzano s izobretävaneto na cifrata nyla i na čisloto nyla.
- Točno tova e dalo tlasuk na razvitieto i na matematikata, i na texnologiite.
- Etimologiata na dymi kato cifra ili šifur ni vodi kum arabskoto nazvanie na nylata, koeto značelo "niqo".
- Pri vse̋ka pozicionna brojna sistema ima nyǧa ot cifrata
0 (nyla).
- Celta na nylata e da durži i da beleži poziciata si
- i kato cifra v zapis na čislo v pozicionna brojna sistema,
- i kato koeficient na polinomut.
- V pozicionna notacia, nylata može da se izpysne, samo ako predi neü ne̋ma po-starši nenylev koeficient ili po-starša nenyleva cifra.
- Naličieto na cifra nylata e osnovnata razlika meǧy suvremennoto označenie na čislata ot edna strana, i rimskata ili miletskata sistema ot dryga strana.
- Nepozicionni označenia:
- Xiläda oki lÿta rakia. Sjcak rakj bin okkasj. One Thousand oz of brendy.
- Polinomut x3.
- Pozicionni označenia:
- 1000 oki lÿta rakia. Sjcak rakj 1000 okkasj. 1000 oz of brendy.
- V predišnite razdeli vutrešno na JavaScript polinomut x3 se predstavä kato masiv ot čisla taka: [1 0 0 0].
- (.. skrij go polinomialnoto pri pozicionnite brojni sistemi ..) (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Zapisut na čislata v pozicionna brojna sistema ima neqo obqo s polinomite.
- ►► Prez praktikata mi na kompÿturen programist sum si imal rabota sus .. (.. pokaži ..)
-
▼▼
Prez praktikata mi na kompÿturen programist sum si imal rabota ..
(.. skrij ..)
- predimno s radix 10 - s desetičnata pozicionna brojna sistema.
- Čovek sum, a kompÿtrite otdavna su se nayčili da obqyvat s xora v radix 10.
- Naprimer, dotyk pri tazi beseda - "za kompÿtrite polinomialno", ne mi se e nalagalo misleno da prevklÿčvam kum radix 2.
- No puk v predišnata beseda - onaä za dypkite na perfolentata, tova pone̋koga se nalagaše.
- Bez vruzka s pisaneto na razni besedi, prez praktikata mi na kompÿturen programist vse pak mi se e nalagalo da minavam i na drygi v radix-i.
- Ne može čovek da razbira surdceto i čyvstvata na kompÿturut, ako ne vladee vutrešniut my
radix - radix 2.
- V kruvta na kompÿtrite e radix 2.
- Edno vreme, kogato be̋x yčenik i stydent, imaše nadeǧa, če v budeqe qe se poävüt kompÿtri s radix 3 v kruvta, i se ypražnävaxme ne samo na radix 2, no i na radix 3.
- Ne se poävixu takiva kompÿtri.
Ne sum imal doseg s radix 3 v praktikata si.
- Zapisut v radix 2 e tvurde neydoben za pokaz i vuzpriatie.
Kogato radix 2 se pokazva na čovek ili se očakva čovek da go vuzprieme, vinugi se zamestva s «rodninski» radix - radix 8 ili radix 16.- Pri Minsk-2 i PDP-11 - radix 8.
- Pri drygite kompÿturni arxitektyri - radix 16.
- Ne biva da se zabravä, če radix 8 i radix 16 ne su niqo drygo osven sbit zapis na radix 2.
- Edno vreme pri kompÿtrite PDP-11 za kodirane na 6-znakovi identifikatori v 32 bita
se polzvaše radix 40 pod označenieto Radix-50.
- Čisloto 40 (zapisano v radix 50) e 50 v radix 8 (5*8 e 40), a «kruvoobraqenieto» na PDP-11 se pokazvaše v radix 8.
- Komynikaciite v sledvaqite godini izpolzvat razni drygi radix-i.
- Naprimer, radix 64 se polzvaše ot programite uuencode i uudecode v Unix, a vposledstie i vuv e-mail-ite pri prikrepenite kum te̋x fajlove.
- Samo za zabavlenie - just for fun, v sledvaqite podrazdeli qe demonstriram proizvolen
radix v diapazonut ot 2 do 36.
- Gornata granica na diapazonut e opredelena ot faktut, če razpolagame s 36 cifri: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.
- (.. skrij s koi radix-i sum si imal rabota ..) (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- predimno s radix 10 - s desetičnata pozicionna brojna sistema.
- ►► Preobrazyvane ot dryga pozicionna brojna sistema kum «našata» (.. pokaži ..)
-
▼▼
Preobrazyvane ot dryga pozicionna brojna sistema kum «našata»
(.. skrij ..)
- Koä e «našata» pozicionna brojna sistema?
Koj e «našiut» radix?- «Našiut» radix e tozi, v kojto se izvuršvat aritmetičnite dejstvia: subirane, ymnoženie, delenie na celi čisla.
- «Našiut» radix e tozi, v kojto se izvuršvat presme̋taniata.
- Za nas xorata «našiut» e radix 10.
- Za interpretatorut na JavaScript «svoj» suqo taka e radix 10.
- Tozi interpretator e programa, koäto raboti na kompÿturut, a ne e samiut kompÿtur.
- Programa na ezikut JavaScript se izpulnäva ot intepretatorut, a ne ot samiut kompÿtur.
- Kompÿtrite na suvsem nisko nivo imat radix 2 za «svoj».
- Programi, koito da se izpulnävat neposredstveno na samiut kompÿtur, se pišut na ezici kato C, C++ ili asembler.
- Tova, razbira se, e yslovno napisano.
- Važnoto e, če v tozi razdel qe se imat pred vid smetki samo v radix 10.
- Aritmetika v radix različen ot 10 ne̋ma da se obsuǧa.
- V tozi podrazdel zadačata qe e tazi: čislo, predstaveno v dryg radix,
da se konvertira v «našiut» radix 10.
- Ako čisloto e predstaveno v dryg radix, za «nas» to ne e čislo, zaqoto ne možem da sme̋tame s nego.
- Za «nas» to e prosto niz ot ne̋kakvi cifri.
- Zadačata qe e da go prevurnem v čislo v «našiut» radix 10.
- Algoritumut qe e suqiut, kojto be priložen v razdelut za presme̋tane na stojnostta na polinom.
- Primer. Čislo ne̋kakvo e predstaveno v radix 16 vuv vidut FFFF, kato cifrata F e 15.
- Započvame s nylev rezyltat. Rezyltatut e 0.
- Kum rezyltatut dobaväme stojnostta na staršata cifra. 0+15. Rezyltatut e 15.
- Ymnožavame rezyltatut po radixut. 15*16. Rezyltatut e 240.
- Kum rezyltatut dobaväme stojnostta na sledvaqata cifra. 240+15. Rezyltatut e 255.
- Ymnožavame rezyltatut po radixut. 255*16. Rezyltatut e 4080.
- Kum rezyltatut dobaväme stojnostta na sledvaqata cifra. 4080+15. Rezyltatut e 4095.
- Ymnožavame rezyltatut po radixut. 4095*16. Rezyltatut e 65520.
- Kum rezyltatut dobaväme stojnostta na poslednata cifra. 65520+15. Rezyltatut e 65536.
- Tyka qe možete da izberete radix v diapazonut ot 2 do 36.
- Sled tova qe možete da vuvedete čislo v izbraniut radix.
- I kato natisnete bytonut Go!, programata na JavaScript qe predstavi Vašeto čislo v «našiut» radix 10.
-
Radix: - Polyčenoto kato rezyltat čislo, zapisano v «našiut» radix 10 (v desetičnata pozicionna brojna sistema, izpolzvana v ežednevieto), qe bude preneseno avtomatično v sledvaqiut podrazdel, kudeto to qe može da bude preobrazyvano dryg radix, treti radix.
- Vpročem, tova e načinut za konvertirane ot edin radix v dryg, kato i dvata radix-a su različni ot «našiut»: purvo v «našiut», posle v drygiut.
-
.. Pokaži go kodut na programkata za konvertirane kum «našiut» radix ..
-
Kodut na programkata za konvertirane kum «našiut» radix
(.. skrij go kodut ..)
-
function convertFromRadix(radix, digits) { var res = 0; var v; var d; var dig = digits; while(dig != "") { res *= radix; d = dig.slice(0,1); dig = dig.slice(1); v = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".search(d); if(v > 0) { res += v; } } return res; }
- Takiva programki se pišut ne na JavaScript, a na C ili na asembler.
- JavaScript ima vgradeni sredstva za takova konvertirane.
-
- (.. skrij go preobrazyvaneto ot dryga pozicionna brojna sistema ..) (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Koä e «našata» pozicionna brojna sistema?
- ►► Preobrazyvane ot «našata» pozicionna brojna sistema kum dryga (.. pokaži ..)
-
▼▼
Preobrazyvane ot «našata» pozicionna brojna sistema kum dryga
(.. skrij ..)
- Koä e «našata» pozicionna brojna sistema?
Koj e «našiut» radix?- «Našiut» radix e tozi, v kojto se izvuršvat aritmetičnite dejstvia: subirane, ymnoženie, delenie na celi čisla.
- «Našiut» radix e tozi, v kojto se izvuršvat presme̋taniata.
- Za nas xorata «našiut» e radix 10.
- Za interpretatorut na JavaScript «svoj» suqo taka e radix 10.
- Tozi interpretator e programa, koäto raboti na kompÿturut, a ne e samiut kompÿtur.
- Programa na ezikut JavaScript se izpulnäva ot intepretatorut, a ne ot samiut kompÿtur.
- Kompÿtrite na suvsem nisko nivo imat radix 2 za «svoj».
- Programi, koito da se izpulnävat neposredstveno na samiut kompÿtur, se pišut na ezici kato C, C++ ili asembler.
- Tova, razbira se, e yslovno napisano.
- V tozi podrazdel zadačata qe e tazi: čislo,
predstaveno v dobre poznatiut ni «naš» radix 10,
da se preobrazyva v dryg zadaden radix.
- Rezyltatut tyka qe bude niz ot cifri v drygiut radix.
- Algoritumut se osnovava na aritmetičnata operacia delenie na celi čisla.
- Tazi operacia dava dve čisla kato rezyltat: častnoto i ostatukut.
- Kompÿturut na nisko nivo izvuršva celočislenoto delenie točno taka: ednovremenno namira častnoto i ostatukut.
- Ako se programira na ezik ot visoko nivo, zadača na ezikoviut procesor (kompilator ili interpretator) e da ne kara operaciata na nisko nivo da se izvuršva dva puti.
- Opisanie na algoritumut za rešavane na zadačata.
- Cifrite se opredelüt posledovatelno edna po edna, ot mladšata kum staršata, ot poslednata kum purvata.
- Na vse̋ka stupka ot algoritumut se izvuršva celočisleno delenie, pri koeto delitel e radix-ut.
- Ostatukut e porednata cifra.
- Sledvaqata stupka produlžava s častnoto.
- Ilÿstracia na algoritumut po stupki.
- Za celite na ilÿstraciata da se postavim na me̋stoto na kompÿturut, za kojto «svoj» e radix 2 (ili koj da e dryg radix, različen ot 10.
- Zadačata qe bude da namerim desetičnite cifri, cifrite v radix 10.
- Da vzemem proizvolno čislo. Suvsem proizvolno. Ot nemaj kude zapisut my tyka na ekranut qe bude desetičen.
- 265302.
- 1-va stupka. Delim 265302 na 10. Ostatukut e 2. Tova e poslednata cifra. Produlžavame s častnoto 26530.
- 2-ra stupka. Delim 26530 na 10. Ostatukut e 0. Tova e porednata cifra. Slagame ü otpred. Rezyltat dotyk: 02. Produlžavame s častnoto 2653.
- 3-ta stupka. Delim 2653 na 10. Ostatukut e 3. Tova e porednata cifra. Slagame ü otpred. Rezyltat dotyk: 302. Produlžavame s častnoto 265.
- 4-ta stupka. Delim 265 na 10. Ostatukut e 5. Tova e porednata cifra. Slagame ü otpred. Rezyltat dotyk: 5302. Produlžavame s častnoto 26.
- 5-ta stupka. Delim 26 na 10. Ostatukut e 6. Tova e porednata cifra. Slagame ü otpred. Rezyltat dotyk: 65302. Produlžavame s častnoto 2.
- 6-ta stupka. Delim 2 na 10. Ostatukut e 2. Tova e porednata cifra. Slagame ü otpred. Rezyltat dotyk: 265302. Častnoto e 0. Sledovatelno, tova e poslednata stupka.
- Purvo vuvedete ce̋lo položitelno čislo v privičniut za čovek desetičen zapis (v «našiut» radix 10).
- Posle izberete dryg radix v diapazonut ot 2 do 36.
- Programata qe Vi pokaže predstaväneto na Vašeto čislo v izbraniut radix.
-
Radix: -
.. Pokaži go kodut na programkata za konvertirane kum dryg radix ..
-
Kodut na programkata za konvertirane kum radix, različen ot «našiut»
(.. skrij go kodut ..)
-
function integerDivision(a,b) { if((typeof(a) == "number") && (0 <= a) && ((a >> 0) == a) && (typeof(b) == "number") && (0 < b) && ((b >> 0) == b)) { return {"q":((a/b) >> 0),"r":(a%b)} } return {"q":"-","r":""} }
function convertToRadix(radix, number) { if((typeof(radix) != "number") || (radix > 36) || (radix < 2) || ((radix >> 0) != radix) || (typeof(number) != "number") || (number < 0) || ((number >> 0) != number)) { return ""; } if (number == 0) { return "0"; } var div; var res = ""; var num = number; while(num != 0) { div = integerDivision(num,radix); if (div["q"] == "-") { return ""; } res = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".slice(div["r"]).slice(0,1) + res; num = div["q"]; } return res; } - Takiva programki se pišut ne na JavaScript, a na C ili na asembler.
- JavaScript ima vgradeni sredstva za takova konvertirane.
-
- (.. skrij go preobrazyvaneto kum dryga pozicionna brojna sistema ..) (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Koä e «našata» pozicionna brojna sistema?
- ►► Preobrazyvane meǧy «rodninski» pozicionni brojni sistemi (.. pokaži ..)
-
▼▼
Preobrazyvane meǧy «rodninski» pozicionni brojni sistemi
(.. skrij ..)
- «Rodninski» su radix-i,
koito su stepeni na edin i suq radix - purva stepen, vtora stepen, treta stepen, ..
- Naprimer, radix-ite 8 i 16 su «rodninski»,
poneže 8 i 16 su stepeni (treta i četvurta) na 2.
- V suqnost, tezi tri radix-a 2, 8 i 16 su «rodninski».
- Dryg primer. «Rodninski» su radix-ite 10, 100 i 1000.
- Naprimer, radix-ite 8 i 16 su «rodninski»,
poneže 8 i 16 su stepeni (treta i četvurta) na 2.
- Konvertiraneto meǧy «rodninski» radix-i ..
- ne se izvuršva po algoritmite ot predišnite dva podrazdela,
- dori kogato ne̋koj ot «rodninski» radix-i e «našiut».
- Zaqoto ima po-lesen način.
- Zaqoto dva «rodninski» radix-a ne su mnogo različni edin ot dryg.
- Konvertiraneto meǧy «rodninski» radix-i ..
- se izvuršva črez grypirane, dekompozirane i pregrypirane na cifrite.
- Da razgledame radix-ut 100.
- Toj e «rodnina» na «našiut» radix 10.
- Radix 100 ima nyǧa ot 100 cifri.
- Neka tezi 100 cifri da su slednite:
{00},{01},{02},{03},{04},{05},{06},{07},{08},{09}, {10},{11},{12},{13},{14},{15},{16},{17},{18},{19}, {20},{21},{22},{23},{24},{25},{26},{27},{28},{29}, . . {80},{81},{82},{83},{84},{85},{86},{87},{88},{89}, {90},{91},{92},{93},{94},{95},{96},{97},{98},{99}.
- Vse̋ka ot tezi 100 «cifri» si ü mislete kato ce̋losten jeroglif sus suotvetnata stojnost.
- Pri konvertiraneto ot radix 10 kum radix 100 cifrite po radix 10 se grypirat po dve (po dve, zaqoto 100 e vtora stepen na 10) ot de̋sno na le̋vo (v obqiut slyčaj ot točkata v dvete posoki).
- Vse̋ka grypička ot dve cifri v radix 10 se kodira v edna ot 100-te «cifri» po radix 100.
- 2024 => {20}{24}.
- Da razgledame radix-ut 1000.
- Toj e «rodnina» na radix-ite 10 i 100.
- Radix 1000 ima nyǧa ot 1000 cifri.
- Neka tezi 1000 cifri da su slednite:
{000},{001},{002},{003},{004},{005},{006},{007},{008},{009}, {010},{011},{012},{013},{014},{015},{016},{017},{018},{019}, {020},{021},{022},{023},{024},{025},{026},{027},{028},{029}, . . {980},{981},{982},{983},{984},{985},{986},{987},{988},{989}, {990},{991},{992},{993},{994},{995},{996},{997},{998},{999}.
- Vse̋ka ot tezi 1000 «cifri» si ü mislete kato ce̋losten jeroglif sus suotvetnata stojnost.
- Neka zadačata da e slednata: Čislo, koeto v radix 100 se predstavä vuv vidut {20}{24}, da se predstavi v «rodninskiut» radix 1000.
- De-kompozirame cifrite po radix 100 kum cifri po radix 10:
- {20}{24} => 2024.
- Grypirame gi po tri (po tri, zaqoto 1000 e treta stepen na 10).
- 2024 => 002 024.
- Vse̋ka grypička ot tri cifri v radix 10 se kodira v edna ot 1000-ta «cifri» po radix 1000.
- 002 024 => {002}{024}.
- Da se vurnem na kompÿturčetata, če texen e budeqiut intelekt.
- Kato ostavim nastrani «našiut» radix 10,
kompÿturnite programisti i kodirovčici naj-često si imat rabota s tri «rodninski» radix-a:
2, 8 i 16.
- Pri radix 2, dvoičinata pozicionna sistema, koäto kompÿtrite imat za «svoä»,
su nyžni dve (2) cifri, 0 i 1.
- Edna dvoična cifra se nariča bit.
- Tova e naj-malkoto količestvo informacia.
- Me̋rkata za količestvo informacia e bit.
- Pri radix 8 su nyžni 8 (osem) cifri.
- Eto gi tezi 8 (osem) cifri, zaedno s de-kompoziciata im na bitove:
0: 000, 1: 001, 2: 010, 3: 011, 4: 100, 5: 101, 6: 110, 7: 111.
- Naprimer, zapisut 377 v radix 8 označava 11111111 - edin bajt svetnuti bitove.
- Eto gi tezi 8 (osem) cifri, zaedno s de-kompoziciata im na bitove:
- Pri radix 16 su nyžni 16 cifri.
- Eto gi tezi 16 cifri, zaedno s de-kompoziciata im na bitove:
0: 0000, 1: 0001, 2: 0010, 3: 0011, 4: 0100, 5: 0101, 6: 0110, 7: 0111, 8: 1000, 9: 1001, A: 1010, B: 1011, C: 1100, D: 1101, E: 1110, F: 1111.
- Naprimer, edin bajt svetnuti bitove v radix 16 se predstavä taka: FF.
- A puk bajt, v kojto samo staršiut bit e svetnut, v radix 16 se predstavä taka: 80.
- Eto gi tezi 16 cifri, zaedno s de-kompoziciata im na bitove:
- Pri radix 2, dvoičinata pozicionna sistema, koäto kompÿtrite imat za «svoä»,
su nyžni dve (2) cifri, 0 i 1.
- Neka zadačata da ni e slednata.
Čislo, imaqo vidut 3750 v radix 8, da se predstavi v «rodninskiut» radix 16.- Osmičnite cifri gi de-kompozirame na bitove - vse̋ka na tri bita:
011 111 101 000
. - Grypirame bitovete po četiri:
0111 1110 1000
. - Vse̋ka grypička ot četiri bita predstaväme s edna cifra v radix 16:
7E8
.
- Osmičnite cifri gi de-kompozirame na bitove - vse̋ka na tri bita:
- Da otbeležu, če za kompÿturčeto igrata s bitove e po-lesna ot aritmetičnite operacii subirane, ymnoženie i delenie.
- To i za čovek e taka, ako e sviknul da žonglira s bitčeta.
- (.. skrij go preobrazyvaneto meǧy rodninski pozicionni brojni sistemi ..) (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- «Rodninski» su radix-i,
koito su stepeni na edin i suq radix - purva stepen, vtora stepen, treta stepen, ..
- ►► Neqo kato zaklÿčenie na purvoto otklonenie (.. pokaži ..)
-
▼▼
Neqo kato zaklÿčenie na purvoto otklonenie
(.. skrij ..)
- Osnovnata tema na besedata beše namiraneto na realnite koreni na polinom s realni koeficienti.
- V tova otklonenie se otplesnux po vutrešnoto predstaväne na dannite v kompÿtrite.
- Izloženieto ne e na texničesko nivo. To e na pyblicistično nivo.
- Celta e samo čitatelite da dobiut ne̋kakva predstava.
- Celta e obqa predstava predi vsičko i predstava za algoritmite.
- Implementaciata na algoritmite sreqa ograničeniata na kompÿturnata sreda i te ne vinugi rabotüt.
- No ne sum si postaväl za cel implementacia na aritmetika s po-visoka točnost.
- Suvsem ne vsičko be spomenato.
- Stryva si da se otbeleži, če kakto vsičko, svurzano s kompÿtrite, se dorazviva i podobräva, taka stava s raznite formati i kodirovki.
- Redica stari formati, s koito sum rabotil prez 80-te, sega su zabraveni.
- Naprimer, paketiranite desetični čisla i mašinnata aritmetika s te̋x.
- Imaše gi v IBM/System360, a posle i vuv VAX.
- Ili puk desetičnite čisla s plavaqa točka.
- Imaše gi pak v IBM/System360, kudeto nemaše dvoični čisla s plavaqa točka.
- Ne znam tazi strannost da e bila povtorena v dryga kompÿturna arxitektyra.
- Naprimer, paketiranite desetični čisla i mašinnata aritmetika s te̋x.
- Pri rešavaneto na zadačata za namiraneto na realnite koreni na polinom s realni koeficienti se polzva aritmetika s plavaqa točka.
- Edno vreme aritmetikata s plavaqa točka beše edin ot aspektite v programiraneto, kojto beše naj-trydno prenosim meǧy različnite kompÿturni arxitektyri.
- Suqo taka, počti nevuzmožno beše da se prenasät kato danni čisla s plavaqa točka v mašinno predstaväne.
- Sega veče ima standart za aritmetika s plavaqa točka.
- (.. skrij go zaklÿčenieto ..) (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ◄► (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü vtorata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Otklonenie_2: ciklično broene, prusteni na ostatucite (.. pokaži go otklonenieto ..) (.. razgunuto ..)
-
▼▼
Otklonenie_2: ciklično broene, prusteni na ostatucite
(.. skrij go otklonenieto ..)
(.. svij go ..)
(.. razguni go ..)
- ►► Neqo kato predgovor na vtoroto otklonenie (.. pokaži ..)
-
▼▼
Neqo kato predgovor na vtoroto otklonenie
(.. skrij ..)
- Osnovnata tema na besedata beše namiraneto na realnite koreni na polinom s realni koeficienti.
- Pri tova "poleto na dejstvie" e poleto na realnite čisla.
- No tova beše v matematičeskata zadača za namiraneto na realnite koreni na polinom s realni koeficienti.
- V purvoto otklonenie se otplesnux po vutrešnoto predstaväne na dannite v kompÿtrite.
- Tam, v purvoto otklonenie, veče napysnuxme poleto na realnite čisla.
- Vsičko v kompÿtrite se modelira i se predstavä s celi čisla.
- Analogovi kompÿtri i dori xibridni analogovo-cifrovi kompÿtri az ne sum viǧal.
- Vsičko minava na cifrovizacia i dori veče si e cifrovo (digitalno) - telefonni razgovori, televizia, zvykozapisi.
- Digitalnoto e po-nadeǧno, po-stabilno i po-lesno se ypravläva.
- Analogovoto može da rezonira sus zaobikaläqiut ni realen analogov sve̋t.
- Izgradili sme si virtyalen digitalen (cifrov) sve̋t.
- Tova beše oqe v purvoto otklonenie.
- Tre̋bva da go pročetete predi vtoroto otklonenie.
- I sega idva vtoroto otklonenie.
- Qe se razdelim s predstavata za bezkrajnost.
- Qe zamenim bezkrajnostta s cikličnost.
- V našite čoveški predstavi i yseqania ne̋ma bezkrajnost.
- Vsičko, do koeto se dokasvame ili koeto možem da poglednem, e otsam bezkrajnostta.
- Ne znaem kude e tä, bezkrajnostta.
- Lesno možem da si predstavim, če polovinata na niqoto - na nylata - e točno ravna na ce̋loto niqo (na ce̋lata nyla).
- No trydno možem da si predstavim, če polovinata na bezkrajnostta e točno ravna na ce̋lata bezkrajnost.
- Ili če ce̋lata bezkrajnost e ravna na polovinata si.
- Zatova qe se razdelim s predstavata za bezkrajnost.
- Izloženieto ne e na texničesko nivo. To e na pyblicistično nivo.
- Ednata cel e čitatelite da dobiut ne̋kakva predstava za cikličnostta v kompÿtrite.
- V tozi smisul tova e produlženie na purvoto otklonenie ot besedata.
- Ot dryga strana, podgotväm obstojna pyblikacia za raznite kalendari i za raznite kalendarni elementi.
- A tam ima mnogo primeri na ciklično broene.
- (.. skrij go predgovorut na vtoroto otklonenie ..) (.. skrij go vtoroto otklonenie ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Osnovnata tema na besedata beše namiraneto na realnite koreni na polinom s realni koeficienti.
- ►► Cikličnoto broene v ežednevieto (.. pokaži ..)
-
▼▼
Cikličnoto broene v ežednevieto
(.. skrij ..)
- Sedmicata.
- Ponedelnik, vtornik, sre̋da, četvurtuk, petuk, subota, nedelä .. i pak ponedelnik.
- I taka poveče ot tri xilädi godini.
- Bez prekusvane, bez pripluzgvane, bez greški.
- Mesecite.
- Änyari, fevryari, mart, april, maj, ÿni, ÿli, avgyst, septemvri, oktomvri, noemvri, dekemvri .. i pak änyari.
- I taka poveče ot dve xilädi godini.
- Ciferblatut na časovnicite.
- Edin časut, dva časut, tri časut, .., šest časut, .., devet časut, deset časut, edinadeset časut, dvanadeset časut, i pak edin časut.
- I taka otkakto go ima stariut časovnik.
- G-ža Petrova, načalna yčitelka.
- Vodi purvolaci, vodi vtoroklasnici, vodi tretoklasnici, vodi četvurtoklasnici, i pak pri purvolacite.
- I taka do pensia.
- E, da:
- Purvolacite ne su suqite, kakto predi četiri godinin - drygi su.
- Edin časut dnes po pladne ne e kato edin časut noqes, a puk ytre v edin časut koj znae kakvo qe stane.
- Prez tazgodišniut änyari be̋x s ce̋la godina po-star, otkolkoto be̋x prez minulogodišniut änyari.
- Tozi ponedelnik serialut po televiziata svurši, i drygiut ponedelnik qe počva dryg serial.
- Obače:
- Vse purvolaci, dečica malki.
- Časovnikut vse edin časut pokazva.
- I na stenniut kalendar piše vse "änyari".
- I sled tozi ponedelnik pak vtornik qe dojde.
- (.. skrij go cikličnoto broene v ežednevieto ..) (.. skrij go vtoroto otklonenie ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Sedmicata.
- ►► Cikličnoto broene v matematikata (.. pokaži ..)
-
▼▼
Cikličnoto broene v matematikata
(.. skrij ..)
- V predišnoto otklonenie beše napisano, če poävata na ponätietieto za nyla - izobretävaneto na čisloto nyla i na cifrata nyla,
koeto se e slyčilo sravnitelno naskoro, e dalo tlasuk na razvitieto na matematikata i na texnologiite.
- Ako časovnikovite ciferblati ne sledvaxu stara tradicia, označeniata vurxy te̋x qe̋xu da su ot 0 do 11.
- S terminite "pole" i "prusten" se označavat dve algebrični stryktyri, na koito v matematikata se davat opredelenia.
- Elementite im mogut da budut naričani čisla.
- I v dvete tezi stryktyri su vuzmožni običajnite aritmetični operacii subirane, izvaǧane i ymnoženie.
- Ima si nyla, koäto ne promenä čisloto, kum koeto e dobavena.
- Ima si i edinica, koäto ne promenä čisloto, s koeto e ymnožena.
- Vse̋ko pole v častnost e i prusten, no ne vseki prusten e pole.
- Edin prusten, za da bude pole, tre̋bva vinugi v nego da e vuzmožna operaciata delenie na čislo, koeto e različno ot nyla.
- Naprimer.
- Čislata 5 i 2 su elementi pone na tri poleta: na poleto na kompleksnite čisla, na poleto na realnite čisla i na poleto na racionalnite čisla.
- Ako čislata 5 i 2 gi razgleǧame kato elementi na pole, to možem da razdelim 5 na 2 i qe se polyči čislo ot suqoto pole: čisloto 2.5 (dve i polovina).
- Čislata 5 i 2 su elementi i na prustenut na celite čisla.
- Ako čislata 5 i 2 gi razgleǧame kato elementi na prustenut na celite čisla, to pri operaciata "5 deleno na 2" qe se polyčut dve čisla (dve čisla ot tozi prusten): častno 2 i ostatuk 1.
- Čislo 2.5 (dve i polovina) v tozi prusten ne̋ma.
- Da zabravim za poletata. Produlžavame samo s prustenite.
Ot ne̋kakva gledna točka, produlžavame s celite čisla.- Pri delenie na dve čisla ot edin prusten (pri nenylev delitel, razbira se) može da ne se nameri edno čislo ot tozi prusten kato rezyltat.
- No qe se namerüt dve čisla: častno i ostatuk.
- Da si pripomnim, če celta na tova vtoro otklonenie e da se razdelim s predstavata za bezkrajnost
i da ü zamenim s predstava za cikličnost.
- Kato imame na razpoloženie nylata i pozicionnoto predstaväne na čislata.
- Obiknoveno v desetičnata pozicionna brojna sistema.
- Da se ograničim do poslednite dve desetični cifri, do poslednite dva desetični razräda.
- Ako za dve celi položitelni čisla suvpadat poslednite dve cifri - edinicite i deseticite - v desetičnoto im predstaväne, neka da sme̋tame, če tezi dve čisla su identični.
- Taka se polyčava prusten, suduržaq točno 100 elementa - točno 100 "čisla", narečen "prusten na ostatucite po modyl 100" i označavan taka: Z100.
- Čislata ot tozi prusten obiknoveno se označavat taka: 0, 1, 2, .., 98, 99.
- V tozi prusten 12+12 e ravno na 24. Ama 92+12 e ravno na 4, zaqoto 104 e identično na 4
- V tozi prusten 0-6 e ravno na 94. Elementut 94 može da bude označen i taka: -6.
- S drygi dymi, ne̋mame nikakuv problem čast ot čislata v prustenut na ostatucite da gi sme̋tame za otricatelni.
- Vuzmožno e i vsičkite nenylevi elementi na tozi prusten da gi sme̋tame za otricatelni.
- Otklonenie za počivka. Da ne si pomislite, če decata ot 2-ri klas se yčut da sme̋tat v prustenut Z100. Makar tova done̋kude da e ve̋rno. Kraj na počivkata.
- Za vse̋ko ce̋lo čislo n po-gole̋mo ot 1 suqestvyva prusten na ostatucite po modyl n s označenie
Zn.
- Prustenut Zn sudurža točno n čisla: ot 0 do n-1.
- Otklonenie kum fizikata.
- Ne̋koi fizični ävlenia imat absolÿtno načalo i e estestveno tova načalo da bude otbele̋zvano s cifrata 0 (nyla).
- Naprimer, absolÿtnata nyla pri temperatyrata (minys 253 gradysa po Celzij). Po-niska temperatyra ne̋ma.
- Xorata ne vinugi su osuznavali suqestvyvaneto na absolÿtnata temperatyrna nyla.
- I dosega se izpolzvat temperatyrni skàli, kudeto nylata ne e v absolÿtnoto načalo,
a na ne̋koe drygo yslovno prieto me̋sto:
- Pri skàlata na Celzij nylata e na točkata na zamruzvane na vodata.
- Pri skàlata na Fahrenheit nylata e naj-niskata temperatyra, izmerena v Dancig (Gdansk) prez zimata na 1708-1709.
- Vremeto suqo ima absolÿtno načalo - golemiut vzriv, no tova absolÿtno načalo e absolÿtno nedostižimo.
- Zatova pri otčitane na vremeto vinugi se nalaga da slagame ne̋kude yslovna nyla.
- A̋ pri roǧenieto na Iisysa Xrista.
- A̋ pri suzdavaneto na svetut spored Bibliata.
- A̋ ot osnovavaneto na gradut Rim.
- A̋ v drygi točki ot vremeto.
- Kraj na otklonenieto kum fizikata.
- Da vuvedem absolÿtno otbroävane na dnite (na denonoqiata) ot ne̋kakvo yslovno načalo.
- Za nylev den qe obävü 16-ti april 1916. 27499
- Izbran e za po-lesni smetki.
- Tova e purvata nedelä sled vuveǧaneto na grigorianskiut kalendar v Bulgaria.
- Qe go nareku tozi den DTV: de̋do trugva na vojna.
- Absolÿtno broene na dnite ot DTV.
- Malko ot dnite su dobri za Bulgaria. Mnogo malko.
- Na den 882 ot DTV e probivut na Dobro pole.
- Na den 3287 ot DTV teroristi vzrivävat xram v centurut na Sofia i ybivat okolo 200 dyši.
- Na den 10373 ot DTV Bulgaria popada v lapite na Stalin.
- Na den 26706 ot DTV stotina xilädi mÿsÿlmani bulgarski graǧani su izgoneni ot stranata.
- Na den 29514 ot DTV - edin ot malkoto xybavi dni - BSP zagybi vlastta - otstupi ü za okolo 8 godini.
- Na den 30553 - naj-xybaviut den za Bulgaria ot DTV nasam - Evropejskiut suÿz reši da prieme Bulgaria za člen.
- Nie xorata ne sme kompÿtri i ne otčitame dnite taka.
- V ežednevieto si v mnogo slyčai otčitame dnite ciklično.
- Delim čisloto - broüt na dnite ot DTV - na 7 i broim ciklično. Prilagame Z7: prustenut na ostatucite po modyl 7.
- Imame si imena za elementite na tozi prusten:
{0} nedelä, {1} ponedelnik, {2} vtornik, {3} sre̋da, {4} četvurtuk, {5} petuk, {6} subota. - Probivut na Dobro pole e bil v nedelä. [882 deleno na 7: častno 126 i ostatuk 0]
- Golemiut atentatut v sofijski xram e bil v četvurtuk. [3287 deleno na 7: častno 469 i ostatuk 4]
- Bulgaria popada v lapite na Stalin v subota. [10373 deleno na 7: častno 1481 i ostatuk 6]
- Todor Živkov ü durža onazi si reč v ponedelnik. [26706 deleno na 7: častno 3815 i ostatuk 1]
- Beše vtornik, kogato BSP otstupi vlastta za okolo 8 godini. [29514 deleno na 7: častno 4216 i ostatuk 2]
- Rešenieto za priemaneto na Bulgaria v Evrosuÿzut be vzeto v petuk. [30553 deleno na 7: častno 4364 i ostatuk 5]
- Da vuvedem absolÿtno otbroävane na časovete ot ne̋kakvo yslovno načalo.
- Neka tova yslovno načalo e nastupvaneto na novata 2024 godina.
- V čas nomer 15 (časovnikovata strelka soči 3 na ciferblatut) slyšax na zapis vienskiut novogodišen koncert. [15 deleno na 12: častno 1 i ostatuk 3]
- V čas nomer 156 (časovnikovata strelka soči 12) änyarskata mi pensia e postupila po smetkata mi. [156 deleno na 12: častno 13 i ostatuk 0]
- V čas nomer 906 (časovnikovata strelka soči 6) fevryarskata mi pensia e postupila po smetkata mi. [906 deleno na 12: častno 75 i ostatuk 6]
- V čas nomer 1602 (časovnikovata strelka soči 6) martenskata mi pensia postupi po smetkata mi. [1602 deleno na 12: častno 133 i ostatuk 6]
- V čas nomer 2167: časovnikovata strelka sočeše 7 - mrudnux ü da soči 8 zaradi le̋tnoto časovo vreme. [2167 deleno na 12: častno 180 i ostatuk 7]
- Sviknuli sme da otčitame časovete ciklično - v prusten po modyl 12.
- (.. skrij go cikličnoto broene v matematikata ..) (.. skrij go vtoroto otklonenie ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- V predišnoto otklonenie beše napisano, če poävata na ponätietieto za nyla - izobretävaneto na čisloto nyla i na cifrata nyla,
koeto se e slyčilo sravnitelno naskoro, e dalo tlasuk na razvitieto na matematikata i na texnologiite.
- ►► Cikličnoto broene v kompÿtrite (.. pokaži ..)
-
▼▼
Cikličnoto broene v kompÿtrite
(.. skrij ..)
- Ako čislata se predstavät v radix 10 (desetična pozicionna brojna sistema, r = 10)
i se ograničim do osem razräda (osem cifri, n = 8), qe možem da polyčim sme̋tane
v prustenut na ostatucite po modyl 100000000. Sto miliona - deset na osma -
r na stepen n -
tova e moqnostta na prustenut, tolkova elementa toj sudurža.
- Tezi sto miliona na broj čisla su ot 0 (00000000) do 99999999.
- Poslednoto ili "naj-visokoto" čislo e 99999999.
- Ako kum nego dobavim 1 qe polyčim 0 (00000000) i 1 prenos. Eto kak:
- Dobaväme edinica kum mladšiut razräd. V nego ima 9. Stava 10, toest 0 (nyla) i 1 (edinica) prenos kum staršiut razräd (edno na ym).
- Tazi edinica, koäto e prenos ot mladšiut razräd, ü dobaväme kum sledvaqiut razräd. V nego ima pak 9. Stava 10, toest 0 (nyla) i 1 (edinica) prenos kum staršiut razräd (pak edno na ym).
- .. I taka natatuk. Na vse̋ka pozicia se polyčava 0 (nyla) i 1 (edinica) prenos.
- Kum staršiut naličen razräd dobaväme edinicata, koäto e prenos ot predišniut razräd. Polyčava se pak 0 (nyla) i edinica prenos, kojto ne̋ma veče kakvo da go pravim.
- Rezyltatut e 0 (00000000).
- Tazi smetka be napravena v prustenut Z100000000.
- Da se zapitame: qom v tozi prusten 99999999+1 = 0, nima elementut 99999999 ne e -1.
- Da, taka e. V prustenut Z100000000 99999999 e identično s -1. Kakto i -1 e identično s 99999999.
- Vutrešno v realnite kompÿtri čislata se predstavät v radix 2, dvoično.
- Edna dvoična cifra se nariča bit.
- Edin bit može da ima stojnost ili 0 (nyla) ili 1 (edinica).
- Ne̋koga imaše kompÿtri s naj-različna razrädnost.
- Segašnite su 64-bitovi ili 32-bitovi.
- Da označim razrädnostta s n - radix-ut si e 2.
- Suotvetniut prusten se označava taka: Z2**n (prusten Ζ s moqnost 2 na stepen n).
- Trydno e čovek da susredotoči vnimanieto si vurxy 32 bita, a za 64 - da ne govorim.
- Prustenite Z2**64 i Z2**32 ne̋ma kak da gi izpolzvam za ilÿstracia.
- Zatova qe priema 8 bita, makar 8-bitovi kompÿtri da ne̋ma otdavna.
- Prustenut Z256 e s moqnost 256 (dve na osma).
- Toj sudurža 256 elementa - 256 čisla.
- Tezi 256 čisla, naredeni po "visočina", su:
- Desetično ot 0 do 255.
- Dvoično ot 0 (00000000) do 11111111.
- Osmično ot 0 do 377.
- Šestnadesetično ot 0 (00) do FF.
- Ne̋ma kombinacia ot 8 bita, koäto da ne e prebroena i da ne e vklÿčena v tezi 256 elementa ili 256 čisla.
- Poslednoto ili "naj-visokoto" čislo e 11111111.
- Ako kum nego dobavim 1 qe polyčim 0 (00000000) i 1 prenos. Eto kak:
- Dobaväme edinica kum mladšiut razräd. V nego ima 1. Stava 10, toest 0 (nyla) i 1 (edinica) prenos kum staršiut razräd (edno na ym).
- Tazi edinica, koäto e prenos ot mladšiut razräd, ü dobaväme kum sledvaqiut razräd. V nego ima pak 1. Stava 10, toest 0 (nyla) i 1 (edinica) prenos kum staršiut razräd (pak edno na ym).
- .. I taka natatuk. Na vse̋ka pozicia se polyčava 0 (nyla) i 1 (edinica) prenos.
- .. Kakto po-gore pri radix 10, taka i sega pri radix 2.
- Kum staršiut naličen razräd dobaväme edinicata, koäto e prenos ot predišniut razräd. Polyčava se pak 0 (nyla) i edinica prenos, kojto ne̋ma veče kakvo da go pravim.
- Rezyltatut e 0 (00000000).
- Tazi smetka be napravena v prustenut Z256.
- Da se zapitame: qom v tozi prusten 11111111+1 = 0, nima elementut 11111111 ne e -1.
- Da, taka e. V prustenut Z256
- 11111111 (desetično 255) e identično s -1. Kakto i -1 e identično s 11111111.
- 11111110 (desetično 254) e identično s -10 (desetično -2).
- 11111100 (desetično 252) e identično s -100 (desetično -4).
- 11111000 (desetično 248) e identično s -1000 (desetično -8).
- 11110000 (desetično 240) e identično s -10000 (desetično -16).
- 11100000 (desetično 224) e identično s -10000 (desetično -32).
- 11000000 (desetično 192) e identično s -1000000 (desetično -64).
- 10000000 (desetično 128) e identično s -10000000 (desetično -128).
- Razbira se, nylata 00000000 e identična s -0 (minys nyla), kakto vuv vseki prusten.
- A qom desetičnoto 255 (dvočno 11111111) e identično s -1, kato ymnožin tova ravenstvo s -1, dali e ve̋rno, če v tozi prusten 1 (edinicata, 00000001) e identična s -255 (desetično)?
- Da, razbira se.
- I tuj, nabele̋zani su tri vuzmožni interpretacii na elementite (na čislata) ot prustenut Z256.
- Imajte pred vid realniut obq slyčaj: prustenut e Z2**32 ili Z2**64.
- Aritmetičnite dejstvia subirane, izvaǧane, ymnoženie i delenie su definirani v prustenut nezavisimo ot interpretaciata na elementite my.
- Zabeležka. Pri delenieto delitelüt ne biva da e nyla, a rezyltatite su dva: ostatuk i častno.
- Trite interpretacii su slednite:
- Adresna interpretacia. V ezicite S&C++ se označava unsigned int ili samo unsigned.
- Čislata su naredeni po visočina ot naj-niskoto (nylata, 00000000) do naj-visokoto (11111111, desetično 255).
- Elementite 01111111 (desetično 127) i 10000000 (desetično 128) su prosto dva susedni adresa.
- Interpretacia sus znak. V ezicite S&C++ može da se polzva se označava signed int ili samo int (integer).
- Nylata 00000000 e v razpoložena v sredàta meǧy položitelnite i otricatelnite čisla.
- Elementite ot 00000001 (desetično 1) do 01111111 (desetično 127), 127 na broj, kakto su si naredeni po visočina, se interpretirat kato položitelni čisla ot 1 do 127.
- Elementite ot 11111111 (desetično 255) do 10000000 (desetično 128), 128 na broj, se interpretirat kato otricatelni čisla ot -1 do -128.
- Tretata vuzmožna interpretacia ne se polzva.
- Vsički čisla osven nylata - 255 na broj - se interpretirat kato otricatelni:
- ot 11111111 (-1) do 00000001 (minys 255 desetično).
- Adresna interpretacia. V ezicite S&C++ se označava unsigned int ili samo unsigned.
- Kakva e interpretaciata - dali e adresna (bezznakova, unsigned) ili e znakova, ima značenie v tri momenta:
- Purvo. Kak da se pokazvat elementite na prustenut v čoveški vid.
- Vtoro. Kak da se interpretirat sravneniata meǧy elementite na prustenut.
- Pri znakova interpretacia 11111111 e -1 i e po-malko ot nylata 0.
- Pri adresna interpretacia 11111111 e 255 desetično i e po-gole̋mo ot nylata 0.
- Na nisko nivo ima različni operacii za sravnenie: ednata se polzva pri adresna interpretacia (koe e po-visoko i koe e po-nisko), a drygata se polzva pri znakova interpretacia (koe e po-gole̋mo i koe e po-malko).
- V ezicite ot visoko nivo (naprimer S&C++) sravneniata se označavat ednakvo, no za vse̋ko čislo tre̋bva da se znae v kakuv vid sravnenia yčastva (unsigned ili signed).
- Treto. Koga da se markira osobena sityacia.
- Pri znakova interpretacia, ako kum 01111111 (127 desetično) dobavim edinica, qe se polyči prepulvane (integer overflow), tuj kato rezyltatut minava v diapazonut na otricatelnite čisla.
- Suqata operacia nad suqite elementi na prustenut, no pri adresna interpretacia, ne biva da se markira kato osobena sityacia.
- Pri adresna interpretacia osobeni sityacii vuznikvat v drygi slyčai.
- Naprimer, osobena sityacia ot takuv tip e stack overflow.
- (.. skrij go cikličnoto broene v kompÿtrite ..) (.. skrij go vtoroto otklonenie ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Ako čislata se predstavät v radix 10 (desetična pozicionna brojna sistema, r = 10)
i se ograničim do osem razräda (osem cifri, n = 8), qe možem da polyčim sme̋tane
v prustenut na ostatucite po modyl 100000000. Sto miliona - deset na osma -
r na stepen n -
tova e moqnostta na prustenut, tolkova elementa toj sudurža.
- ◄► (.. skrij go otklonenieto za cikličnoto broene ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü vtorata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ◄► (.. skrij ü vtorata beseda ..) (.. svij ü ..) (.. posvij ili porazguni ..) (.. razguni ü ..) .. kum načaloto ..
►► 4. Broderia na trakaq printer (.. pokaži ü tretata beseda ..) (.. razgunuto ..) .. kum načaloto ..
- Az kato stydent po bakalavurska programa v matematičeskiut fakyltet.
- Po spomeni ot le̋toto na 1977 - na staž v Turnovo. ::2023-06-13 18:09::
▼▼ 4. Spomeni ot le̋toto na 1977: Broderia na trakaq printer (.. skrij ü tretata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
::2023-06-13 18:09::- ►► Az kato stydent po bakalavurska programa v matematičeskiut fakyltet (.. pokaži ..) (.. razgunuto ..) (.. skrij ü tretata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
-
▼▼
Az kato stydent po bakalavurska programa v matematičeskiut fakyltet
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
- ►► Reformite na Blagovest Sendov v matematičeskiut fakyltet na sofijskiut yniversitet (.. pokaži gi ..)
-
▼▼
Kogato be̋x stydent, Blagovest Sendov beše rektor na yniversitetut.
(.. skrij ..)
- No predi tova e bil dekan na matematičeskiut fakyltet. I kato takuv e napravil slednite reformi ili pone e sudejstval za te̋x:
- Po primerut na civilizovaniut sve̋t visšeto obrazovanie po matematika v sofijskiut yniversitet e stanulo dvystepenno:
bakalavurska i magisturska stepen.
- Konspirativnoto ime na bakalavurskata stepen beše "blok_A", a na magisturskata stepen - "blok_B".
- Imaše i "blok_C" - aspirantyra. Zavuršvaše se s kandidatska stepen. Sega tova se priravnäva na doktorska stepen.
- Ne poznavam nikogo, kojto da si e ostanul samo s "blok_A" i bakalavurska stepen. No veroätno e imalo takiva. Te polyčavaxu diploma za visše obrazovanie po matematika. I možexu da rabotüt kato kompÿturni programisti v izčislitelnite centrove.
- Počti vsički kolegi, koito zavuršvaxu bakalavurska stepen po matematika s konspirativno ime "blok_A", produlžavaxu obrazovanieto si ili v "blok_B" za magisturska stepen, ili v "blok_D", kudeto polyčavaxu pedagogičeska kvalifikacia za yčiteli po matematika.
- Az sum zavuršil i s dvete kvalifikacii - magistur po matematika i yčitel po matematika.
- No prez ce̋lata si profesionalna kariera sum rabotil samo kato kompÿturen programist i softweren inžener.
- Anglijskiut ezik - zadulžitelen za bakalavrite po matematika.
- Srednoto obrazovanie vklÿčvaše i obyčenie po zapaden ezik - frenski, nemski ili anglijski, no zrelostnicite ne go ysvoävaxme tozi ezik.
- Estestveno beše obyčenieto po zapaden ezik da produlži i vuv visšeto yčebno zavedenie.
- Vuv fakyltetut po matematika na sofijskiut yniversitet zadulžitelen beše anglijskiut ezik.
- Prez semestrite ne yčexme nito anglijski, nito dryg zapaden ezik.
- Za nas se organiziraxu intenzivni letni kyrsove: prez le̋toto sled purvi kyrs (1975) i prez le̋toto sled vtori kyrs (1976).
- Intenzivni kyrsove - vseki den po šest časa anglijski.
- Imaše otdelni grypi za načinaeqi kato mene i za naprednuli (koito su yčili anglijski kato srednoškolci).
- Az si ostanux s gimnazialnoto nivo po frenski ezik i tre̋bvaše da započnu da yču anglijski ezik.
- Za mene tova beše dobur kusmet.
- Otklonenie za ryskiut ezik. Razčitaše se, če ot 5-ti do 9-ti klas yčaqite se su go ysvoili ryskiut ezik. Vinugi ni se e nalagalo da polzvame yčebna literatyra na ryski ezik i ne sme imali problemi nito az, nito kolegite. Ne može ce̋lata specializirana literatyra da se preveǧa i izdava na bulgarski. Kraj na otklonenieto za ryskiut ezik.
- Integracia na Fakyltetut po matematika kum Sofijskiut yniversitet i na
Institytut po matematika kum BAN vuv Edinen centur po matematika.
- Ne mogu da formyliram kakvo značenie imaše tova za mene. No za ne̋koi moi kolegi tova beše važno.
- Sega v Bulgaria vsički yčut anglijski ot detskata gradina, vuv visšeto obrazovanie su otdeleni magisturska i bakalavurska stepen ne samo v matematikata.
- No integraciata meǧy sofijskiut yniversitet i BAN edva li e ystoe̋la na vremeto.
- (.. skrij gi reformite na Blagovest Sendov ..) (.. skrij gi spomenite mi ot 1975..76..77 ..) (.. svij gi ..) (.. razguni gi ..) .. kum načaloto ..
- ►► Ne sum xodil na letni stydentski brigadi. (.. pokaži ..)
-
▼▼
Ne sum xodil na letni stydentski brigadi.
(.. skrij ..)
- Esennite stydentski brigadi ne su mi se razminuli.
- Ämbolskata konservena fabrika.
- Razni sela iz Severozapadna Bulgaria.
- No na letni stydentski brigadi ne sum xodil.
- Sled purvi i vtori kyrs stydentite ot matematičeskiut fakyltet na sofijskiut yniversitet poseqavaxme intenzivni kyrsove po anglijski i be̋xme osvobodeni ot letni brigadi.
- Sled treti kyrs prez le̋toto tre̋bvaše da izkarame ne̋kakuv staž.
- Veroätno taka e bilo i v drygite fakylteti i vyzove - staž vmesto brigada sled treti kyrs.
- Kato yčenik v turnovskata gimnazia sum xodil i na letni, i na esenni brigadi.
- Pomnü, če kogato se ybi Gyndi, be̋x na brigada v elenskiut balkan za brane na malini.
- Pomnü i edna esenna brigada v Resen, v predpriatieto za proizvodstvo na semena.
- Dinite tam gi pyskaxu v edna mašina da gi mačka i da otdelä semkite.
- Äde̋xme dini na korem, no semkite tre̋bvaše da gi plÿem i da gi predavame.
- A be sega koj ü pribira selsko-stopanskata rekolta?
- Pulno e s malini na pazarut. Koj se bode i gi bere tezi malini?
- (.. skrij zaqo ne sum xodil na letni brigadi ..) (.. skrij gi spomenite mi ot 1975..76..77 ..) (.. svij gi ..) (.. razguni gi ..) .. kum načaloto ..
- Esennite stydentski brigadi ne su mi se razminuli.
- ►► Podgotovkata mi za budeqata mi trydova dejnost. (.. pokaži ..)
-
▼▼
Podgotovkata mi za budeqata mi trydova dejnost.
(.. skrij ..)
- Diplomiral sum magistur po matematika sus specialnost "realen i fynkcionalem analiz" i s dopulnitelna kvalifikacia za yčitel po matematika.
- No prez ce̋lata si profesionalna kariera sum rabotil samo kato kompÿturen programist i softweren inžener.
- Ne tre̋bva da si mislite, če dvygodišnoto mi obyčenie po magisturskata programa e bilo za mene bezpolezno.
- Naprotiv.
- Bix preporučal na vsički, koito imat tazi vuzmožnost, da ne ostavat s bakalavurska stepen, a da si izkarat i diploma za magistur.
- Purvo. Diplomata za magisturska stepen e cenna. S neü yniversitetut yveräva budeqite Vi rabotodateli, če Vie imate ymeniata da oglavite proekt.
- Veroätno, tova e ve̋rno ne samo v oblastta na matematikata i v kompÿturnata indystria, a i v drygi oblasti.
- Dymata "magistur" može da se prevede kato "majstor".
- Vtoro. Obyčenie po magisturskata programa na mene mi ü razširi obqata kyltyra.
- A za rabotata v kompÿturnara indystria taka i taka e nyžno postoänno čovek da se yči na novi neqa.
- Zaqoto tova e nova burzo razvivaqa se oblast.
- Lično az se be̋x zadulbočil v matematičeskata logika i osnovite na matematikata.
- Treto. Malovažno, no konkretno. Započnux rabota na 1979-10-01 s načalna zaplata 120 leva.
- Ako si be̋x ostanul s bakalavurska stepen, startovata mi zaplata qeše da e 105 leva.
- No naistina, povečeto ot texničeskite ymenia, koito mi be̋xu nyžni, za da započnu rabota v kompÿturnata indystria,
gi be̋x ysvoil prez obyčenieto mi po bakalavurskata programa.
- Na purvo me̋sto, fyndamentalni kyrsove po algebra, vklÿčitelno linejna algebra.
- Na vtoro me̋sto, fyndamentalni kyrsove po ACM.
- Purva i vtora čast suotvetno v purvi i vtori kyrs.
- Sukraqenieto ACM imaše dve razšifrovki:
- Na bulgarski: Avtomatični Smetačni Mašini.
- Na anglijski: Automatical Computing Machines.
- I na treto me̋sto, kyrsove po čisleni metodi i po izsledvane na operaciite (optimirane).
- I vsičko tova s praktičeski ypražnenia.
- Nared s fyndamentalnite vuprosi, v kyrsut po ACM se ysvoävaxu i slednite texničeski ymenia:
- JCL (Job Control Language) za DOS/360.
- Ezicite ot tozi tip sega su mnogo po-razviti i se naričat shell scripts.
- Ezikut za programirane PL/1.
- Toj stanu "rodniut mi ezik za programirane".
- Prez purvite godini na profesionalnata si kariera rabotex na nego.
- Na vtoriut nacionalen konkyrs po programirane prez 1986, kudeto spečelix gole̋mata nagrada, se sustezavax na PL/1.
- Ezikut za programirane Fortran.
- Kato stydent go be̋x ysvoil dobre.
- Povečeto praktičeski ypražnenia gi pravexme na Fortran.
- V profesionalnata si kariera obače ne sum polzval Fortran.
- JCL (Job Control Language) za DOS/360.
- Otklonenie. АСМ ili ЕИМ?
- Na profesionalen žargon dymata kompÿtri nikoga ne e bila smesvana s dymata kalkylatori.
- Na profesionalen žargon vinugi se e ypotrebävala i dymata mašini, no samo sus značenieto kompÿtri.
- I trite tezi dymi kalkylatori, kompÿtri i mašini su se ypotrebävali, otkakto se pomnü.
- Abreviatyrite (sukraqeniata) ASM i EIM su elementi na kancelarskiut ezikov stil i ne se ypotrebävaxu v ystnata reč.
- АСМ: Avtomatični Smetačni Mašini.
- ACM: Automatical Computing Machines.
- ЕИМ: Elektronni Izčislitelni Mašini.
- ЭВМ: Электронные Вычислительные Машины.
- Abreviatyrata АСМ po-točno izrazäva suqnostta na kompÿtrite kato avtomatični mašini, za razlika ot kalkylatorite.
- No navse̋kude izvun fakyltetut po matematika graǧanstvenost dobi sukraqenieto ЕИМ, koeto točno suotvetstvaše na ryskoto ЭВМ.
- Makar če abreviatyrite ЕИМ (ЭВМ) su netočni, poneže elektronnite kalkylatori su suqo taka elektronni izčislitelni mašini, no ne su kompÿtri.
- Otklonenie v otklonenieto.
- Mašinata, koäto X̌on Atanasov, profesor po fizika v yniversitetut v Aöva, e započnul da konstryira, e bila zamislena kato elektronna izčislitelna mašina, no ne kato programiryem kompÿtur.
- Avtomatičnata smetačna mašina, koäto nemecut Konrad Cyze e konstryiral, ne e bila elektronna, no e bila istinski programiryem kompÿtur.
- Kraj na otkloneniata.
- (.. skrij ü podgotovkata mi kato stydent po bakalavurskata programa ..) (.. skrij gi spomenite mi ot 1975..76..77 ..) (.. svij gi ..) (.. razguni gi ..) .. kum načaloto ..
- ◄► (.. skrij gi spomenite mi ot 1975..76..77 ..) (.. svij gi ..) (.. razguni gi ..) (.. skrij ü tretata beseda po spomenite mi ot 1977 ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Na staž v Turnovo (.. pokaži ..) (.. skrij ü tretata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
-
▼▼ Na staž v Turnovo
(.. skrij ..)
- Kato stydenti po bakalavurska programa sled treti kyrs tre̋bvaše da izkarame ne̋kakuv proizvodstven staž.
- Az i oqe edin kolega karaxme stažut si v turnovskiut teritorialen izčislitelen centur.
- Le̋toto na 1977.
- Kolegite ot teritorialniut izčislitelen centur be̋xu taka dobri da ni razrešavat da gledame i da pipame, bez da ni davat zadači.
- Nikak ne ni ograničavaxu, no i nikak ne razčitaxu na nas pri razvojnite si i proizvodstvenite si zadači.
- Teritorialniut izčislitelen centur beše oborydvan s mašina ЕС ЭВМ, mladši model, bulgarsko ili suvetsko proizvodstvo.
- Po onova vreme ne me interesyvaxu po-točni texničeski danni i ne̋ma kak da pomnü.
- (.. skrij gi spomenite mi za stažut v Turnovo ..) (.. skrij ü tretata beseda po spomenite mi ot 1977 ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Broderia na trakaq printer (.. pokaži ..) (.. razgunuto ..) (.. skrij ü tretata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
-
▼▼ Broderia na trakaq printer
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
- ►► Kato si ne̋max dryga rabota, rešix da izbrodiram kartinka na printer.. (.. pokaži ..)
-
▼▼
Prez le̋toto na 1977,
(.. skrij ..)
- dokato be̋x na staž v turnovskiut teritorialen izčislitelen centur,
- kato si ne̋max dryga rabota,
rešix da izbrodiram kartinka na printer.
- Po onova vreme se razprostranävaxu podobni broderii.
Po-izvestnite be̋xu:- "Izplezil mi se e Ajnqajn"
- "Majmyna v dulbok razmisul se počesva zad yxoto"
- Kalendar za tekyqata godina
- Xorata si gi razpečatvaxu i si gi lepe̋xu po stenite.
- Veroätno i v turnovskiut teritorialen izčislitelen centur e imalo takiva.
- Izpolzvaše se dostupnata pečatna baza s cel zabavlenie.
- Takiva izbrodirani za trakaq printer kartinki tre̋bvaše da se gledat otdaleče.
- Izbrax si da izbrodiram slednata podxodäqa grayscale kartinka:
- Be̋x ü nameril v Turnovo v ne̋kakvo spisanie.
- (.. skrij go rešenieto mi da brodiram na printer ..) (.. skrij ü broderiata na printer ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Printeri: trakaqi, sturžeqi, rumžaqi.. (.. pokaži ..)
-
▼▼
Printeri: trakaqi, sturžeqi, rumžaqi..
(.. skrij ..)
- Suvremennite printeri su lazerni.
- Te proizveǧat ce̋la stranica navednuž.
- Pri rabota rumžut priglyšeno ili suvsem tixo.
- Lazernite printeri zamestvat ne̋kogašnite ploteri pri proizvodstvoto na čerteži.
- Sevremennite cvetni lazerni printeri mogut da proizveǧat kartinki s fotografsko kačestvo.
- Da brodiram kartinka na printer se nalagaše, samo zaqoto togava - prez 70-te, ne̋maše lazerni printeri.
- Dryg vid printeri su iglenite.
- Pri te̋x pišeqa glava se dviži po xartiata i s ydari ot iglički otpečatva znacite.
- Pri dviženie na iglenata glava po xartiata se čyva sturžene.
- Miniatÿrnite iglički v pečataqata glava mogut da izrisyvat praktičeski vse̋ka bykva i vseki jeroglif.
- No kartinka, proizvedena s takuv printer, ne̋ma da ima fotografsko kačestvo - tä vinugi qe izgleǧa kato broderia.
- Sega sturžeqi printerčeta v miniatÿrni razmeri se izpolzvat za pečat na razni razpiski i kasovi beležki.
- Stignuxme i do linejnite printeri (line printers), deto trakat.
- Veče ne̋ma takiva - izmesteni su ot tixo rumžaqite lazerni printeri, koito prevuzxoǧat linejnite trakaqi printeri i po burzina, i po kačestvo.
- Prez 70-te i 80-te, povečeto kompÿtri y nas be̋xu oborydvani s linejni printeri polsko proizvodstvo.
- Takuv imaše i v turnovskiut teritorialen izčislitelen centur, kudeto prez le̋toto na 1977 karax staž.
- Barabanut na trakaq lineen printer ydrä xartiata i s edin ydar otpečatva ce̋l red.
- No predi da ydari, na vse̋ka pozicia se ystanoväva relefnata figyrka na suotvetnata bykva ili cifra.
- S pomoqta na elektronikata i finata mexanika.
- Takiva relefni figyrki imaše po vurxovete na lostčetata na starite pišeqi mašini (typewriters), kato pri te̋x tezi lostčeta se zadvižvaxu s klaviši.
- Dokolkoto si spomnäm, linejnite printeri imaxu po 132 znaka na red.
- Može da e imalo i po-široki printeri.
- Imaše specialna xartia za linejni printeri.
- Proizveǧaše se s ne̋kolko standartni širini.
- Obiknoveno edna stranica ot takava xartia subiraše 66 reda, otpečatani na lineen printer.
- Printerut možeše da se programira da ydrä na edin i suq red poveče ot vednuž, otpečatvajki različni tekstove.
- Naprimer, s vtori i treti ydar ne̋koä dyma možeše da se ydebeli (bold face).
- No mnogo ydari na edno me̋sto možexu da skusat xartiata.
- Dokato edin sturžeq iglen printer bi mogul da se nastroi taka, če igličkite my da mogut da otpečatvat ogromno množestvo znaci (firmeni emblemi, kitajski jeroglifi), za linejnite printeri tova beše nevuzmožno.
- Edin lineen printer razpolagaše s ograničen nabor ot znaci - okolo 90, toest po okolo 90 relefni figyrki za bykva ili cifra na vse̋ka ot 132-te pozicii na edin red.
- Latinskoto A i kirilskoto A se otpečatvaxu s edna i suqa figyrka, razbira se.
- Da ne govorim, če te i se kodiraxa ednakvo v DKOI/EBCDIC.
- (.. skrij gi vidovete printeri ..) (.. skrij ü broderiata na printer ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- Suvremennite printeri su lazerni.
- ►► Perfokarti vtora ypotreba (.. pokaži ..)
-
▼▼
Perfokarti vtora ypotreba - takiva izpolzvax..
(.. skrij ..)
- Po vremeto, kogato be̋x na staž v turnovskiut teritorialen izčislitelen centur - stava dyma za 1977,
ne̋maše dryg način da se vkara neqo v kompÿturut osven ot perfokarti.
- Stava dyma za kompÿtur ЕС ЭВМ, analog na mladši model na IBM/360.
- Tuj če kakto programata mi, koäto da nakara trakaqiut printer da brodira, taka i dannite za samata broderia
tre̋bvaše da se vuvedut v kompÿturut ot perfokarti, sled kato programata i dannite se nadypčut na perfokarti.
- Firmata IBM e imala razvita texnologia s perfokarti - nekompÿturna texnologia - oqe ot kraüt na 19-ti vek.
- Xoleritova texnika se e naričala. Y nas ne e bivala vnedrävana.
- Az rabotex s perfokarti v načaloto na trydovata si dejnost.
- Be̋x sviknul i da gi razčitam.
- Spomnäm si, če pone̋koga kazvax: perfokarti mogu da četu, no magnitni lenti - ne.
- Ot dnešna gledna točka, togavašnata praktika - i s perfokartite, i s printerite - beše neopravdano praxosvane na xartia.
- Obače ne̋maše dryg način da se vkara neqo v kompÿturut osven ot perfokarti.
- Ne možeše prosto ot klaviatyrata.
- Ne̋maše i način kompÿturut da pokaže neqo na čovek, osven izle̋zlo na printerut.
- Onezi kompÿtri ne̋maxu dostup do ekrani.
- Rešix da ne natovarvam dopulnitelno kolegite ot turnovskiut teritorialen izčislitelen centur s prerazxod na resyrsi.
A perfokartite be̋xu proizvodstven resyrs.- Rešix za celite na broderiata da izpolzvam perfokarti vtora ypotreba.
- Ne sum viǧal ne̋koj dryg ne̋koga da e polzval perfokarti vtora ypotreba.
- Kakto JCL/360 (the job control language, togavašniut shell),
taka i ezicite za programirane (COBOL, Fortran, PL/1)
često iziskvaxa kusi redove ot programata,
i sledovatelno - perfokarti s malko perforiran tekst.- Naprimer, ce̋la perfokarta beše nyžna za označavane na "kraj na danni" (end-of-data), koäto imaše perforacia "/*" samo v purvite dve pozicii.
- Perfokartata imaše 80 pozicii.
- Prerovix xartienite otpaduci i namerix v dostatučno količestvo perfokarti s perforacia samo v purvite 20 pozicii.
- Izpolzvax gi, za da perforiram na te̋x dannite ot broderiata.
- Izpolzvax srednite 50 pozicii na vse̋ka perfokarta.
- Poslednite pozicii na perfokartata ne be̋xu nadeǧni:
četecut na perfokarti (reader-ut) često se zapuvaše na poslednite pozicii,
može bi perforacionnite mašini ne pravexu dobri dypki v kraüt na perfokartata.
- wikipedia: Computer programming in the punched card era
- (.. skrij gi perfokartite ..) (.. skrij ü broderiata na printer ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- Po vremeto, kogato be̋x na staž v turnovskiut teritorialen izčislitelen centur - stava dyma za 1977,
ne̋maše dryg način da se vkara neqo v kompÿturut osven ot perfokarti.
- ►► Pikseli na trakaq printer (.. pokaži ..)
-
▼▼
Pikseli na trakaq printer
(.. skrij ..)
- V suvremenni termini, formatut na broderiata ne̋ma kak da e bil dryg osven bitmap.
- Tazi kartinka tyka e 129 piksela na širina i 185 piksela na visočina.
Tova dava predstava za suotnošenieto.
Kartinkata, koäto az izbrodirax za trakaq printer,
beše okolo 100 piksela na širina i okolo 144 na visočina. - Tuj kato edna stranica na trakaq printer beše 66 reda,
dve stranici - 132 piksela na visočina, to
izbrodiranata kartinka zaxapvaše treta stranica. - Ostatukut ot tretata stranica go zapulnix s kalendar.
- Kartinkata e greyscale. Zatova ü izbrax - zaqoto ne beše cvetna.
- Dulbočinata ï (depth) sega e trydno da ü opredelü.
- Tä beše poveče ot dva bita.
- Printerut ydräše dva puti na edin red,
- kato pri vseki ydar vuv vseki piksel
- možeše da ima ne̋koj ot znacite "*.Ž/\#", a može bi i drygi.
- Samoto brodirane beše pipkava rabota - samo za mene.
- Doosuvuršenstvaneto na kartinkata beše oqe po-pipkava rabota.
- To veče beše čast ot debugvaneto na programata.
- Ne̋ma da Vi zanimavam poveče s pipkavi raboti.
- (.. skrij gi pikselite ..) (.. skrij ü broderiata na printer ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ◄► (.. skrij ü broderiata na printer ..) (.. svij ü ..) (.. razguni ü ..) (.. skrij ü tretata beseda po spomenite mi ot 1977 ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Programata ili po-točno programite, a be softwerut (.. pokaži ..) (.. razgunuto ..) (.. skrij ü tretata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
-
▼▼ Programata ili po-točno programite, a be softwerut
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
- ►► Opcii za distribycia - kak programata se razprostranävaše (.. pokaži gi ..)
-
▼▼
Opcii za distribycia - kak programata se razprostranävaše
(.. skrij gi ..)
- Zadačata, s koäto se be̋x zael po vreme na stažut mi v turnovskiut teritorialen izčislitelen centur prez le̋toto na 1977, beše razvojna zadača, zadača za proizvodstvo na softwer, it was a software development task.
- Po zamisul sredstvata za prenos i obmen na danni i softwer pri kompÿtrite ЕС ЭВМ be̋xu perfokartite i magnitnite lenti.
- Obače v praktikata perfokartite se izpolzvaxu samo za purvičen vxod na danni i programi.
- Oborydvaneto, nyžno za izpolzvaneto na perfokartite pri prenos i obmen na danni i softwer, makar i nalično, beše zanemareno i ne fynkcioniraše.
- Ne sum go viǧal da raboti nito v Turnovo, nito v Sofia.
- Razbira se, testeto perfokarti, izgotveno v Turnovo za purvičen vxod, možex da si go vzemu v Sofia, no ne možex da dam kopie na drygigo.
- Ostavat magnitnite lenti kato edinstven nositel za prenos i obmen na danni i softwer v onezi yslovia.
- Obače v praktikata perfokartite se izpolzvaxu samo za purvičen vxod na danni i programi.
- Kakvo da se zapiše na magnitna lenta s cel distribycia (razprostranenie) na softwerniut prodykt?
- Suqestvyvat tri opcii:
- kartinkata vuv vid podxodäq za printer,
- programata kato obekten modyl, ili
- programata v izxoden kod na PL/1.
- Kartinkata vuv vid podxodäq za printer.
- Suvremenniut analog e fajl za kartinka vuv format bitmap (.bmp).
- Togava podoben fajl bi se polyčil, ako
programata, koäto otpečatva brodiranata kartinka na trakaq printer,
ili "generiranata programa", kakto qe bude narečena tä po-doly,
se pysne, sled kato izxodut ï se prenasoči
ot printerut kum magniten nositel. - Magnitna lenta, suduržaqa takuv fajl, možeše da se zanese v dryg izčislitelen centur s mašina ЕС ЭВМ i trakaq printer kum neü i tam da se razpečata, primerno s programata DITTO.
- Dokolkoto v kartinkata beše vklÿčen i kalendar, tozi način na razprostranenie ne pokrivaše ce̋lata fynkcionalnost.
- Nova distribycia bi bila nyžna za vse̋ka nova godina.
- Programata kato obekten modyl.
- Tova beše "legitimniut variant" za distribycia, ako ne iskate da razprostranävate izxodniut kod na programata.
- Programata, koäto otpečatva brodiranata kartinka na trakaq printer,
ili "generiranata programa", kakto qe bude narečena tä po-doly,
e programa na ezikut za programirane PL/1. - Kompilatorut ot PL/1 obrabotva tazi programa i rezyltatut ot rabotata my e mašinen kod vuv format obekten modyl za DOS/360.
- Tozi obekten modyl može da se zapiše na magnitma lenta i da se zanese v dryg izčislitelen centur s mašina ЕС ЭВМ i trakaq printer kum neü.
- Tam tozi obekten modyl se podava na programata LNKEDT (Linkage Editor),
i LNKEDT proizveǧa gotovata za izpulnenie programa,
koäto qe otpečata kartinkata, kato se pysne. - Gotovata za izpulnenie programa, predi da otpečata kartinkata, tre̋bva da pročete ot vxodut si godinata za kalendarut.
- Zabeležete, če na mestoto, kudeto programata e polyčena črez distribycia po tozi variant, ne e zadulžitelno da ima instaliran kompilator ot ezikut PL/1.
- Programata v izxoden kod na PL/1
- Programata, koäto otpečatva brodiranata kartinka na trakaq printer,
ili "generiranata programa", kakto qe bude narečena tä po-doly,
e programa na ezikut za programirane PL/1. - Tä e polyčena kato rezyltat - kato izxod - ot izpulnenieto na
"generiraqata programa", za koäto qe stane dyma po-doly. - Predi da se pysne "generiraqata programa" izxodut ï tre̋bva da se prenasoči kum magniten nositel (poneže ystrojstvata za punch na perfokarti nikude ne fynkcioniraxu).
- Ako tozi nositel e magnitna lenta, to tä može da se otnese v dryg izčislitelen centur s mašina ЕС ЭВМ s trakaq printer i s kompilator ot PL/1.
- Programata, koäto otpečatva brodiranata kartinka na trakaq printer,
- (.. skrij gi opciite za distribycia ..) (.. skrij go softwerut za broderiata ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Častite na programata (.. pokaži gi ..)
-
▼▼
Častite na programata
(.. skrij gi ..)
- Zadačata, s koäto se be̋x zael po vreme na stažut mi v turnovskiut teritorialen izčislitelen centur prez le̋toto na 1977, beše razvojna zadača, zadača za proizvodstvo na softwer, it was a software development task.
- Dejnostite po tazi zadača be̋xu ot dva tipa: brodirane i programirane.
- I v dvata slyčaä rezyltatite su testeta perfokarti.
- Pet testeta, vse̋ko v edin ekzemplär.
- Kalè-testè: teste perfokarti s programata za kalendarut.
- Tazi programa izveǧa kalendar za zadadena godina.
- Obiknoven kalendar po meseci i dni v sedmicata.
- Tyka ne̋ma da se spiram na neü.
- Podgotväm dryga pyblikacia po kalendarnite vuprosi.
- Tova teste tre̋bva da stane čast ot "generiranata programa".
- Pìksel-testè: sudurža samata "broderia" na kartinkata.
- Naj-gole̋moto teste.
- Za nego izpolvax perfokarti vtora ypotreba,
- samo srednite im pozicii.
- To tre̋bva da vleze v "generiranata programa" vuv fòrmata na tekstovi literali (konstanti).
- Prìnter-testè: teste perfokarti s pečataqata programa.
- Tä tre̋bva purvo da izvede na printerut kartinkata, sled koeto da pysne i podprogramata za kalendarut.
- Tova e načalnata čast na "generiranata programa", predi tekstovite literali (pìksel-testèto) i predi programata za kalendarut.
- Ràptor-testè: Generà[p]torut, "generiraqata programa".
- Tova e purvata programa, koäto tre̋bva da se kompilira i da se izpulni.
- Predi da se pysne tä za izpulnenie, izxodut ï tre̋bva da se prenasoči kum magniten nositel,
- zašoto na izxodut ï qe se polyči "generiranata programa",
koäto ot svoä strana- ili vednaga qe se kompilira i qe se izpulni, za da razpečata kartinkata i kalendarut,
- ili vednaga qe se kompilira, kato polyčeniut obekten modyl se izpolzva za distribycia,
- ili puk samata "generiranata programa" qe se izpolzva za distribycia.
- "Generiraqata programa" (generatorut), kato se pysne,
- purvo izčita prìnter-testèto i go izveǧa na izxodut si,
- posle čete srednite pozicii na pìksel-testèto i preobrazyva pročetenite danni v programni literali, koito praqa kum izxodut si kato čast ot "generiranata programa",
- i nakraü izčita kalè-testèto i go izveǧa na izxodut si.
- Na izxodut na generatorut se polyčava "generiranata programa" na ezikut PL/1.
- Virtyalno testè JCL: Tova ne e teste, a nabor ot perfokarti.
- Tezi perfokarti suduržat komandi na ezikut JCL.
- Razpolagat se pravilno okolo i meǧy gornite četiri testeta.
- S takava perfokarta:
- Može da se pysne kompilatorut ot PL/1.
- Toky-qo kompiliranata oprograma može da se svurže (via LNKEDT) i da se pysne.
- Može vxodut i izxodut na programa, predi pyskaneto ï, da se prenasočut.
- Može da se označi kraüt na teste perfokarti,
- Može da se označi kraüt na zadanieto kum kompÿturut.
- Blagodarü na kompÿtur ne se kazva.
- Kalè-testè: teste perfokarti s programata za kalendarut.
- (.. skrij gi častite na programata ..) (.. skrij go softwerut za broderiata ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ◄► (.. skrij go softwerut za broderiata ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü tretata beseda po spomenite mi ot 1977 ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ◄► (.. skrij ü tretata beseda za broderiata na printer po spomenite mi ot 1977 ..) (.. svij ü ..) (.. posvij ili porazguni ..) (.. razguni ü suvsem ..) .. kum načaloto ..
►► 5. EGN-to otvutre (.. pokaži ü četvurtata beseda ..) (.. razgunuto ..) .. kum načaloto ..
- Ako Vi interesyva kak e sustaveno EGN-to i v častnost kak se presme̋ta kontrolnata cifra. ::2021-10-30 11:13::
▼▼ 5. EGN-to otvutre (.. skrij ü četvurtata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
::2021-10-30 11:13::- ►► EGN-to otvun (.. pokaži ..)
-
▼▼ EGN-to otvun
(.. skrij go predgovorut na četvurtata beseda ..)
- Kogato prez godinite 1993..98 rabotex v Bankserviz, znaex algoritumut za opredeläne na kontrolnata cifra na EGN-to. Moä beše programata, koäto ü proverävaše. Suqiut algoritum se izpolzvaše i za kontrolnata cifra na oqe dva togavašni bankovi identifikatora.
- Sega na stari godini celta mi e da si pripomnü tozi algoritum.
- Otklonenie: Edinniut graǧanski nomer (EGN) e vuveden prez 1977.
- Znaete li kak izgleǧaše točnata identifikacia na čovekut-podanik predi 1977?
- Eto taka izgleǧaše:
- Žitel na edi-koj si okrug i na edi-koä si obqina.
- [Žitel na edi-koe si naseleno me̋sto.]
- Zabeležete: žitel, ne prosto živyq ili prebivavaq.
- Ime, prezime, familia.
- Data na raǧane.
- Tom i stranica - otbele̋zvani v togavašnite pasporti.
- EGN-to be vuvedeno zaradi kompÿturnite texnologii.
- V SAQ roläta na EGN-to izpulnäva SSN (Social Securuty Number) - nomerut za socialno osigyrävane.
- Ima pravilo ot teoriata za bazite danni, če
- v identifikatorite na obektite ne biva da se kodirat drygi xarakteristiki na tezi obekti.
- EGN-to ne spazva tova pravilo.
- V nego su kodirani: datata na raǧane, polut - mužki ili ženski, i - edva sega nayčavam tova - okrugut.
- Google me nasoči kum programa s avtor Georgi Čorbax̌ijski.
- Eto go izxodniut kod na tazi programa.
- Eto ü v dejstvie.
- Programata na Georgi Čorbax̌ijski e napisana na php, koeto označava, če tä se izpulnäva na web-survur.
- Az si ne̋mam me̋sto na web-survur, nastoäqiut moj tekst e na blogspot.com, no tova e samo sklad za tekstove i kartinki. Ne̋mam pravo da pišu programi, koito da se izpulnävat na blogspot.com.
- Imam pravo obače vutre v nastoäqiut tekst da vmuknu programa, koäto da se izpulni na Vašeto ystrojstvo, na Vašiut laptop ili na Vašiut smartfon.
- Takava programa tre̋bva da bude napisana na JavaScript.
- Interpretator na JavaScript e vgraden vuv vseki suvremenen browser, i na Vašeto ystrojstvo sus sigyrnost ima browser, črez kojto Vie rovite v mrežata internet.
- I tuj, zanimavkata mi e da prepišu ot php na JavaScript tazi čast ot programata na Georgi Čorbax̌ijski, koäto pravi analiz na EGN-to.
- Programata na Georgi Čorbax̌ijski ima i dryga čast - generacia na EGN-ta, tä suqo bi mogla da se prepiše ot php na JavaScript, no qe si spestü tazi trivialnost.
- .. skrij go EGN-to otvun .. (.. skrij ü besedata za EGN-to otvutre ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Izxoden kod na programata za izčislävane na kontrolnata cifra (.. pokaži ..)
-
▼▼ Izčislävaneto na kontrolnata cifra v source na JavaScript
(.. skrij ..)
- Izčislävaneto na kontrolnata cifra po modyl 11.
Priema niz ot cifri. Vruqa cifra ili prazno pri nevalidni danni.function mod11check(digits) // изчислява контролна цифра по модул 11 { const digitWeights = [2,4,8,5,10,9,7,3,6]; if( digits.match(/^[0-9]+$/) != null ) { let d = digits.split(""); let s = 0; let i = 0; for(let j = 0; j < d.length; j++) { s += d[j] * digitWeights[i]; i++; i %= digitWeights.length; } s %= 11; if (s == 10) { s = 0; } return s; } else { return ""; // грѣшни входни данни: приемат се само цифри } }
- .. skrij ü fynkciata na JavaScript .. (.. skrij ü besedata za EGN-to otvutre ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- Izčislävaneto na kontrolnata cifra po modyl 11.
-
►► Programata za izčislävane na kontrolnata cifra v dejstvie
(.. pokaži ..)
-
▼▼ Programata za izčislävane na kontrolnata cifra v dejstvie
(.. skrij ..)
Vuvedete ne̋kolko cifri, naprimer purvite devet cifri na EGN:
Kato natisnete , qe polyčite kontrolnata cifra. -
►► Analiz na vuvedeno EGN
(.. pokaži ..)
-
▼▼ Analiz na vuvedeno EGN
(.. skrij ..)
Vuvedete desette cifri na EGN-to:
- ◄► (.. skrij ü četvurtata beseda za EGN-to ..) (.. svij ü ..) (.. posvij ili porazguni ..) (.. razguni ü ..) .. kum načaloto ..
►► 6. Diskovata pamet na System/360 (.. pokaži ü petata beseda ..) (.. razgunuto ..) .. kum načaloto ..
- Kak razvitieto na xardwerut kara softweristite da zabravüt starite problemi i da se zaxvanut s novi.
▼▼ 6. Diskovata pamet na System/360 (.. skrij ü petata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Neqo kato predgovor, neqo kato vuvedenie (.. pokaži go ..) (.. razgunuto ..)
-
▼▼
Neqo kato predgovor, neqo kato vuvedenie
(.. skrij go ..)
(.. svij go ..)
(.. razguni go ..)
- ►► Šapka na toäga (.. pokaži ..)
-
▼▼
Šapka na toäga. Dožive̋x.
(.. skrij ..)
- Prez 2018 se pensionirax, sled kato pridobix izikvaqite se staž i vuzrast za tova.
- Pensionirax se sled 40 godini rabota kato kompÿturen programist i softweren inžener.
- V suqnost be̋x mnogo dobur kodirovčik.
- Mnogo dobre sum se razbiral s kompÿtrite.
- Vlizal sum im pod tenekiite - pri bitovete.
- Zaqoto te samo ot bitove razbirat.
- S kompÿtri sum se zanimaval ot 70-te:
- kato yčenik v načaloto na 70-te;
- kato stydent v sredàta na 70-te; i
- profesionalno ot kraüt na 70-te.
- Edva li ima dryga texnologična oblast s tolkova mnogo promeni.
- Ako kažu, če prez 70-te ili 80-te sum možel da predskažu budeqeto, qe izlužu.
- (.. skrij tova, če dočakax pensia ..) (.. skrij go vuvedenieto kum petata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Kakvo go ne̋ma dnes pri kompÿtrite. I dobre če go ne̋ma. (.. pokaži ..)
-
▼▼
Kakvo go ne̋ma dnes pri kompÿtrite - tova qe e tazi peta beseda.
(.. skrij ..)
- Ne̋ma bezdiskovi kompÿtri.
- Ne̋ma kanalni programi.
- Ne̋ma potrebitelsko formatirane na diskovite pisti.
- Ne̋ma značenie geometriata na diskovete.
- Ne̋ma namestvane na fajlovete vurxy diskut ot potrebitelüt.
- Ne̋ma spodeleni cilindri.
- Ne̋ma osigyren ot xardwerut asociativen dostup do diskut.
- Ne̋ma si predstava sistemniut softwer za vutrešnata stryktyra na fajlovete.
- Ne̋ma magnitni glavi otdelno ot diskovete.
- To i istinski diskove ne̋ma veče.
- SSD-tata diskove li su?
- Vuršut rabota kato diskove. Minavat za diskove.
- (.. skrij kakvo go ne̋ma dnes ..) (.. skrij go vuvedenieto kum petata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ◄► (.. skrij ü petata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Bezdiskovi kompÿtri (.. pokaži gi ..)
-
▼▼
Bezdiskovi kompÿtri
(.. skrij gi ..)
- Srednoškolski spomeni.
- Zavuršil sum gimnazia (11-ti klas) prez 1972 sus specialnost "izčislitel-kodirovčik".
- V 9-ti klas za kompÿtrite Minsk-2 se yčexme da kodirame na mašinen ezik.
- Sega tova go pravüt programi, narečeni asembleri.
- V dejstvitelnost, yčebnata programa beše ostare̋la.
- Togava veče nikoj ne e pišel kompÿturni programi na mašinen ezik.
- Vse pak, tezi ypražnenia be̋xu polezni za mene.
- V gimnaziata ne be̋x čyval za diskovi ystrojstva.
- Kompÿtrite Minsk-2 i Minsk-22 ne̋maxu diskovi ystrojstva.
- Te maj ne̋maxu nikakvi magnitni ystrojstva.
- Poveče za kompÿtrite Minsk-2 - v purvata beseda.
- Prez 70-te v Bulgaria se poävixu teritorialni izčislitelni centrove.
- V ne̋koi imaše kompÿtri Minsk-32, koito imaxu magnitni lenti, no ne i diskove.
- Vodixu ni na ekskyrzia v Sofia i ni pokazaxu kompÿtur FACOM - s magnitni lenti, bez diskove.
- Magnitnite lenti vpečatlävaqo se vurte̋xu.
- Prez 80-te kolegi ot varnensko predpriatie mi razkazaxu.
- Imali star originalen kompÿtur IBM/System-360. No bez diskove.
- Znaex, če purvite modeli na IBM/System-360 ne̋mat diskove.
- Rabotel stabilno i bezotkazno. Vuršel im rabota.
- Ne iskali da go zamenät s nov model, kojto ne̋ma kak da bude dryg osven ot nekačestvenoto proizvodstvo otsam žele̋znata zavesa.
- Dokato be̋x v kazarmata, sum propysnul dve važni subitia:
- ottegläneto na Brigitte Bardot, i
- poävata na kompÿturnite diskove.
- Kato stydent i kato profesionalist ne sum rabotil na bezdiskovi kompÿtri.
- Razni terminalni ystrojstva može vutrešno da su priličali na kompÿtur.
- Obače ystrojstvo, koeto ne predlaga programistki dostup, za mene ne e kompÿtur.
- Zabeležka_1. Suvremennite smartfoni su kompÿtri. Te imat disk (makar i SSD). Predlagat i programistki dostup za tozi, kojto znae kak.
- Zabeležka_2. Naj-raznoobrazni ystrojstva mogut da suduržat vgraden (embedded) softwer. Kompÿtri se izpolzvat za suzdavaneto my i veroätno za samoto vgraǧane.
- Spomenatite kompÿtri - Minsk-2, Minsk-32, Facom-230–30 (ZIT-151), ne̋mat magnitno-diskovi ystrojstva.
- Ne̋mat energo-nezavisima vunšna pamet s pre̋k dostup.
- Bili su v eksploatacia y nas prez 60-te i 70-te.
- Veče ne̋ma takiva kompÿtri. Slava Bogy!
- (.. skrij gi bezdiskovite kompÿtri ..) (.. skrij ü petata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- Srednoškolski spomeni.
- ►► Kanali (periferni procesori) i kanalni programi (.. pokaži gi ..)
-
▼▼
Kanali (periferni procesori) i kanalni programi
(.. skrij gi ..)
- Diskovete su došli y nas sus sistemata IBM/360 (ES ЭVM).
- Zabeležka_1. V predniut razdel na tazi beseda stanu dyma, če ..
- su suqestvyvali mladši modeli na IBM/360 bez diskove.
- Predpolagam, če kogato su planirali sistemata ES ЭVM, ne su suznavali gole̋moto značenie i izklÿčitelnata važnost na diskovete.
- "Socialističeska" Bulgaria izvadila kusmet.
- Zavodut za diskove go postroili v Stara Zagora.
- I tozi zavod ne̋kolko posledovatelni godini beše monopolist v proizvodstvoto na magnitno-diskovi ystrojstva v prostranstvoto ot Brandenbyrgskata vrata do Vladivostok.
- I realiziraše golemi pečalbi kato monopolist.
- Dokato drygite strani ot SIV (SЭV, Comecon) ne se ysetixu.
- Kum kraüt na 80-te monopolut beše zagyben.
- Zabeležka_2. V
purvata beseda
stanu dyma za ..
- kompÿturut Vitoša, izraboten v edin ekzemplär ot bulgarski yčeni i inženeri.
- Operativnata my pamet (RAMut my) e bil[a] realiziran[a] na magniten baraban.
- Da, verno e, če magnitniut baraban (drum) e vid disk
(disk s mnogo glavi i samo edin cilindur),
no v kompÿturut Vitoša tozi baraban (ili disk) se e polzval kato operativna pamet, a ne kato trajna vunšna pamet. - Puk i togava - prez 70-te, be̋x čyval za famozniut kompÿtur Vitoša, no predstava si ne̋max za stroežut my.
- Zabeležka_1. V predniut razdel na tazi beseda stanu dyma, če ..
- Sega čipovete "centralen procesor" su evtino masovo proizvodstvo
i se vlagat v naj-različni izdelia.
- Vuv vseki smartfon ima edin-dva.
- Vuv vseki avtomobil ima desetina.
- Togava obače centralniut procesor na IBM/System-360 zaemaše škaf.
- Centralniut procesor beše sme̋tan za skupa čast ot oborydvaneto.
- Čast, koäto tre̋bva da se qadi. I da se raztovarva.
- V susedstvo sus škafut na centralniut procesor na IBM/System-360 be̋xu razpoloženi perifernite procesori.
- V "nayčnata" literatyra te se naričaxu "periferni procesori".
- No v dikymentaciata na IBM se naričaxu kanali (channels).
- Znaexme gi kato kanali.
- Sigyrno e imalo različni konfigyracii na kanalite, no az sum viǧal samo edna:
- Tri kanala: 2, 1 i 0.
- Kum 2-ri kanal se vklÿčvaxu magnitno-lentovite ystrojstva.
- Kum 1-vi kanal se vklÿčvaxu magnitno-diskovite ystrojstva.
- A nylev kanal beše prednaznačen za bavnata periferia: konzola, printer, četec na perfokarti (reader) i punč (punch).
- Oborydvaneto za punčut beše nalično i znači zaplateno.
- No raboteq punč ne sum viǧal.
- Vuv Varna, kudeto prez 80-te vse oqe eksploatirani star originalen bezdiskov model na IBM/System-360, za koeto stanu dyma v predišniut razdel, punčut si rabotel bezotkazno.
- Pri bezdiskova sistema imaše po-malko vuzmožnosti da se eliminira neobxodimostta ot punč.
- I tuj, stava dyma za ypravlenieto na periferiata na IBM/System-360, za vxodno-izxodnite (Input/Output, I/O) operacii.
- Tova e rabota na kanalite (na perifernite procesori).
- Osobenoto v arxitektyrata na IBM/System-360 e, če kanalite su procesori i izpulnävat programi.
- Kanalnite programi su na mašinniut ezik na kanalite,
kojto e mnogo različen ot mašinniut ezik na centralniut procesor.
- Te se sustoüt ot 8-bajtovi komandi.
- Edna takava komanda se naričaše CCW (Channel Command Word, CeCeVè).
- Pri pisane na kanalni programi ot potrebitel mnemoničnostta e minimalna.
- Poävata na adresnata preadresacia (na virtyalnata pamet) vuv IBM/System-370 (viž sledvaqata beseda) napravi pisaneto na kanalni programi ot potrebitel nevuzmožno.
- Črez kanalna programa može da se razglobi vxoden zapis ili da se sglobi izxoden zapis.
- Primer. Neka na vxodut imame zapisi po 80 bajta (perfokarti) za vseki čovek ot predpriatieto.
- Purvite pet bajta - slyžeben nomer.
- Sledvaqite deset bajta - EGN.
- Sledvaqite trideset bajta - ime, prezime, familia.
- Do kraüt na perfokartata - drygi danni: otdel. adres, i t. n.
- Interesyvat ni samo slyžebniut nomer i poleto "ime, prezime, familia".
- Črez kanalna programa kanalut može da bude instryktiran da propyska dannite, koito ne su ot interes - da ne se zaema operativna pamet za te̋x.
- Črez kanalna programa kanalut može da bude instryktiran dannite, koito su ot interes, da budut razpoloženi v pametta v ykazan red, a ne nepremenno kakto su vuv vxodniut potok.
- Črez kanalna programa može da se osuqestvi asociativen dostup do diskut.
- Na tova e posveten otdelen razdel na tazi beseda.
- Svurzano e i s potrebitelskoto formatirane na diskovite pisti, na koeto suqo e posveten otdelen razdel.
- I togava, i sega
elementarnite operacii s perifernite (vxodno-izxodnite) ystrojstva
se izvuršvat s posredničestvo na xardwerni ystrojstva, narečeni kontroleri.
- Kontrolerut znae osobenostite na suotvetnoto periferno ystrojstvo.
- Kontrolerut e nastroen i kum xardwernite interfejsi na suotvetniut kompÿtur.
- Pri kompÿtrite ot sistemata IBM/360 (kakto i pri IBM/370), vseki kontroler beše svurzan s ne̋koj kanal (s ne̋koj periferen procesor).
- Pri vsički po-moderni kompÿtri kontrolerite su svurzani s centralniut procesor, a povečeto ot te̋x imat dostup i do operativnata pamet (do RAMut).
- Ne̋ma veče kanali (periferni procesori).
- Ne̋ma veče i kanalni programi. Slava Bogy!
- Suvremennite procesori su tolkova burzi, če ne̋ma zaqo da se qadüt i da se raztovarvat.
- I ako tre̋bvat poveče ot edin, slagat se tolkova, kolkoto e nyžno.
- Zaqo tezi procesori tre̋bva da imat tolkova različni arxitektyri i različni mašinni ezici?
- Sega suqestvyvat obosobeni časti na sistemniut softwer, narečeni
drajveri (drivers).
- Vse̋ko periferno xardwerno ystrojstvo (drive) si vurvi v komplekt s drivers (drajveri) za vse̋ka kompÿturna arxitektyra i platforma.
- Drajverut, kojto e softwer, se razbira s kontrolerut, kojto e xardwer.
- Drajverut podava komandi na kontrolerut, kojto znae kak da nakara ystrojstvoto da izpulni komandata.
- Drajverut polyčava otčet ot kontrolerut za izpulnenieto na zadačata.
- Drajverut polyčava otčet ot kontrolerut za tekyqoto sustoänie na ystrojstvoto.
- Togava na nivoto na segašnite drajveri imaše sistemen softwer, narečen metodi na dostup (access method).
- Kanalnite programi be̋xu časti ot metodite na dostup.
- Imaxme si rabota s tri metoda na dostup:
- posledovatelen (sequential),
- pre̋k (direct), i
- indeksno-posledovatelen (indexed sequential, ISAM).
- (.. skrij gi kanalnite programi ..) (.. skrij ü petata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- Diskovete su došli y nas sus sistemata IBM/360 (ES ЭVM).
- ►► Potrebitelskoto formatirane (.. pokaži go ..) (.. razgunuto ..)
-
▼▼
Potrebitelskoto formatirane
(.. skrij go ..)
(.. svij go ..)
(.. razguni go ..)
- Potrebitelskoto formatirane na diskovite pisti sum go sreqal samo v sistemite IBM/360 i IBM/370.
- Da, na potrebitelite im se nalagaše da formatirat disketi, no togava se prilagaše fabrično formatirane, standartno formatirane.
- Pri formatirane na disketa potrebitelüt ne ykazvaše kak tä da bude formatirana.
- Za da se razbere problemut s formatiraneto na diskovite pisti,
(.. pokaži ..)
(.. pokaži ..) purvo tre̋bva da imame predstava za magnitnite lenti. - Za da se razbere problemut s formatiraneto na diskovite pisti,
(.. skrij ..)
purvo tre̋bva da imame predstava za magnitnite lenti. (.. skrij ..)- Poneže edna neformatirana pista na magniten disk e kato magnitna lenta. E da, dosta po-kusa.
- Čovek može da vidi i daže da pročete zapis vurxy perfolenta ili perfokarta.
Čovek može da vidi barkod ili QR-kod.
No ne i magniten zapis. Čovek ne̋ma setiva za tova. - Standartnite magnitni lenti ot 70-te i 80-te be̋xa devet-pistovi (devet-putečkovi, 9 tracks).
- Tova, koeto se viǧaše kato magnitna glava na ystrojstvoto, v dejstvitelnost beše byketče ot devet glavi za zapis i četene.
- Otklonenie_1. Osem plÿs edno e devet.
- Ili broüt na pistite pri standartnite magnitni lenti beše devet, zaqoto v indystriata veče beše ystanoveno ponätieto bajt kato redica ot osem bita.
- Ili ponätieto bajt kato redica ot osem bita e vuzniknulo zaradi ystanoviliut se devetpistov standart pri magnitnite lenti.
- Kak da e. Vruzka ima.
- Pri naj-prostiut metod na zapis (NRZ, 800bpi), možete da si predstaväte magnitnata lenta kato devet-putečkova perfolenta.
- Na vse̋ka pozicia - 0 ili 1 - ima ili ne̋ma dypka.
- Na vseki red - devet pozicii, devet bita.
- Devetiut bit e za kontrol po nečetnost (odd parity).
- Ako na redut, kojto e sustaven ot devet bita, ne̋ma nito edna dypka - nito edna edinica, to na tozi red niqo ne e zapisano.
- Zaqoto dori bajt, sustaven ot osem nylevi bita, se zapisva s edinica v putečkata za kontrol po nečetnost.
- Broüt na edinicite (na dypkite) na edin red tre̋bva da e nečeten.
- Redovete, kudeto ima neqo zapisano, tre̋bva da su grypirani v zapisi (records).
- Pone̋koga vmesto zapis (record) se kazvaše blok (block).
- Imaše ograničenia za dulžinata na edin zapis.
- Ystrojstvoto se surdeše, ako zapisut e po-kus ot 18 bajta.
- Ne se priemaxu i tvurde dulgi zapisi, zaqoto lentata može mnogo da se razpune na takova me̋sto pri skorostta na četene.
- Ystrojstvoto ne može da si počiva vutre v edin zapis (vutre v edin blok).
- Osven tova, na samiut kraj na blokut ima edin ili dva kontrolni bajta.
- Ystrojstvoto si počiva meǧy zapisite (meǧy blokovete).
- Za celta meǧy zapisite se ostavä praznina (gap), dostatučno dulga, taka če da dade vuzmožnost na ystrojstvoto da spre meǧy dva zapisa i da može sled tova da yskori do skorost za četene predi dostigane na sledvaqiut blok.
- Otklonenie_2. Čist spirt za počistvane na magnitnite glavi.
- Glavite na magnitno-diskovite ystrojstva suqo se zamursävaxu, no počistvaneto im iziskvaše specialna kvalifikacia i se praveše pri redovna xardwerna profilaktika.
- A da čistü glavite na magnitno-lentovite ystrojstva se e nalagalo i na mene.
- Čist spirt vinugi beše na razpoloženie za celta v ne̋koj škaf ili čekmex̌e - znaeše se kude, zaedno s čisto parcalče.
- Imaše edno bulgaro-suvetsko predpriatie na sofijskata ylica Aleksandur Stambolijski.
- Tam došul na rabota novo-naznačen direktor - prämo iz Moskvы ili prämo iz Minska - ne znaÿ točno.
- I purvata my rabota bila da proveri kak se suxranäva čistiut spirt, nyžen za počistvane na magnitnite glavi.
- Naložilo se da my obäsnävat, če nikoj v Bulgaria ne̋ma da pie čist spirt pri naličieto na tolkova mnogo spirtni napitki.
- Rolkite s magnitni lenti se proizveǧaxu v tri standarni dulžini: 600ft, 1200ft i 2400ft.
- Naj-golemite rolki ne se subiraxu v damska čanta.
- Arxiv na pulen 20-megabajtov diskov paket IBM/2314 (ES-5061) ne se subiraše na po-malka rolka.
- No možeše da se složi vtora rolka.
- Načaloto i kraüt na lentata se markirat sus svetlo-otrazitelni staniolčeta, koito datčikut na ystrojstvoto zasiča.
- Sled staniolčeto v kraüt na lentata tre̋bva da ima me̋sto za oqe ne̋kolko zapisa (do šest), za da zavurši fajlut normalno.
- Magnitnata lenta e s posledovatelen dostup. Strogo posledovatelen.
- Ne može da se zadade komanda "prevurti 100 ft (fyta) i počni da četeš (ili da pišeš) ottam!"
- Ne̋ma žalon za 100 ft (fyta).
- Obače može da se zadade komanda "propysni 100 zapisa (100 bloka) i počni da četeš (ili da pišeš) ottam!"
- Ystrojstvoto ne može da propysne 100 zapisa, bez posledovatelno da gi pročete.
- Da gi propysne - znači pročetenite danni da ne se praqat kum operativnata pamet.
- Nared s obiknovenite zapisi, imaše i specialen osoben zapis vurxy magnitnata lenta, narečen TM (tape mark).
- Ystrojstvoto izpulnävaše takiva komandi:
- Vzemi ot tozi adres na fizičeskata pamet tolkova posledovatelni bajta i gi zapiši vurxy lentata na tekyqata pozicia.
- Zapiši TM vurxy lentata na tekyqata pozicia.
- Propyskaj vsički zapisi vurxy lentata, dokato stigneš TM.
- Propyskaj zapisi vurxy lentata, dokato stigneš TM, no naj-mnogo tolkova zapisa.
- Pročeti ot tekyqata pozicia zapis, dokladvaj dali e TM, i ako ne e, dokladvaj dulžinata my, a dannite zapiši po tozi adres na fizičeskata pamet.
- Milo ystrojstvo, znam, če toky-qo si pročelo TM. Vurni se, molü, edna stupka nazad, taka če sledvaqiut zapis da pokrie tape-mark-erut.
- Rewind! Prevurti lentata i ü pozicioniraj v načaloto, na načalnoto staniolče.
- I tova su vsički komandi, koito ystrojstvoto izpulnäva.
- Pri vse̋ka komanda, ako ystrojstvoto zaseče krajnoto staniolče, to e dlužno da dokladva, če lentata e na privuršvane.
- Na purvo približenie može da se prieme, če fajlut vurxy magnitna lenta
predstavläva redicata ot zapisi meǧy dva tape-mark-era.
- Dva posledovatelni tape-mark-era (bez drygi zapisi meǧy te̋x - prazen fajl) označava, če po-natatuk na lentata ne̋ma niqo zapisano.
- (.. skrij gi magnitnite lenti ..) (.. skrij go potrebitelskoto formatirane ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- I tuj, magnitnata lenta e sus strogo posledovatelen dostup i bez predvaritelno formatirane.
- Pri vse̋ka operacia za zapis vurxy lentata me̋stoto na zapisut "se formatira" nanovo.
- Magnitno-diskovite ystrojstva predostavät pre̋k dostup do vseki zapis vurxy diskut.
- Za celta zapisite tre̋bva predvaritelno da su suzdadeni.
- Suzdavaneto na zapisite vurxy diskovata pista se nariča formatirane na pistata.
- Sled tova, po vreme na normalnata eksploatacia, dannite vutre v suzdadenite pri formatiraneto zapisi se prezapisvat.
- Razbira se, pri formatirane na pistata, vsičko, koeto e bilo zapisano na neü predi tova, bezvuzvratno se gybi.
- Pri sistemite IBM/360 i IBM/370 vse̋ka diskova pista može da se formatira otdelno ot drygite pisti,
i to po ykazan ot potrebitelüt način.
- Formatiraneto na edna pista ne zase̋ga drygite pisti.
- Različnite pisti mogut da imat različno formatirane.
- Različnite pisti mogut da imat različno formatirane, izvuršeno po različno vreme.
- Različnite pisti mogut da imat različno formatirane, zaäveno ot različni potrebiteli.
- Potrebitelskite zaävki za formatirane se ykazvaxu črez JCL (Job Control Language).
- Pri starite diskovi paketi se viǧaše proceput, prez kojto se prokradva svetlinata, koäto ystrojstvoto zasiča.
- Tozi procep markira načaloto i kraüt na vse̋ka pista.
- Proceput e edin za celiut diskov paket.
- Pistata predstavläva okružnost. Tä započva i svuršva na me̋stoto, markirano ot proceput.
- Tova e fabrična markirovka.
- Formatiraneto si ima rabota s vutrešnostta na pistata.
- Kude tä počva i kude svuršva - tova e fabrično opredeleno.
- I tuj, vuv vutrešnostta na diskovata pista ima zapisi (records) ili blokove (blocks).
- Kolko zapisa i kolko bajta da e edin zapis - kakto e ykazano v zaävkata za formatirane na pistata.
- Edin zapis vurxy diskut se sustoi ot tri časti - žalon, indeks i danni.
- Meǧy tezi časti ima praznini.
- Celta im e da dadut vreme na "elektronikata" da reši dali zapisut e ot interes v dadeniut moment.
- Žalonut. Suduržanieto my e slednoto:
- nomerut na cilindurut (pri IBM-2311 i IBM-2314: čislo ot 0 do 199),
- nomerut na diskovata povurxnost (surface) ili nomerut na pistata vutre v cilindurut (pri IBM-2314: čislo ot 0 do 19), i
- nomerut na zapisut (na blokut) vurxy pistata.
- Gornite tri čisla sustavlävat diskoviut adres na blokut (na zapisut).
- Osven diskoviut adres, v žalonut e ykazana dulžinata na indeksut i dulžinata na dannite.
- Ako dulžinata na indeksut e nyla, indeks ne̋ma.
- Dulžinata na dannite ne može da e nyla - danni vinugi ima.
- Indeksut.
Dannite ot nego se polzvat pri asociativniut dostup i pri indeksno-posledovatelnite fajlove.
- Ima si specialen razdel za tova.
- Ako pistata ne e čast ot indeksno-posledovatelen fajl, v blokut ne̋ma indeks.
- Dannite. Dulžinata na blokut s danni se zadava pri formatirane.
- Blokovete danni vurxy edna pista obiknoveno su ednakvo dulgi.
- Zaqoto ne̋ma lesen način da se ykaže drygo.
- Ako magnitno-diskovoto ystrojstvo polyči komanda ..
- za pozicionirane (za četene ili za pisane) na opredelen diskov adres,
- sustaven ot nomer na cilindur, nomer na povurxnost i nomer na blok,
- ystrojstvoto purvo pozicionira (s pridvižvane)
- grebenut s magnitnite glavi na ykazaniut cilindur
- i vednaga identificira ykazanata pista.
- No ne čaka da mine fizičeskiut svetlinen marker za načaloto na pistata.
- Vednaga čete vseki sreqnut žalon i sravnäva diskoviut adres.
- Ako e tozi, kojto e ykazan v komandata,
- znači ystrojstvoto e na točnoto me̋sto za četene ili za pisane.
- Zabeležka_1: Pri asociativniut dostup vmesto diskov adres v komandata se dava tursen indeks i ystrojstvoto po podoben način sravnäva indeksi, a ne adresi.
- Zabeležka_2: Ako žalon s turseniut adres ne se nameri vurxy identificiranata pista, ima vuzmožnost pri formatirane da e bilo preceneno, če suotvetnata čast ot pistata e povredena i zapisut da e bil prenasočen kum rezervna pista. Tam - na rezervnata pista, žalonut sudurža originalniut diskov adres.
- Kak da e.
- Otdavna ne̋ma potrebitelskoto formatirane. Slava Bogy!
- Nego go imaše samo v sistemite IBM/360 i IBM/370.
- Pri vsički drygi kompÿtri diskovite pisti se formatirat ednakvo i tova ne može da bude promeneno ot potrebitelüt.
- Vinugi bez indeks i v blokove po 512 bajta (po polovin kilobajt).
- Za vseki tip disk broüt na blokovete vurxy edna pista e fiksiran i se znae.
- (.. skrij go potrebitelskoto formatirane ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü petata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- Potrebitelskoto formatirane na diskovite pisti sum go sreqal samo v sistemite IBM/360 i IBM/370.
- ►► Geometriata na diskut (.. pokaži ü geometriata ..)
-
▼▼
Geometriata na diskut
(.. skrij ü geometriata ..)
- Stanu dyma, če osven v sistemite IBM/360 i IBM/370,
- pri drygite kompÿtri vsički pisti na edin disk suduržat
- edin i suq broj blokove (zapisi), vseki po polovin kilobajt.
- Tozi broj e fiksiran i se znae za vseki tip disk.
- Naprimer, diskovete ot tip IBM-2314 (ES-5061),
kogato rabotüt s kompÿtur PDP-11 (SM-4),- imat po 10 (deset) bloka na vse̋ka pista,
- po polovin kilobajt (512 bajta) vseki.
- 200 cilindura,
- po 20 pisti na cilindur: 4000 pisti obqo,
- po 10 bloka na pista: 40000 bloka obqo,
- po polovin kilobajt na blok: 20000 kilobajta, počti 20 megabajta.
- Ako znaem broüt na cilindrite (v primerut 200),
- broüt na pistite na edin cilindur (broüt na diskovite povurxnosti, v primerut 20),
- i broüt na blokovete vurxy edna pista (v primerut 10),
- znači znaem geometriata na diskut.
- V ysloviata na primerut, ako znaem adresut na blok vurxy diskut
- razpoložen na cilindur nomer CylNo (čislo ot 0 do 199),
- povurxnost nomer SurfNo (čislo ot 0 do 19), i zapis nomer RecNo (čislo ot 0 do 9),
- to po formylata ( ( ( CylNo * 20 ) + SurfNo ) * 10 ) + RecNo
- qe polyčim čislo ot 0 do 39999.
- Tova čislo se nariča nomer na diskov blok.
- Imenno to se polzva veče za adresirane na diskovata pamet.
- I obratno, pak v ysloviata na primerut, ako znaem
- nomerut na diskov blok - čislo ot 0 do 39999, koeto qe označim BlockNo,
- kato razdelim BlockNo na broüt na blokovete na pista (10),
- qe polyčim ostatuk RecNo (čislo ot 0 do 9) i častno TrackNo.
- Sled tova, kato razdelim TrackNo na broüt na diskovite povurxnosti (20),
- qe polyčim ostatuk SurfNo (čislo ot 0 do 19) i častno CylNo - nomerut na cilindurut.
- V ysloviata na primerut, kato izklÿčim diskoviut drajver,
ostanulata čast ot softwerut na PDP-11
ne se interesyva ot geometriata na diskut i ot gornite dve smetki. - Diskoviut drajver na PDP-11, kojto e softweren komponent,
my se nalaga da znae geometriata na diskut
i da može da pravi tezi dve smetki,- zaqoto xardwerut e vzet ot IBM/System-360 i
diskoviut kontroler, kojto e xardweren komponent,
ne znae kak su formatirani pistite. - Vižte predišniut razdel za formatiraneto.
- zaqoto xardwerut e vzet ot IBM/System-360 i
- Obače ako xardwerniut komponent "diskov kontroler"
e proektiran taka, če da znae geometriata na diskut, to na nikoj softweren komponent ne my tre̋bva da ü znae.
- Softwerut tre̋bva da znae obqiut broj na diskovite blokove, koito po razmer su standartni.
- Softwerut raboti samo s nomera na diskovi blokove, koito su čisla v pluten diapazon ot nyla nagore.
- Softwerut ne se interesyva veče ot geometriata na diskut. Slava Bogy!
- A puk pri ystrojstvata ot tip SSD geometriata na diskut veče ne̋ma nikakuv smisul.
- (.. skrij ü geometriata na diskut ..) (.. skrij ü petata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- Stanu dyma, če osven v sistemite IBM/360 i IBM/370,
- ►► Razpoloženieto na fajlovete vurxy diskut - zadača na potrebitelüt (.. pokaži go ..) (.. razgunuto ..)
-
▼▼
Razpoloženieto na fajlovete vurxy diskut - zadača na potrebitelüt
(.. skrij go ..)
(.. svij go ..)
(.. razguni go ..)
- Pri IBM/System-360 edna pista vinugi se naznačava na edin fajl ce̋lata.
- Ne e vuzmožno čast ot edna pista da prinadleži kum edin fajl, a dryga čast ot suqata pista - kum dryg fajl.
- Pistata e naj-malkata edinica - naj-malkata čast ot diskut - koäto može da bude naznačena kum fajl.
- Ot dryga strana, edin fajl može da zaema ne̋kolko pisti.
- Daže mnogo pisti.
- I tezi pisti može da ne su susedni.
- Neqo poveče: edin fajl može da zaema pisti ot ne̋kolko diska.
- Takova neqo maj ne̋ma v suvremennite fajlovi sistemi -
- ot kakuv zor edin fajl qe zaxapva i dryga fajlova sistema.
- Edin disk ot gledna točka na fajlovoto si suduržanie se naričaše tom (volume).
- Toj si imaše tablica na suduržanieto VTOC (volume table of contents).
- Samo edna na tom - edna na disk - samo edna "direktoria".
- Tä done̋kude e predšestvenik na setnešnite direktorii.
- Vseki fajl na diskut beše predstaven v tablicata VTOC.
- Identificira se s imeto si - do 44 bajta bez opredelena stryktyra.
- Koi diskovi pisti fajlut zaema i v kakuv red.
- Ima li fajlut produlženie na dryg disk i dali tova tyka e produlženie.
- I oqe danni za fajlut - za vutrešnata my stryktyra,
- na koeto e posveten sledvaq razdel.
- S tomove i fajlove se operiraše na ezikut JCL (Job Control Language).
- Ako e nyžen dostup do suqestvyvaq fajl, ykazva se imeto na fajlut i suduržaqia̋t go tom, i sistemniut softwer go namira.
- Obače kogato se suzdava nov fajl, sistemata DOS/360 ne možeše sama da go složi ne̋kude.
- Pri suzdavane na nov fajl pod DOS/360 potrebitelüt tre̋bvaše ävno da ykaže na koi pisti fajlut da bude razpoložen.
- Slava Bogy! Takova neqo veče ne̋ma.
Pri vsički novi sistemi sistemniut softwer sam namira kude da razpoloži nov fajl. - Da zabravim za sistemite IBM/360 i IBM/370.
- Tam potrebitelüt na fajlut, kum kojto fajl e naznačena diskova pista, otgovarä za formatiraneto ï - na kolko bloka po kolko bajta pistata da se razdeli.
- V po-novite kompÿturni sistemi ne̋ma takova neqo kato potrebitelsko formatirane.
- V po-novite kompÿturni sistemi vse̋ka pista e bila podložena na standartno formatirane -
- fiksiran broj blokove po polovin kilobajt (512 bajta).
- V po-novite kompÿturni sistemi na fajlovete se naznačavat otdelni blokove,
- a ne nepremenno celi pisti.
- Geometriata na diskut veče ne̋ma značenie.
- Ima način - ima mexanizum, po kojto za vseki fajl da se ykaže koi diskovi blokove toj zaema i v kakuv red.
- Tova opisanie na razpredelenieto na diskovite blokove po fajlove se sudurža v specialen fajl - naj-važniut fajl na diskut, narečen indeksen fajl.
- Blokovete se identificirat ili vse edno se adresirat s nomerata si (BlockNo).
- Nomerut na blokut (ili vse edno adresut my) e čislo v pluten interval ot nyla nagore.
- V ne̋koi diskovi fajlovi sistemi se razpredelät ne standartni blokčeta po polovin kilobajt (512 bajta), a grypički or susedni blokčeta (1024 bajta, 2048 bajta, 4096 bajta).
- Pone̋koga tova e suglasyvaneto sus sistemata na virtyalnata pamet (vižte šestata beseda).
- Otklonenie.
Obqo opisanie na diskova fajlova sistema
(.. pokaži go otklonenieto ..)
(.. pokaži ..) s avtomatično poblokovo naznačavane na diskovoto prostranstvo. - Otklonenie.
Obqo opisanie na diskova fajlova sistema
(.. skrij go otklonenieto ..)
s avtomatično poblokovo naznačavane na diskovoto prostranstvo. (.. skrij ..)- wiki/List_of_file_systems Ne stava dyma za IBM/360 ili IBM/370.
- V osnovata e indeksniut fajl - naj-važniut fajl vurxy diskut.
- Ima i drygi fajlove - važni časti na fajlovata sistema:
- bitmap na svobodnite elementi ot indeksniut fajl,
- fajl, sustaven ot svobodnite blokove na diskut,
- fajl, sustaven ot povredenite diskovi blokove,
- izpulnim kod na operacionnata sistema, i
- glavna direktoria.
- Obruqenieto kum vseki ot gorespomenatite fajlove e po nomer, a ne po ne̋kakvo ime.
- Toest, vseki ot gorespomenatite fajlove si ima fiksiran nomer - ne̋kakvo malko čislo.
- Suzdavaneto na fajlovata sistema - suzdavaneto na tezi osnovni fajlove - se nariča inicializacia, a ne formatirane.
- Formatiraneto e standartno, fabrično i ne e problem na softwerut.
- Indeksniut fajl se sustoi ot plutno razpoloženi elementi (entries)
s ednakva fiksirana dulžina.
- Tezi elementi se nomerirat s posledovatelni čisla ot nyla nagore.
- Dostuput do element na indeksniut fajl e po nomer.
- Dostuput do element na indeksniut fajl e burz - me̋stoto my se izčisläva lesno.
- Edin element na indeksniut fajl:
- može da bude svoboden, ili
- može da sudurža opisanie na fajl, ili
- može da sudurža produlženie na opisanieto na fajl.
- Posledovatelnite bitove ot bitmap-fajlut suotvetstvat na posledovatelnite elementi na indeksniut fajl.
- Suotvetniut bit pokazva dali elementut na indeksniut fajl e svoboden.
- Kogato edin element na indeksniut fajl
sudurža opisanie na fajl, togava:
- Nomerut na tozi element se polzva kato nomer na fajl.
- Ne samo za gore-spomenatite "važni" fajlove, no i za vseki fajl.
- Opisanieto na edin fajl,
suduržaqo se v element ot indeksniut fajl, se sustoi ot slednite časti:
- Neformalna čast. Naprimer ime i razširenie.
- Ne e ot interes v tozi kontekst.
- Zatova tazi informacia e neformalna.
- Tiput na fajlut. Važno.
- Obiknoven fajl (suzdaden ot potrebitel).
- Direktoria (directory, folder).
- "Važen" fajl izmeǧy gorespomenatite, podduržan ot fajlovata sistema i skrit ot potrebitelite.
- Specifikacia na pravata za dostup. Važno.
- Koj ima pravo na dostup do fajlut.
- I kakuv vid dostup my se razrešava.
- Datirovki. Timestamps. Važno.
- Vremeto na suzdavane na fajlut.
- Vremeto na poslednoto my izmenenie.
- Razpoloženieto na fajlut vurxy diskut. Naj-važnoto.
- Na koi diskovi blokove e razpoložen fajlut.
- Posledovatelno se opisvat vsički fragmenti na fajlut.
- Poreden fragment ot tolkova diskovi bloka, započvaq ot tozi diskov blok.
- Ako fajlut e silno fragmentiran, opisanieto my tre̋bva da produlži v dryg element na indeksniut fajl.
- Ako element na indeksniut fajl sudurža produlženie na opisanieto na fajl, nomerut my ne se polzva kato nomer na fajl.
- Neformalna čast. Naprimer ime i razširenie.
- Samiut indeksen fajl kato "važen" fajl si ima fiksiran nomer (nyla ili edno) i črez svoüt si element s tozi nomer sam opisva razpoloženieto si.
- Na fiksirano me̋sto v načaloto na vseki element ot indeksniut fajl
ima čislo, narečeno posledovatelen kontrolen nomer.
- Vseki put, kogato tozi element biva naznačavan da sudurža opisanieto na ne̋koj fajl, tova čislo - posledovatelniut kontrolen nomer, se yveličava s edinica.
- Kum samiut fajl, čieto opisanie se sudurža v elementut, se obruqame ne prosto črez nomerut na elementut, a črez dvojka nomera: nomerut na elementut i posledovatelniut kontrolen nomer.
- Taka se pravi, za da se obezsilüt obruqenia kum stari veče iztriti fajlove, koito su polzvali za opisanieto si suqiut element ot indeksniut fajl.
- Svobodnite diskovi blokove se oformät kato otdelen "važen" fajl.
- "Razpoloženieto" my se opisva črez indeksniut fajl, podobno na vseki dryg fajl.
- Samo fajlovata sistema ima dostup do nego, i to po nomerut my.
- Ako ne̋koj obiknoven fajl bude iztrit ot potrebitelüt, negovite blokove se dobavät kum tozi fajl.
- Tozi fajl biva pretursvan ot razni programi za vuzstanovävane na iztriti danni.
- Povredenite (lošite) diskovi blokove se oformät kato dryg otdelen "važen" fajl.
- "Razpoloženieto" my se opisva črez indeksniut fajl, podobno na vseki dryg fajl.
- Samo fajlovata sistema ima dostup do nego, i to po nomerut my.
- Izpulnimiut kod na operacionnata sistema ..
- obiknoveno se oformä kato "važen" fajl.
- No tova ne e zadulžitelno za samata fajlova sistema.
- Pri načalno zareǧane (boot) purviut softwer e s minimalni ymenia.
- Za ne go karame da se rovi po direktorii, oformäme tova, koeto tre̋bva da se pročete pri načalno zareǧane ot diskut v operativnata pamet, kato fajl s maluk fiksiran nomer.
- Prosto za ylesnenie.
- Glavnata direktoria (master directory) e vtoriut po "važnost" fajl
sled indeksniut fajl.
- Ot "važnite" fajlove, samo toj se viǧa ot potrebitelite.
- Drygite "važni" fajlove su izklÿčitelno za "slyžebno polzvane".
- Makar da e "važen" fajl, dostupen po fiksiran maluk nomer, glavnata direktoria se viǧa ot potrebitelite, zaqoto e direktoria (directory, folder).
- Fajlovete, koito potrebitelite viǧat i s koito te operirat, bivat
- obiknoveni fajlove (ordinary files), i
- direktorii (directories, folders).
- Drygite tipove (naprimer linkovete) za prostota gi propyskam.
- I direktoriite, i obiknovenite fajlove su vse fajlove i si imat opisanie v ne̋koj element na indeksniut fajl.
- Nomerut na tozi element slyži za nomer na fajlut.
- Dvojkata čisla nomerut na elementut ot indeksniut fajl i posledovatelniut kontrolen nomer slyžut za prepratka (za obruqenie) kum fajlut.
- Tova važi za vseki fajl: obiknoven fajl, direktoria ili puk "važen" fajl.
- Fajlovata sistema obiknoveno ne obruqa vnimanie na vutrešnoto suduržanie na
obiknovenite fajlove.
- S obiknovenite fajlove se zanimava potrebitelskiut softwer.
- Obače direktoriite se podduržat ot fajlovata sistema.
- Fajlovata sistema znae vutrešnata stryktyra na direktoriite.
- A tazi stryktyra e slednata:
- [točka kato ime na fajl], prepratka kum samata direktoria, koäto si e fajl
- [dve točki kato ime na fajl], prepratka kum direktoriata na po-gorno jerarxično nivo
- ime na fajl, prepratka kum fajlut
- ime na dryg fajl, prepratka kum fajlut
- i taka natatuk za mnogo fajlove.
- Purvite dva reda se slagat za ydobstvo pri obxoǧane na jerarxiata ot direktorii.
- Za imeto na fajlut može da ima ne̋kakvi ograničenia, može i da ne̋ma.
- Prepratkata kum fajlut predstavläva dvojkata čisla nomerut na elementut ot indeksniut fajl i posledovatelniut kontrolen nomer.
- Direktoriite suzdavat jerarxična stryktyra na fajlovata sistema.
- Potrebitelite imat predstava za neü.
- Edin potrebitel ili suzdava nov obiknoven fajl, ili suzdava nova direktoria.
- Kakvoto i da suzdava, potrebitelüt tre̋bva da go složi v ne̋koä suqestvyvaqa direktoria.
- Potrebitelüt ne može da suzdava fajlove izvun suqestvyvaqite direktorii.
- (.. skrij go otklonenieto ..)
- (.. skrij go razpredeläneto na diskovoto prostranstvo ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü petata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- Pri IBM/System-360 edna pista vinugi se naznačava na edin fajl ce̋lata.
- ►► Spodeleni cilindri (.. pokaži gi ..)
-
▼▼
Spodeleni cilindri
(.. skrij gi ..)
- Diskovata pamet na System/360: tova e zaglavieto na tazi peta beseda.
- Pri tova položenie ne bi bilo redno da podminu takava texnika kato spodelenite cilindri (shared cylinders).
- Ako pri ne̋koä obrabotka yčastvat dva fajla, naprimer vxoden i izxoden, i dvata na edin i suq disk, pri onova bedno byferirane zaradi onazi oskudica na operativna pamet, beše vuzmožno obrabotkata da se bavi zaradi dviženieto na diskovite magnitni glavi meǧy cilindrite, kakto i da se pričini vurxovo natovarvane na mexanizmite na diskovoto ystrojstvo.
- V takiva slyčai se nalagaše da se prilaga texnikata spodeleni cilindri.
- Kakto be kazano v predišniut razdel, potrebitelüt (programistut, texnologut na obrabotkata) tre̋bva da ykazva kude po diskut da se razpolagat fajlovete.
- Pri texnikata spodeleni cilindri dolnite pisti na ne̋kolko posledovatelni cilindura se naznačavat na ediniut fajl, a gornite pisti - na drygiut.
- Taka se namaläva dviženieto na grebenut s magnitnite glavi.
- Obrabotkata može da mine ne̋kolko puti po-burzo, bez tre̋suk i vibracii.
- Otdavna veče diskovoto prostranstvo se razpredelä avtomatično.
Geometriata na diskut otdavna ne̋ma značenie.
Oskudicata na operativna pamet e preodole̋na.
Osigyräva se podxodäqo byferirane na operaciite za vxod i izxod.
Ne̋ma veče nyǧa ot texnikata sus spodelenite cilindri. Slava Bogy! - (.. skrij gi spodelenite cilindri ..) (.. skrij ü petata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Asociativen dostup do diskut (.. pokaži go ..) (.. razgunuto ..)
-
▼▼
Asociativen dostup do diskut
(.. skrij go ..)
(.. svij go ..)
(.. razguni go ..)
- Diskovata pamet na System/360: tova e zaglavieto na tazi peta beseda.
- Pri tova položenie ne bi bilo redno da podminu
- indeksno-posledovatelnite fajlove i
- indeksno-posledovatelniut metod na dostup (ISAM: indexed-sequential access method).
- Suvsem normalno e kompÿtrite da predlagat i da osuqestvävat asociativen dostup.
- Naprimer, da se namerüt dannite za čovek sus zadadeno EGN.
- Ili da se nameri fajl na diskut sus zadadeno ime.
- No tova se osuqestväva ot softwerut.
- Pri indeksno-posledovatelniut metod na dostup obače
asociativniut dostup e podpomognut ot xardwerut.
- Pri sistemite IBM/360 i IBM/370 diskovite pisti se formatirat spored iziskvaniata na potrebitelüt.
- Pistite na indeksno-posledovatelniut fajl, kojto qe sudurža danni za xora i kojto qe ima EGN-to za klÿč, qe budut formatirani taka, če meǧy žalonut i blokut s danni da ima indeks s dulžina 10 bajta.
- Zapisite v indeksno-posledovatelniut fajl su sortirani (podredeni) po klÿč, v slyčaüt po EGN.
- Ystrojstvoto može da polyči komanda "tursi na tazi pista zapis s tova suduržanie na indeksut".
- Ystrojstvoto qe dokladva "indeks s tova suduržanie toky-qo minu pod moäta glava".
- I qe polyči nova komanda "pročeti blokut s danni, kojto sledva".
- Kolkoto i burzo da se vurti diskut, komynikaciata ystrojstvo-kontroler-kanal e po-burza.
- Kogato blokut s danni stigne četäqata glava na ystrojstvoto, to veče qe znae, če tre̋bva da gi pročete dannite.
- Qe znae, če dannite za čovekut sus zadadenoto EGN su namereni.
- Može i drygo da se slyči.
- Ystrojstvoto može da dokladva "indeks sus suduržanie, po-gole̋mo ot tursenoto, preminu pod moäta glava".
- Togava kanalut i kanalnata my programa qe si napravüt izvodut, če na tazi pista takuv zapis ne̋ma.
- Kum edin indeksno-posledovatelen fajl e vuzmožen i
posledovatelen dostup.
- Programata qe polyči posledovatelno edin sled dryg vsički zapisi ot fajlut (naprimer za vsički xora, za koito ima danni vuv fajlut), i to sortirani po klÿč (podredeni po EGN).
- Vse edno, če programata čete sortiran fajl ot magnitna lenta.
- Obiknoveno, edin indeksno-posledovatelen fajl se pulni
pri posledovatelen dostup.
- Indeksno-posledovatelniut fajl tre̋bva predvaritelno da e suzdaden na diskut s nyžnoto formatirane.
- Zapisite predvaritelno se podgotvät kato posledovatelen fajl na magnitna lenta.
- Sortirani! Podredeni po klÿč.
- Ako zapisite, koito qe zapulnüt indeksno-posledovatelniut fajl, ne su predvaritelno sortirani, rezyltatut može da e otčajvaq.
- Sled purvonačalnoto zapulvane na indeksno-posledovatelniut fajl, novopostupvaqite zapisi si namirat me̋stoto v podredbata po klÿč, no svalät efektivnostta - i zaemat poveče me̋sto, i se namirat po-trydno.
- Zatova ot vreme na vreme edin indeksno-posledovatelen fajl tre̋bva da se presuzdava.
- Ima i drygi slyčai, kogato pri sistemite IBM/360 i IBM/370 se predostavä
asociativen dostup do diskut.
- Dali v tezi slyčai se polzva specialna podkrepa ot xardwerut, kakto pri indeksno-posledovatelnite fajlove, ne znaü.
- Purviut takuv slyčaj e samata tablica na suduržanieto na diskut, VTOC (Volume Table Of Contents).
- Sistemata namira suqestvyvaq diskov fajl po zadadeno ime na fajlut, preraväjki VTOC-ut.
- Vtoriut takuv slyčaj (.. pokaži go ..) su taka narečenite biblioteki (libraries).
- Vtoriut takuv slyčaj
su taka narečenite biblioteki (libraries).
(.. skrij gi bibliotekite ..)
- Imaše programa bibliotekar (librarian), koäto podduržaše diskovi fajlove s bibliotečna stryktyra - biblioteki.
- Edna biblioteka sudurža modyli, na koito možem da gledame kato na po-malki fajlčeta.
- Črez bibliotekarüt, edin modyl ot biblioteka možeše da bude nameren po negovoto ime.
- Imeto na modyla ne možeše da e po-dulgo ot 8 bajta.
- Na potrebitelite se davaše samo CLI-dostup do bibliotekite - črez ezikut JCL (Job Control Language).
- Sistemni programi - kompilatori, asembler, tekstov redaktor, LinkageEditor, Loader i drygi, polzvaxu API-ta kum bibliotekarüt - možexu da go izvikvat vutrešno, no tova ne beše dokymentirano.
- Iz razni knigi sum sreqal da se obsuǧa bibliotečen metod na dostup, no ne i vuv firmenata dokymentacia.
- Može bi zaqoto vuv firmenata dokymentacia ponätieto metod na dostup označavaše kanalni programi, a bibliotekarüt može da ne e polzval takiva.
- V sistemata DOS/360 suqestvyvaxu tri vida biblioteki:
- SLB: source code library: biblioteka ot izxodni programni kodove.
- Takava biblioteka imaše razdeli s ednobykveni označenia.
- Pri tursene na daden modyl tre̋bvaše da se ykaže razdelut.
- Naprimer, razdel 'A' beše prednaznačen za asemblerski programi (za makrodefinicii).
- A puk razdel 'P' - za programki na PL/I.
- Bibliotekarüt ne proverävaše sintaksisut na tekstovete kato programen kod.
- Možeše da se slagat proizvolni tekstove, stiga da ne gi podavate na asembler ili na kompilator.
- Naprimer, možete da otvorite razdel 'L' i tam kato modyli da slagate tekstove na lÿbovni pisma.
- Samata operacionna sistema DOS/360 se razprostranävaše v source code vuv vid na SLB, suduržaqo makrodefinicii.
- RLB: relocatable library: biblioteka ot obektni modyli.
- Rezyltatut ot asembler ili kompilator se nariča obekten modyl i obiknoveno se zapisva v RLB.
- Imenno zaradi tazi praktika pri IBM/360 rezyltatite ot rabotata na takiva ezikovi procesori i dosega se naričat modyli (ili obektni modyli).
- Fynkcionalnostta na nekogašnite RLB-ta i dosega se pazi edno kum edno vuv fajlove, naričani statični biblioteki.
- V sistemata Windows statičnite biblioteki imat razširenie na imeto ".LIB", a v Unix - ".a".
- Zaqo relocatable? Zaqoto suduržaqite se programi na mašinen ezik, rezyltat ot rabotata na ne̋koj ezikov procesor, ne su obvurzani s me̋sto v operativnata pamet, kudeto da budut zaredeni i izpulneni.
- Makar i na mašinen ezik, tezi programki vse oqe ne su izpulnimi.
- LinkageEditor-ut e programa, koäto ot predvaritelno asemblirani ili kompilirani obektni modyli (relocatables) qe suzdade gotova za izpulnenie programa vuv format core-image.
- I v pomoq na LinkageEditor-ut, bibliotekarüt može da nameri modyl v RLB-to ne samo po ime, no i po dryg "vunšen simvol".
- Kogato obekten modyl (a relocatable) se puxa v RLB (v statična biblioteka), bibliotekarüt go indeksira ne samo po imeto na modylut, no i po vseki dryg simvol, otbele̋zan kato "vunšen" (external) ot ezikoviut procesor.
- Zabeležka. Suvremenniut termin "statična biblioteka" otrazäva faktut, če veče ima podobni biblioteki s razširena fynkcionalnost, naričani "dinamični biblioteki" (DLLs) ili (v Unix) "shared objects" (.so).
- CLB: core-image library: biblioteka ot izpulnimi programi.
- V sistemata DOS/360 edin modyl ot CLB ne podleži na sledvaqa obrabotka.
- Toj može samo da bude zareden v pametta i izpulnen.
- Obiknoveno takuv modyl e markiran s adres ot pametta, kudeto toj tre̋bva da bude zareden, za da može da se izpulni pravilno.
- Imaše izpulnimi modyli, markirani kato samo-premestvaqi se (relocatable).
- Takava programa v načaloto proveräva kude e zaredena i sama nastrojva mestata ot svoüt kod, koito su pozicionno zavisimi.
- SLB: source code library: biblioteka ot izxodni programni kodove.
- (.. skrij gi bibliotekite ..) (.. skrij go asociativniut dostup ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Izpolzvaneto na indeksno-posledovatelnite fajlove i
indeksno-posledovatelniut metod na dostup može da e bilo ymestno pri
paketniut režim na rabota (batch processing).
- No te nikak ne su podxodäqi za realnata rabota na edin suvremenen survur.
- Segašnite raznoobrazni iziskvania se pokrivat ot jerarxičnata fajlova sistema i naj-veče ot bazite danni.
- Samo softwer može da posreqne raznoobrazieto v suvremennata dejstvitelnost.
- Slava Bogy! Xardwerut veče ne se mesi pri predostaväneto na asociativen dostup.
- (.. skrij go asociativniut dostup ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü petata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Sistemniut softwer se mesi vuv vutrešnata stryktyra na fajlovete (.. pokaži ..) (.. razgunuto ..)
-
▼▼
Sistemniut softwer se mesi vuv vutrešnata stryktyra na fajlovete
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
- Sistemniut softwer se e čyvstval dlužen da pravi tova, za da ylesnäva potrebitelite.
- Ne e suznaval, če tova ne my vliza v rabotata.
- Magnitnata lenta veče e otpadnula kato nositel na potrebitelski danni.
(.. pokaži ..) A ne̋koga tova beše osnoven nositel. (.. pokaži gi magnitnite lenti ..) - Magnitnata lenta veče e otpadnuka kato nositel na potrebitelski danni.
A ne̋koga tova beše osnoven nositel. (.. skrij ..) (.. skrij gi magnitnite lenti ..)- Sistemniut softwer se e čyvstval zadulžen da markira fajlovete, razpoloženi na magnitna lenta,
- da slaga v načaloto i v kraüt na vseki fajl etiketi.
- V etiketite na fajlut sistemata zapisva:
- imeto na fajlut,
- versia i data,
- porednost na tozi fajl v poredicata fajlove na tozi tom (na tazi rolka),
- dali tova e samo fragment ot fajlut,
- kolko drygi fragmenti na tozi fajl vurxy drygi rolki suqestvyvat,
- tova posledniut fragment na fajlut li e ili fajlut ima produlženie na dryga rolka,
- dali zapisite su s fiksirana ili s promenliva dulžina,
- kolko e dulžinata - fiksiramata ili maksimalnata - na edin fizičeski zapis,
- kolko e dulžinata na edin logičeski zapis,
- kolko obqo zapisa ima v segmentut ili vuv fajlut.
- Kakto zaradi paketnata obrabotka pri mašinite IBM/360/370,
taka i zaradi magnitnite lenti kato osnoven nositel na potrebitelski danni,
taka i zaradi ystanovilata se kobolistka tradicia,- sistemniut softwer markiraše meta-danni za fajlovete
- kakto pri lentite, taka i pri diskovete.
- Paketnata obrabotka ostanu v minuloto.
Kompÿtrite veče rabotüt v realno vreme. (.. pokaži kakvo donese sistemata Unix ..)
(.. pokaži ..) Dojde i sistemata Unix. - Paketnata obrabotka ostanu v minuloto.
Kompÿtrite veče rabotüt v realno vreme.
Dojde i sistemata Unix. (.. skrij kakvo donese tä ..) (.. skrij ..)- Sistemata Unix e mnogo-potrebitelska (multi-user).
- Osnovnata ï griža tre̋bva da e pravilnoto razpredelenie na resyrsite meǧy potrebitelite.
- Magnitnata lenta e nedelim resyrs. Ne se spodelä meǧy potrebitelite.
- Sistemata ü naznačava na potrebitel ce̋lata
- i ne se interesyva kakvo potrebitelüt qe pravi s lentata.
- Sistemata Unix ne poddurža fajlove na magnitna lenta.
- Ce̋loto lentovo ystrojstvo se razgleǧa kato fajl.
- Softwerut, kojto po kobolistka tradicia čete i piše etiketi i fajlove ot i na magnitna lenta, e izce̋lo potrebitelski.
- Ot dryga strana, kobolistkata tradicia e vuzniknula v "bezdiskovo vreme".
- A puk sistemata Unix predpolaga disk,
- predpolaga vunšno zapomnäqo ystrojstvo s pre̋k burz dostup i za spodeleno polzvane ot vsički potrebiteli.
- Sistemata Unix poddurža fajlova sistema na disk, i razpredelä diskovite resyrsi vuz osnova na fajlovete.
- Sistemata Unix tre̋bva da identificira i lokalizira fajl v jerarxičnata fajlova sistema po fajlova specifikacia (ime na fajl).
- Sistemata Unix tre̋bva da proveri dali tozi potrebitel ima pravo na dostup do tozi fajl.
- Tä može da otkaže dostup do fajlut.
- No ako tä razreši iskaniut dostup, kakvo potrebitelüt qe pravi vutre vuv fajlut - tova si e rabota na potrebitelüt - sistemata Unix ne my se mesi.
- Sistemata Unix rešava vuprosut za kompetenciite v sloevete na softwerut.
- Ne̋ma si veče predstava sistemniut softwer za vutrešnata stryktyra na fajlovete.
- Slava Bogy!
- (.. skrij go ottegläneto na sistemniut softwer ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü petata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Magnitnite glavi veče su si čast ot diskovete (.. pokaži gi diskovete Winchester ..)
-
IBM-2311
- Spira se diskovoto ystrojstvo i se čaka diskoviut paket da spre da se vurti.
- Ne̋ma spirački, spira bavno.
- Ne̋kude nablizo, obiknoveno vurxy ystrojstvoto, stoi praznata kytia na diskoviut paket, sustoäqa se ot duno i kapak s rukoxvatka.
- Sus silnata (de̋snata) ruka se vzema kapak za rukoxvatkata.
- S drygata ruka se otvarä gornata vrata na ystrojstvoto.
- Diskoviut paket s pomoqta na svoüt kapak s vurtelivo dviženie se prixvaqa i izvaǧa se ot ystrojstvoto.
- S drygata ruka se zatvarä gornata vrata na ystrojstvoto.
- Slaga se vurxy dunoto, dunoto qrakva i se prikrepä za paketut otdoly.
- Diskoviut paket se pribira za suxranenie v škaf.
- Drygiut diskov paket, kojto tre̋bva da se montira, se vadi ot škafut.
- Sus silnata si ruka go xvaqame zdravo za rukoxvatkata na kapakut my.
- Zanasäme go do ystrojstvoto.
- S drygata ruka otkopčavame dunoto ot paketut i go slagame vurxy ystrojstvoto.
- Sus suqata slaba ruka otvaräme gornata vrata na ystrojstvoto.
- Sus silnata si ruka postaväme diskoviut paket vurxy špindelut na ystrojstvoto
- i s vurtelivo dviženie zakrepvame paketut kum špindelut i osvoboǧavame kapakut na paketut.
- Sus slabata ruka zatvaräme gornata vrata na ystrojstvoto.
- Silnata ruka durži prazniut kapak i go postavä vurxy dunoto.
- S koä da e ruka se pyska diskut da se zavurti.
- Može da mine minyta, dokato yskori do nyžnata skorost.
- Qom tova stane, grebenut s glavite vlizat na nylev cilinddur i ystrojstvoto minava v gotovnost.
- Ystrojstvata ES-5063 (IBM-2314), s koito suqo sum razbotil, vunšno izgleǧaxu po suqiut način.
- Obače diskoviut paket imaše 11 ploči (vmesto 6) i težeše poveče.
- I plutnostta na magnitniut zapis be ydvoena.
- V rezyltat, IBM-2314 subiraše četiri puti poveče informacia, otkolkoto IBM-2311.
- Ystrojstvoto na kartinkata e myzeen eksponat.
- Na me̋stoto, kudeto e nadpisut s texničeskite danni, stoeše praznata kytia na montiraniut diskov paket.
- Takiva ystrojstva se proizveǧaxu v Stara Zagora, a diskovi paketi - v Pazarx̌ik.
-
▼▼
Magnitnite glavi veče su si čast ot diskovete
(.. skrij gi diskovete Winchester ..)
- Ne̋koga se e sčitalo, če magnitnite glavi i mexanizmut za pridvižvaneto im meǧy cilindrite
su mnogo po-skupi ot magnitnite nositeli.
- Magnitniut nositel e metalna ploča s magnitno pokritie ot dvete strani.
-
(..Vižte IBM-2311 na kartinka ..) (.. pročetete za nego ..) - Pločite obiknoveno se oformäxu v paketi (disk packs).
- Paket ot šest ploči (IBM-2311) imaše deset povurxnosti i suotvetno deset pisti na cilindur.
- Paket ot edinadeset ploči (IBM-2314) imaše dvadeset povurxnosti i dvadeset pisti na cilindur.
- Vunšnite povurxnosti v paketut ne se polzvaxu.
- Diskovete i diskovite paketite be̋xu smenni.
- Te se montiraxu v ystrojstvoto ot čovek-operator.
- Mexanizmut, vurtäq diskovete, magnitnte glavi i mexanizmut za pridvižvaneto im be̋xu čast ot ystrojstvoto (čast ot drajvut, disk drive).
- Edno diskovo ystrojstvo beše gole̋mo kolkoto avtomatična peralnä ili avtomatična mialna.
- Po ne̋koe vreme imaše flopi-diskove ili disketi - plastmasa s magnitno pokritie.
- Te̋x ne gi sčitam za istinski diskove, poneže ne predostaväxu dostatučno burz dostup.
- Osnovniut eksploatacionen problem beše zamursävaneto.
- Pri smenni nositeli, praxut povreǧaše i magnitnite glavi, i nositelite.
- Dryg eksploatacionen problem beše nastrojkata na glavite kum standart za magniten zapis.
- Obiknoveno gi ostaväxu nenastroeni.
- V rezyltat, za vseki diskov paket tre̋bvaše da se znae koe ot ystrojstvata može da go čete.
- Operacionnata sistema OS/360 iziskvaše nastrojka na glavite kum standartut.
- DOS/360 ne postaväše takova iziskvane.
- Texnologiite naprednuxu: miniatÿrizacia, masovo proizvodstvo, poevtinävane.
- Magnitnite glavi i mexanizmut za pridvižvaneto im meǧy cilindrite ne se sme̋tat veče za mnogo po-skupi ot magnitnite nositeli.
- Ogromnata vmestimost pri novite texnologii namalävat neobxodimostta ot sme̋na na nositelite.
- Vsičko veče se oformä kato edno edno ystrojstvo - glavi i magnitna povurxnost, kapsylirani i izolirani ot vunšnata sredà.
- Za purvite takiva modeli se izpolzvaše nazvanieto Winchester.
- Pri te̋x zadvižvaneto beše vse oqe vunšno.
- Pri suvremennite HDD (hard disk drives) absolÿtno vsičko e kapsylirano i izolirano -
i vurteneto na diskut, i postupatelnoto dviženie na grebenut s glavite. - (.. Ilÿstracia: edin terabajt HDD Toshiba, USB, 2.5 inča ..)
- Magnitnite glavi su fabrično kapsylirani v edno diskovo ystrojstvo zaedno s magnitnata povurxnost.
- Slava Bogy!
- (.. skrij gi diskovete Winchester ..) (.. skrij ü petata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- Ne̋koga se e sčitalo, če magnitnite glavi i mexanizmut za pridvižvaneto im meǧy cilindrite
su mnogo po-skupi ot magnitnite nositeli.
- ►► Neqo kato zaklÿčenie (.. pokaži go zaklÿčenieto na besedata ..) (.. razgunuto ..)
-
▼▼
Neqo kato zaklÿčenie
(.. skrij go zaklÿčenieto na besedata ..)
(.. svij go ..)
(.. razguni go ..)
- ►► A ne̋koga System/360 beše za primer .. (.. pokaži ..)
-
▼▼
A ne̋koga System/360 beše za primer ..
(.. skrij ..)
- Ne̋koga ot Moskva e došla komanda vsički proekti da se kancelirat i
ce̋lata inženerna misul v prostranstvoto ot Brandenbyrgskata vrata do Vladivostok
da se vpregne vuv reverse-engineering na IBM System/360.
- Za da se izdade takava komanda ot Moskva, tre̋bva System/360 na IBM da e bila veče stanula za primer v celiut ostanul sve̋t.
- Oficialno se kazvaše, če razrabotvame ES ЭVM (Edinaä Sistema Эlektronnыx Vыčisliteljnыx Mašin).
- Profesionalnata mi istoria kato kompÿturx̌ia započnu ot System/360.
- Ne pretendiram za točnost pri istoričeskite spravki.
- Ne znam v koj kompÿtur su bili priloženi magnitni diskove za pruv put.
- No do mene diskovete dostignuxu na bordut na System/360.
- Osven diskovete, kakvo drygo trajno e ostanulo ot System/360?
- Na purvo me̋sto, softwerniut biznes. Kompÿturnata programa kato indystrialen prodykt.
- Sled tova, neqo neznačitelno: ponätieto bajt. Nikoj veče ne smee da izneveri na tazi togavašna moda.
- Ponätiata obekten modyl i biblioteka ot obektni modyli.
- Tyka popadat i LinkageEditor-ut, asemblerut, kompilatorite ..
- Kompilatorut ot FORTRAN be vpečatlävaq s burzinata si.
- Sužale̋vaxme ü mašinata, kato ü gledaxme kak se muči da kompilira COBOL.
- I zaqo ne se seqam za drygo? Trajno ostanulo ot System/360?
Po mnogo pričini.- Zabravil sum mnogo neqa veroätno.
- Naistina progresut v texnologiite e ogromen.
- Toj e izxvurlil i obezsmislil mnogo neqa.
- V tazi beseda, posvetena na diskovete na System/360,
- Vi zanimavax naj-veče s tova, koeto go imaše ne̋koga tam,
- a sega veče - Slava Bogy! - go ne̋ma.
- Seqam se za ne̋koi neqa, nesvurzani s diskovete, koito gi imaše v System/360, a sega veče gi ne̋ma.
- Desetični čisla s plavaqa točka. Tova e neobäsnima strannost na System/360.
- Razni drygi stranni formati i kodirovki.
- EBCDIC vmesto ASCII.
- Paketirani desetični čisla i mašinna aritmetika s takiva čisla.
- Zapisi s promenliva dulžina s predšestvaq broäč.
Tova može da e polezno, no e izostaveno.
- (.. skrij koga System/360 beše za primer ..) (.. skrij go zaklÿčenieto na besedata ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Ne̋koga ot Moskva e došla komanda vsički proekti da se kancelirat i
ce̋lata inženerna misul v prostranstvoto ot Brandenbyrgskata vrata do Vladivostok
da se vpregne vuv reverse-engineering na IBM System/360.
- ►► Ezikut COBOL stupkan v praxta ot ezikut C (.. pokaži ..)
-
▼▼
Ezikut COBOL stupkan v praxta ot ezikut C
(.. skrij ..)
- Na kakvo se dulži zašemetävaqiut yspex na texničeskoto razvitie?
Na tova, če ne se obruqaše vnimanie na tesnite mesta (bottle-necks: botulneci),
a na važnite neqa, koito izveǧat texnologiata na novi ravniqa, na novi visoti.- Ne na mašinna desetična aritmatika.
- Ne na xardwerno podpomagane na asociativniut dostup do diskut.
- Ne na složni mašinni instrykcii, koito taka se opitvat da vuvlekut xardwerut v botulnecite.
- Ne - botulnecite su si softweren problem.
- Da na ekstremnata miniatÿrizacia.
- Da na ekstremno gole̋mata kompÿturna pamet.
- Da na ekstremnoto burzodejstvie.
- Da na ekstremno niskata energozavisimost.
- Predi poveče ot 40 godini sum počnul na kompÿtur sus 120 kilobajta operativna pamet i sus sedem-megabajtovi diskove.
- Sega se naslaǧavam:
- na 16 gigabajta operativna pamet (140000 puti poveče)
- i na terabajtov disk (25000 puti poveče),
- i to s razmerut na kytia šokoladovi bonboni, a ne v zala s klimatik, protivopožarna instalacia i povdignut pod.
- Samo se naslaǧavam. Zaqoto zaslyga ne̋mam. Samo se vuzpolzvam.
- A koj ima zaslyga?
- Koj go dviži progresut?
- Ima za kakvo da im zaviǧat smòtanite zlobni levi pocepkovci "vsex stran".
- Kompÿturna arxitektyra ot tip RISC (Reduced Instruction Set Computers).
- Ne e važno, če xardwerut na centralniut procesor sme̋ta samo dvoično, a ne desetično.
- Važnoto e da sme̋ta ekstremno burzo.
- Softwerut lesno qe prevurne čislata ot desetični v dvoični, a posle obratno v desetični.
- Ako desetičnata aritmetika beše realizirana v "xardwerut", edva li qeše da e po-različno.
- Ne e važno, če centralniut procesor ne priema instrykcia "premesti ottyk tam dvesta bajta".
- Važnoto e instrykciata "premesti ottyk tam edin bajt" da se izpulnäva ekstremno burzo.
- Puk softwerut qe ü zadava tazi instrykcia dvesta puti.
- Arxitektyrata RISC be naveäna ot ezikut C i ot sistemata Unix.
- Za yžas na kobolistite.
- Ne e važno, če xardwerut na centralniut procesor sme̋ta samo dvoično, a ne desetično.
- Kobolistut može da ceni texnikata "logičeski i fizičeski zapisi"
i da se radva na predostavenite ot sistemata ylesnenia v tazi vruzka.
- A puk programistut na C se podxilkva na tova.
- Če tova su elementarni neqa.
- Rodniut mi ezik za programirane beše PL/I.
- Toj beše neqo kato obedinenie na trite ezika ALGOL-60, FORTRAN-IV i COBOL,
- no bez "izvraqeniata", kakvito vseki ot te̋x si imaše.
- Ezikut C, sistemata Unix i obektno-orientiranoto programirane stupkaxu i PL/I.
- Zavuršix profesionalnata si kariera kato programist na C i C++.
- Sega kato pensioner se ypražnävam na JavaScript.
- (.. skrij ü pobedata na ezikut C ..) (.. skrij go zaklÿčenieto na besedata ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Na kakvo se dulži zašemetävaqiut yspex na texničeskoto razvitie?
- ►► Diskut e dyšata na kompÿturut (.. pokaži ..)
-
▼▼
Diskut e dyšata na kompÿturut
(.. skrij ..)
- Makar če žabite i ribite su vse grubnačni životni kato nas, az ne sum sposoben da im naznačavam individyalnost.
- Xorata naznačavat individyalnost na kyčetata i kotkite.
- Daže dyša im naznačavat!
- Lično az s pydelite imam spomeni!
- Za mene te su ličnosti s individyalnost i dyša.
- Ima li kompÿturut individyalnost i dyša?
- Stanu dyma, če ne̋koga imaše bezdiskovi kompÿtri.
- Te su kato ribite i žabite.
- Bez individyalnost i bez dyša.
- Dokato polzvam daden kompÿtur, az pulnü diskut my sus spomeni.
- Diskut my pridava na kompÿturut individyalnost.
- Da ne se izsilvam da kazvam, če kompÿturut imal dyša.
- Znam my karantiite - tova e mašina.
- Bitove. Mnogo mnogo bitove, ama vse bitove.
- Kakva dyša.
- Na nov kompÿtur se radvam.
- Može da se pogrižu da prexvurlü spomenite si ot stariut na noviut disk.
- Za stariut kompÿtur ne̋ma da plaču.
- A pri smurtta na dva pydela i az, i Tamara plakaxme.
- (.. skrij ü dyšata na kompÿturut ..) (.. skrij go zaklÿčenieto na besedata ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ◄► (.. skrij ü petata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ◄► (.. skrij ü petata beseda za diskovete na IBM/360 ..) (.. svij ü ..) (.. posvij ili porazguni ..) (.. razguni ü ..) .. kum načaloto ..
►► 7. Virtyalnata pamet na kompÿtrite (.. pokaži ü šestata beseda ..) (.. razgunuto ..) .. kum načaloto ..
- Virtyalnata pamet na kompÿtrite se osuqestväva črez avtomatična dinamična preadresacia.
- Možete li da si predstavite kompÿtur bez dinamična preadresacia?
- Suvremennite kompÿtri ne mogut bez neü.
▼▼ 7. Virtyalnata pamet na kompÿtrite (.. skrij ü šestata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ◄► Ne znam pri koj kompÿtur se e poävila virtyalnata pamet za pruv put.
- Ne pretendiram za točnost pri istoričeskite spravki.
- Pisax, če do mene diskovete dostignuxu na bordut na System/360.
- Sega pišu, če do mene virtyalnata pamet dostignu na bordut na System/370.
- Neqo poveče.
- Samata dyma "virtyalno" do mene suqo taka dojde sus System/370.
- Kogato stavaše dyma za virtyalni adresi i virtyalna pamet.
- Sega veče ima virtyalna realnost, virtyalen sve̋t, virtyalni priateli, virtyalna lÿbov.
- No tova veče e suvsem drygo.
- A možexu ne̋koga vmesto dymata "virtyalna" (virtual) da ypotrebüt dymata "simylirana" (simulated).
- ►► Neqo kato yvod (.. pokaži go ..) (.. razgunuto ..)
-
▼▼
Neqo kato yvod
(.. skrij go ..)
(.. svij go ..)
(.. razguni go ..)
- ►► Mašinni instrykcii, operandi i adresite im (.. pokaži gi ..)
-
▼▼
Mašinni instrykcii, operandi i adresite im
(.. skrij gi ..)
- Centralniut procesor (CPU: Central Processing Unit) e mozukut na kompÿturut -
tova, deto sme̋ta, misli i vzema rešenia.
- Ot čoveška gledna točka, toj izpulnäva programa.
- Samiut toj obače ne znae za neü, za programata si.
- Centralniut procesor (CPU-to) vuv vseki moment izpulnäva ne̋kakva instrykcia, mašinna instrykcia.
- Susredotočil e vnimanieto si na neü, na tekyqata instrykcia.
- Dokato ü izpulnäva tekyqata instrykcia, veče e zabravil predišnata i si ne̋ma predstava koä qe e sledvaqata.
- A instrykciata idva ot operativnata pamet na kompÿturut.
- Operativnata pamet na kompÿturut (RAM-ut: Random Access Memory, main memory) e izvun CPU-to.
- Za da polyči instrykciata si za izpulnenie, CPU-to izdava zaävka do RAM-ut:
- Prati mi suduržanieto na tolkova bajta, kakto si gi zapomnil, započvajki ot tozi adres.
- Kolko tolkova? Dva, četiri, osem naj-mnogo.
- RAM-ut vzema ot posočeniut adres poredica ot bitove (ne̋kolko bajta) i gi praqa na CPU-to.
- A puk CPU-to gi interpretira i gi izpulnäva kato mašinna instrykcia.
- Vutre v sebe si CPU-to poddurža specialen registur, narečen PC (Program Counter).
- Črez PC-registurut CPU-to znae ot koj adres na RAM-ut da vzeme instrykciata si.
- Kogato CPU-to iska ot RAM-ut sledvaqa instrykcia za izpulnenie, CPU-to izpolzva susduržanieto na PC-registurut za adres kum RAM-ut i vednaga CPU-to yveličava PC-registurut da bude gotov za po-sledvaqata instrykcia.
- Vutre v sebe si CPU-to poddurža ne̋kolko registura, za koito qe stane dyma po-doly.
- PC-registurut e edin ot te̋x.
- Povečeto registri su s obqo prednaznačenie (General Purpose Registers).
- Pri ne̋koi kompÿtri CPU-to vzema suduržanieto na PC-registurut i na registrite s obqo prednaznačenie po edin i suq način.
- Pri drygi kompÿtri (naprimer pri IBM/360/370) CPU-to vzema suduržanieto na PC-registurut po specialen način, sus specialna instrykcia.
- Praktičeski pri vsički kompÿtri ima specialni mašinni instrykcii za ystanovävane na novo suduržanie na PC-registurut.
- Tova su instrykciite za bezysloven ili ysloven prexod (branching, jumping).
- Te promenät adresut na sledvaqata mašinna instrykcia.
- Vutre v sebe si CPU-to poddurža registri.
- Tova su elementčeta pamet. Pamet na edna ruka razstoänie do CPU-to.
- RAM-ut e pamet na edin pogled razstoänie,
- a diskut e neobätna pamet otvud xorizontut.
- Povečeto ot tezi registri su s obqo prednaznačenie.
- CPU-to ne znae prednaznačenieto im. Programata znae.
- CPU-to se obruqa kum takuv registur, samo ako tova e ykazano v izpulnävanata mašinna instrykcia.
- Ne̋koi ot registrite su sus specialno prednaznačenie.
- Takuv e PC-registurut, za kojto stanu dyma.
- CPU-to znae prednaznačenieto my i go izpolzva spored prednaznačenieto my.
- V suvremennite kompÿtri (no ne i vuv IBM/360/370) ima i dryg registur sus specialno prednaznačenie - SP (Stack Pointer).
- Temata za stack-ut i za heap-ut može bi zaslyžava beseda ot tykašnata poredica besedi.
- Takava obače ne se predviǧa.
- Dori ystanoveni termini na bulgarski ne̋ma.
- Puk i tova ne e zagybilo aktyalnostta si - na tezi, koito se yčut da programirat na C ili C++, stack-ut i heap-ut tre̋bva da im budut obäsneni.
- A az ne pišu yčebnik.
- Registrite na CPU-to naj-često suduržat adres.
- Naj-često v te̋x se suxranävat adresi na mesta ot RAM-ut, s koito CPU-to ili po-točno programata raboti.
- Dvata registura sus specialno prednaznačenie, za koito stanu dyma - PC-registurut i SP-registurut, suduržat imenno adresi.
- Registrite na CPU-to s obqo prednaznačenie, koito ne suduržat adresi, ako programata gi polzva,
tä gi polzvat kato akymylatori, naprimer symatori.
- Akymylatorite suduržat danni, koito su rezyltat ot izčislenia i podležut na skorošna obrabotka.
- Tova su elementčeta pamet. Pamet na edna ruka razstoänie do CPU-to.
- Dannite, s koito CPU-to boravi pri izpulnenieto na mašinna instrykcia, se naričat operandi na instrykciata.
- Edin operand:
- ili se sudurža v samata instrykcia,
- ili se sudurža v ne̋koj registur,
- ili se sudurža v RAM-ut po ne̋koj adres.
- Ako operandut se sudurža v RAM-ut, to adresut my:
- ili se sudurža v samata instrykcia,
- ili se sudurža v ne̋koj registur,
- ili se sudurža v RAM-ut po ne̋koj adres.
- Tova poslednoto re̋dko se sreqa, no se sreqa.
- Po-gole̋ma dulbočina na kosveno adresirane ne se sreqa.
- Edin operand:
- I tuj, osnovnata vruzka na CPU-to (na centralniut procesor)
sus svetut izvun nego e vruzkata my s RAM-ut.
- Osnovnoto v tazi vruzka e adresut na me̋sto v RAM-ut.
- CPU-to zadava tozi adres.
- CPU-to ili iska da polyči ot RAM-ut suduržanieto na tozi adres, kakvo e zapomneno tam,
- ili iska ot RAM-ut po ykazaniut adres da budut zapisani (i zapomneni) ne̋kakvi danni (poredica ot bitove), koito CPU-to suqo zadava.
- Dryga vruzka na CPU-to (na centralniut procesor) sus svetut izvun nego
e sistemata na prekusvania.
- Osnovnoto prednaznačenie na mexanizmut na prekusvaniata e
CPU-to da bude yvedomeno za nastupilo izmenenie vuv vunšniut sve̋t.
- Zavuršila e operacia za vxod ili za izxod, natisnul sum klaviš, mrudnul sum miškata, barnul sum touch-screen-ut.
- Trydno mi e da go opišu mexanizmut na prekusvaniata obobqeno.
- Puk e i izvun temata na besedata.
- Osnovnoto prednaznačenie na mexanizmut na prekusvaniata e
CPU-to da bude yvedomeno za nastupilo izmenenie vuv vunšniut sve̋t.
- Pri kompÿturna arxitektyra, koäto pozvoläva mnogo-potrebitelska (multi-user) rabota,
CPU-to ima naj-malko dva režima na rabota: sistemen režim (kernel mode) i potrebitelski režim (user mode).
- V potrebitelskiut režim (user mode) mašinnite instrykcii, koito mogut da povliaüt na drygite potrebiteli, su zabraneni.
- Tova suqo e izvun temata na besedata i silno zavisi ot konkretnata kompÿturna arxitektyra.
- (.. skrij gi mašinnite instrykcii ..) (.. skrij go yvodut kum švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Centralniut procesor (CPU: Central Processing Unit) e mozukut na kompÿturut -
tova, deto sme̋ta, misli i vzema rešenia.
- ►► Adresi, adresno prostranstvo, adresacia (.. pokaži ..)
-
▼▼
Adresi, adresno prostranstvo, adresacia
(.. skrij ..)
- I tuj, CPU-to (centralniut procesor) na kompÿturut generira i izveǧa kum vunšniut sve̋t adresi,
koito su čast ot dva vida zaävki:
- Zaävka za četene:
- CPU-to iska da polyči dannite, zapisani na tozi adres,
kato predpolaga, če tova e adres na me̋sto ot RAM-ut.
- CPU-to iska da polyči dannite, zapisani na tozi adres,
- Ili zaävka za pisane:
- CPU-to iska po tozi adres da se zapišut i zapomnüt
ne̋kakvi danni, koito CPU-to predostavä zaedno s adresut,
kato pak predpolaga, če adresut e na me̋sto ot RAM-ut.
- CPU-to iska po tozi adres da se zapišut i zapomnüt
- Zaävka za četene:
- Naprimer, kogato CPU-to iska da polyči sledvaqa mašinna instrykcia za izpulnenie, CPU-to izdava zaävka za četene po adres, vzet ot PC-registurut.
- Pri suvremennite kompÿtri adresut e adres na bajt - na poredica ot 8 bita, narečena bajt.
- Ne vinugi e bilo taka.
- No sistemata IBM/360 vuvede tazi moda i ottogava tova e standart v indystriata.
- Ako kum edin adres pribavim edinica, qe se polyči adresut na sledvaqiut bajt.
- Zaävkata za četene ili za pisane po adres, koäto CPU-to izdava kum vunšniut sve̋t,
može da ima obxvat s različna širina:
- edin bajt (8 bita),
- dva bajta (16 bita),
- četiri bajta (32 bita - naj-često), ili
- osem bajta (64 bita)
- Ako zaävkata e za dva bajta, obiknoveno adresut e četen (posledniut bit ot adresut e 0).
- Ako zaävkata e za četiri bajta, obiknoveno adresut se deli na 4 (poslednite dva bita ot adresut su 00).
- Xardwerut može da se surdi, ako ne e taka, a može i da ne se surdi.
- CPU-to ne može da izdava zaävki s proizvolna širina.
- Ne može 100 ili 200 bajta.
- CPU-to tre̋bva da izdade zaävki bajt po bajt, a ne navednuž.
- Ne može samo 5 bita.
- CPU-to tre̋bva da izdade zaävka za celiut 8-bitov bajt, a posle da si otdeli interesyvaqite go bitove.
- Ne može 100 ili 200 bajta.
- Naj-često adresut predstavläva redica ot 32 bita, interpretirana kato 32-bitovo dvoično ce̋lo čislo bez znak.
- No ima i drygi slyčai.
- Pri drygi kompÿtri adresut može da e 16-bitovo dvoično čislo bez znak.
- Pri IBM/360/370 adresut e 24-bitovo dvoično čislo bez znak.
- Pri drygi kompÿtri adresut može da e 64-bitovo dvoično čislo.
- Adresite sustavlävat adresno prostranstvo (address space).
- To se sustoi ot vsički vuzmožni adresi.
- Otsega qe go nareku fizičesko adresno prostranstvo (physical address space), makar zasega da ne e äsno za kakvo e dymata fizičesko.
- Ako adresut e 32-bitov, to vsički adresi na broj su 4294967296.
- Tova čislo e v desetičen zapis i predstavläva 2 na stepen 32.
- Tolkova različni bajta može da se adresirat s 32-bitovi adresi.
- Može da se kaže, če obemut na adresnoto prostranstvo pri 32-bitovi adresi e 4 gigabajta.
- Pri dryga razrädnost na adresut (16-bitov, 24-bitov, 64-bitov) obemut na adresnoto prostranstvo može da se presmetne po suqata formyla - čisloto 2 na tazi stepen.
- Naj-niskiut (naj-malkiut) adres e sustaven samo ot nylevi bitove (dvoični nyli).
- Naj-visokiut adres e sustaven samo ot dvoični edinici.
- Stojnostta na adres ne̋ma smisul da se predstavä desetično.
- Predstavä se v šestnadesetičen ili v osmičen zapis i obiknoveno se zapulvat vsički razrädi.
- Naprimer, naj-visokiut 32-bitov adres šestnadesetično se predstavä taka: FFFFFFFF.
- A puk naj-niskiut, razbira se e 0 (nyla) ili 00000000.
- CPU-to se obruqa po adres kum vunšniut sve̋t -
CPU-to adresira fizičesko adresno prostranstvo -
- ili za da polyči sledvaqata mašinna instrykcia, koäto CPU-to tre̋bva da izpulni,
- togava tova e zaävka za četene,
- ili v izpulnenie na mašinna instrykcia,
- togava tova može da e zaävka za četene ili za pisane spored mašinnata instrykcia.
- ili za da polyči sledvaqata mašinna instrykcia, koäto CPU-to tre̋bva da izpulni,
- (.. skrij gi adresite i adresaciata ..) (.. skrij go yvodut kum švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- I tuj, CPU-to (centralniut procesor) na kompÿturut generira i izveǧa kum vunšniut sve̋t adresi,
koito su čast ot dva vida zaävki:
- ►► Operativna pamet i fizičesko adresno prostranstvo (.. pokaži ..)
-
▼▼
Operativna pamet i fizičesko adresno prostranstvo
(.. skrij ..)
- Kogato CPU-to izdava kum vunšniut sve̋t - kum fizičeskoto adresno prostranstvo - zaävka za četene ili za pisane, koj my otgovarä?
- Koj ü izpulnäva zaävkata?
- Koj e razpoložen vuv fizičeskoto adresno prostranstvo?
- Naj-često tova e RAM-ut, operativnata pamet.
- RAM-ut - tova e pamet (memory).
- Zapisva (zapomnä) podadeni danni na me̋sto, opredeleno črez adresacia, opredeleno ot zadaden fizičeski adres.
- Podava obratno dannite, koito su bili zapisani (zapomeni) na me̋sto, opredeleno črez adresacia.
- RAM-ut e pasivno ystrojstvo.
- Izpulnäva zaävki i ne proäväva iniciativa.
- Čii zaävki izpulnäva pasivnoto ystrojstvo RAM?
- Na purvo me̋sto na CPU-to (na centralniut procesor).
- V RAM-ut e zapisana negovata programa i CPU-to si ü čete programata ot RAM-ut.
- Pak kum RAM-ut se obruqa CPU-to i vuv vruzka s operandite na izpulnävanata ot nego instrykcia, osven kogato operandut e v registur.
- No ne samo na CPU-to.
- Zaävki kum RAM-ut idvat i otkum diskoviut kontroler.
- Po-obqo kazano, zaävki kum RAM-ut idvat i otkum sistemata za vxod/izxod (I/O).
- Dannite, koito diskut ili lentata zapisvat na magnitnata si povurxnost, s posredničestvoto na kontrolerut idvat ot RAM-ut, kato kontrolerut izpolzva suqata fizičeska adresacia, kakto CPU-to.
- CPU-to gi e složilo na tova me̋sto v RAM-ut, predi da se startira operaciata za zapis vurxy magniten nositel.
- I suqo taka, dannite, koito diskut ili lentata četut ot magnitnata si povurxnost, s posredničestvoto na kontrolerut bivat praqani kum RAM-ut.
- CPU-to, pri startirane na operaciata za četene ot magniten nositel, e kazalo na kontrolerut kude točno v RAM-ut - na koj fizičeski adres - da budut zapisani tezi danni.
- Posle CPU-to qe si gi nameri tam.
- Po-obqo kazano, zaävki kum RAM-ut idvat i otkum sistemata za vxod/izxod (I/O).
- Naprimer, ot kontrolerut na displeüt (na ekranut).
- Displeüt na moüt laptop (pikseli 1920 na 1080) iziskva pone 8-megabajtovo me̋sto v pametta.
- A realno veroätno dosta poveče.
- Ce̋lata RAM-pamet na laptoput mi e 16 gigabajta, koeto e 2000 puti poveče ot 8 megabajta.
- Za sravnenie: prez 1979 započnux rabota na kompÿtur IBM/360 (ES ЭVM) s RAM 120 kilobajta.
- CPU-to podgotvä v tazi oblast ot RAM-ut dannite, vklÿčitelno kartinkite, koito displeüt tre̋bva da mi pokaže.
- Oblastite ot RAM-ut, koito slyžut na CPU-to za obmen na danni s kontrolerite na periferiata, se naričat byferi.
- I CPU-to, i kontrolerite se obruqat kum byferite črez fizičeska adresacia na RAM-ut.
- Kontrolerite na periferiata nayčavat fizičeskite adresi na byferite ot CPU-to, ot komandata za startirane na vxodno-izxodnata (I/O) operacia.
- Na purvo me̋sto na CPU-to (na centralniut procesor).
- Naj-mnogo me̋sto vuv fizičeskoto adresno prostranstvo zaema RAM-ut.
- Obače RAM-ut ne zaema vsičkoto fizičesko adresno prostranstvo.
- Može kompÿturut da e oborydvan s po-malko RAM, otkolkoto fizičeskoto adresno prostranstvo pozvoläva.
- Može segmenti ot RAM-ut da su bili otstraneni zaradi povreda.
- A može i čast ot fizičeskoto adresno prostranstvo da e bila zadelena ot kompÿturnata arxitektyra za kontrolerite na periferiata.
- Kakuv e rezyltatut, sled kato CPU-to izdade zaävka za četene ili pisane po fizičeski adres kum vunšniut sve̋t?
- Zaävkata qe bude izpulnena bez problemi.
- CPU-to može da bude yvedomeno, če adresut ne e dostupen zaradi zaqita po klÿč.
- CPU-to može da bude yvedomeno, če adresut ne e dostupen, zaqoto lipsva.
- CPU-to može samò da se yseti, če adresut lipsva, ako otgovorut na zaävkata zakusnäva.
- (.. skrij go fizičeskoto adresno prostranstvo ..) (.. skrij go yvodut kum švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Mnogo-potrebitelska rabota na kompÿturut (.. pokaži ..)
-
▼▼
Mnogo-potrebitelska rabota na kompÿturut
(.. skrij ..)
- Tazi šesta beseda e za virtyalnata pamet. Napredvame natam stupka po stupka.
- Predišnata peta beseda beše za diskovete.
- Tam stanu dyma, če operacionnata sistema Unix ne može bez diskove.
- V dejstvitelnost, vsički suvremenni kompÿtri imat diskove i zatova vsički suvremenni operacionni sistemi razčitat na diskova pamet.
- Vsički suvremenni kompÿtri imat i virtyalna pamet.
- Suvremennite operacionni sistemi ü izpolzvat virtyalnata pamet, za da organizirat mnogo-potrebitelskata rabota (multi-user) na kompÿturut, i to do stepenta kompÿturut da može da se polzva kato survur - bez formalno založeno ograničenie za ednovremenno obslyžvanite potrebiteli.
- Natatuk v nastoäqiut podrazdel qe se opitam da pokažu kak e organizirana mnogo-potrebitelskata rabota
v IBM/System-360 bez virtyalna pamet.
- Kakvo znači da se organizira mnogo-potrebitelska rabota?
- Da e vuzmožno kompÿturut da ima mnogo (pone poveče ot edin) potrebiteli ednovremenno,
- kato sistemata črez xardwerut i črez sistemniut softwer ne pozvoläva edin potrebitel nevolno (črez greška v potrebitelskata programa) ili ymišleno da naryši rabotata na drygite potrebiteli ili na kompÿturnata sistema kato ce̋lo.
- I tuj, v IBM/System-360 ..
- Naličnata operativna pamet e razdelena na blokove (naričani oqe stranici) po 2 kilobajta (2048 bajta).
- Na vseki takuv blok se naznačava 4-bitov klÿč za zaqita.
- 4-bitov klÿč: tova znači čislo ot 0 do 15.
- Centralniut procesor (CPU-to) suqo ima svoä tekyqa stojnost na tozi 4-bitov klÿč.
- CPU-to go polzva svoüt tekyq 4-bitov klÿč pri adresiraneto na operativnata pamet (RAM-ut) po kakuvto i da e povod.
- Kogato CPU-to startira kanalna programa, dava suotvetniut 4-bitov klÿč za polzvane ot kanalut (ot periferniut procesor) pri izpulnenieto na tazi kanalna programa.
- Vse̋ka zaävka za dostup do fizičeski adres
(a takava zaävka može da idva ot CPU-to ili ot ne̋koj kanal)
tre̋bva da bude pridryžena ot 4-bitov klÿč za dostup. - Ako klÿčut za dostup e nyla, dostuput se razrešava.
- Ako klÿčut za dostup ne e nyla, dostuput se razrešava,
samo ako klÿčut za dostup suvpada s klÿčut na zaqita na 2K-blokut, v kojto popada adresut. - Kogato se izpulnäva potrebitelska programa, CPU-to raboti v potrebitelski režim.
- V potrebitelski režim na CPU-to my e zabraneno da izpulnäva priviligirovani instrykcii.
- V častnost, na CPU-to v potrebitelski režim my e zabraneno da promenä svoüt 4-bitov klÿč za dostup, da promenä 4-bitovite klÿčove za zaqita na blokovete RAM, kakto i da startira kanalni programi.
- Gornoto označava, če arxitektyrata na IBM/System-360 (bez virtyalna pamet) pozvoläva ednovremenno obslyžvane na 15 potrebitelä naj-mnogo.
- Imaše versia na operacionnata sistema - OS/360-MVT,
koäto avtomatično razkroävaše naličnata operativna pamet na potrebitelski razdeli (partitions)
spored postupvaqite zadania v potokut za paketna obrabotka (batch processing).
- Az ne sum imal doseg s takava sistema.
- Pri sistemite OS/360-MFT i DOS/360 naličnata za polzvane operativna pamet bivaše razkroävana
na potrebitelski razdeli (partitions) ot čovek.
- Naj-mnogo 15 razdela, vseki s klÿč za zaqita ot 1 do 15.
- Sistemata OS/360-MFT sama izbiraše koga da pysne dadeno potrebitelsko zadanie i v koj ot naličnite razdeli na pametta da go pysne.
- Pri sistemata DOS/360 čovek ykazvaše tova (programist, texnolog, operator).
- (.. skrij ü mnogo-potrebitelskata rabota ..) (.. skrij go yvodut kum švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Obektni modyli, sekcii, segmenti (.. pokaži gi ..)
-
▼▼
Obektni modyli, sekcii, segmenti
(.. skrij gi ..)
- V tozi podrazdel qe se pomuču da pokažu kak edno vreme bez virtyalna pamet se stroe̋xu
golemi programi za izpulnenie ot kompÿtur.
- Tolkova golemi, če ne se subirat v naličnata operativna pamet.
- Povečeto ot tezi neqa vse oqe su validni.
- Dori novite texnologii da gi skrivat.
- Tyka stava dyma samo za programi, koito su suzdadeni ili postroeni da rabotüt neposredstveno na kompÿturut,
- a ne za programi, koito dokato se izpulnävat, se interpretirat ot drygi programi.
- Ne stava dyma za programi, napisani na Java, JavaScript, Python, Perl, PHP i drygi podobni.
- Ne stava dyma za programi, napisani na razni shell-script-ove.
- Programata se piše na časti, narečeni izxodni modyli (source modules).
- Programata može da se piše ot kolektiv programisti
- i različnite izxodni modyli može da su napisani ot različni programisti.
- No dori da e samo edin programistut, estestveno e programata da se piše na časti.
- Različnite izxodni modyli može da su napisani na različni ezici za programirane.
- Po princip, na asembler.
- Realno, na COBOL, FORTRAN, PL/I, Pascal, C ili C++.
- Vse oqe v ypotreba: C i C++.
- Vseki izxoden modyl se obrabotva - kompilira se ili se asemblira - ot asembler ili ot kompilator,
i se polyčava obekten modyl (object module).
- Za obektni modyli (object modules) stavaše dyma i v prednata beseda.
- Pri vse̋ko pyskane na asemblerut ili na kompilatorut se polyčava edin obekten modyl.
- Obektniut modyl ima dvoičen format, nečetliv za xora.
- Edno vreme za vse̋ka kompÿturna platforma suqestvyvaše specifičen format na obektnite modyli.
- Naprimer, pri IBM/System-360 obektnite modyli imaxu format ydoben za punč, makar če otdavna te ne se punčvaxu, a se zapisvaxu na magniten nositel (disk ili lenta).
- Sega ima ne̋kakvi standartni obqi formati za obektni modyli. (.. Naprimer, COFF .. ili .. ELF ..)
- Edin obekten modyl sudurža mašinni instrykcii i danni,
- kato dannite mogut da budut inicializirani (s obäveni načalni stojnosti) ili ne.
- Ako dannite ne su inicializirani, te ne zaemat me̋sto v samiut obekten modyl, no toj pak naznačava me̋sto za tezi danni v operativnata pamet po vreme na izpulnenie na programata.
- Pametta za vremeto na izpulnenie na programata možem da ü narečem obektna pamet.
- I tuj, edin obekten modyl naznačava i pulni parčeta ot obektnata pamet.
- Kogato gi pulni, pulni gi s mašinni instrykcii ili inicializiraqi danni.
- No da ne zabraväme, če obektniut modyl po načalo e razyltat ot rabotata na kompilatorut ili asemblerut.
- Kak obektniut modyl doprinasä za obektnata pamet - kompilatorut ili asemblerut su opredelili tova.
- Parčetata, s koito obektniut modyl doprinasä za obektnata pamet, se naričat programni sekcii.
- Edno vreme pri IBM/System-360 vmesto programni sekcii se kazvaše kontrolni sekcii.
- Obektnata pamet - operativnata pamet, naznačena za izpulnävanata programa - se deli na programni sekcii.
- Ako obektniut modyl e rezyltat ot rabotata na asemblerut, to asemblerut e sledval točno ykazaniata na programistut kak da se razkroi modylut na sekcii.
- Ako obektniut modyl e rezyltat ot rabotata na kompilator, kompilatorut sam može da reši da otdeli mašinnite instrykcii, inicializiranite danni i neinicializiranite danni v različni sekcii.
- No i v tozi slyčaj programistut tre̋bva da može da ykaže specifika v oformäneto na programnite sekcii.
- Ima dve programi, koito ymeüt da boravüt s obektni modyli:
- programa-bibliotekar (librarian), naričana v sistemata Unix arxivar (ar), i
- linker (Linker ili LinkageEditor), naričan oqe svurzvaq redaktor.
- Bibliotekarüt (arxivarüt) poddurža
- biblioteki ot obektni modyli, naričani oqe statični biblioteki.
- Kato fajlove v IBM/System-360 bibliotekite ot obektni modyli se naričaxu
RLB-ta,
v sistemata Unix fajlovete sus statični biblioteki imat razširenie na imeto .a, a vuv Windows - .lib. - Edin obekten modyl e rezyltat ot rabotata na asemblerut ili na kompilatorut.
- Toj može da si ostane otdelen fajl (s razširenie .o v Unix ili .obj vuv Windows),
- no može s pomoqta na bibliotekarüt da se puxne v ne̋koä statična biblioteka.
- Bibliotekarüt i formatut na statičnite biblioteki su proektirani taka, če da slyžut na linkerut.
- Bibliotekarüt ne može da razdeli obekten modyl na suduržaqite se v modylut programni sekcii - tova go može linkerut.
- Linkerut - sam ili s vutrešna nevidima pomoq ot bibliotekarüt, tre̋bva da može:
- Da izvleče ot statična biblioteka obekten modyl po imeto na modylut.
- Da izvleče ot statična biblioteka tozi obekten modyl, suduržaq se v neü, kojto definira daden vunšen simvol.
- Vunšnite simvoli naj-često su imena na podprogrami (fynkcii), no može i da su označenia na blokove s danni.
- Linkerut e edna ot naj-važnite programi.
- Rezyltatut (izxodut) ot edno pyskane na linkerut e izpulnima programa - executable.
- Zabeležka v avans. V novite sistemi sus virtyalna pamet rezyltatut ot linkerut može da bude ili executable, ili dinamična biblioteka. No zasega qe zabravim za tova.
- Pametta na executable-ut se deli na segmenti (segments).
- Po svoä iniciativa - ako ne my e ykazano ot programistut, linkerut ne̋ma da napravi poveče ot edin segment.
- Zabeležka v avans. Po svoä iniciativa linkerut ne̋ma da napravi dinamična biblioteka.
- Zabeležka v avans. Dinamičnata biblioteka e segment za obqo polzvane.
No zasega qe zabravim za tova.
- Rezyltatut (izxodut) ot edno pyskane na linkerut e izpulnima programa - executable.
- Ako executable-ut (izpulnimata programa) se vmestva v naličnata operativna pamet,
- to ne̋ma smisul executable-ut da se deli na segmenti - dostatučen e edin segment.
- V tozi slyčaj programistut ne misli i za programni sekcii.
- Za vseki izxoden modyl kompilatorut qe suzdade obekten modyl s naj-mnogo tri programni sekcii: za mašinni instrykcii, za inicializirani danni i za neinicializirani danni.
- Dali tä sudurža mašinni instrykcii, inicializirani danni ili neinicializirani danni - tova e svojstvo na programnata sekcia.
- Kompilatorut dava edno i suqo podrazbiraqo se ime na programnite sekcii, qom programistut ne se e namesil.
- Posle linkerut qe sglobi sekciata s tova podrazbiraqo se ime, kato subere (konkatenira) prinosite kum tazi sekcia ot različnite obektni modyli.
- Taka v polyčeniut edinstven segment ima samo edna programna sekcia, suduržaqa mašinni instrykcii, i imeto ï se podrazbira.
- Po podoben način se tretirat i sekciite s danni, no te ne se subirat, a se prepokrivat.
- Ot različnite izxodni modyli prez različnite obektni modyli se obruqame kum obqi danni - tova e smisulut na prepokrivaneto.
- Kogato takava programa se pyska za izpulnenie, edinstveniut ï segment se zareǧa v operativnata pamet i ypravlenieto na CPU-to se predava na ykazana vxodna točka.
- Smisulut na tozi podrazdel obače e da obäsnü kak se stroüt golemi programi
- takiva, koito ne se pobirat v naličnata operativna pamet.
- Programistut proektira i razkroäva gole̋mata programa na segmenti.
- Vseki segment se zareǧa v operativnata pamet otdelno.
- Ne e vuzmožno vsički segmenti da se zaredüt ednovremenno, zaqoto programata e gole̋ma.
- Edin ot segmentite e bazov - root segment.
- Toj se zareǧa, kogato programata se pysne da se izpulnäva, i toj zareǧa drygite segmenti.
- Nekoi ot segmentite se prepokrivat - te se zareǧat na edin i suq adres (na edno i suqo me̋sto) i ne mogut da su zaredeni ednovremenno.
- Nikoj ot drygite segmenti ne prepokriva bazoviut segment.
- Može da ima ne̋kolko grypi ot vzaimno prepokrivaqi se segmenti.
- Programistut ykazva na linkerut:
- ot kolko segmenta da bude postroen executable-ut,
- koj e bazoviut segment i koi su grypite prepokrivaqi se segmenti,
- ot koi obektni modyli i programni sekcii da se sustoi vseki segment.
- Linkerut vklÿčva v bazoviut segment podprogramki za zamestvane na edin segment s dryg po vreme na izpulnenie.
- Dori da idvat ot edin i suq obekten modyl, različnite programni sekcii mogut da otidut v različni segmenti.
- Programistut proektira i razkroäva edna gole̋ma programa na segmenti, taka če zamestvaniata na edin segment s dryg da se slyčvat maksimalno re̋dko.
- Pri nedobro razpredelenie na programnite sekcii i obektnite modyli po segmentite, proizvoditelnostta na programata može da padne drastično.
- (.. skrij gi sekciite i segmentite ..) (.. skrij go yvodut kum švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- V tozi podrazdel qe se pomuču da pokažu kak edno vreme bez virtyalna pamet se stroe̋xu
golemi programi za izpulnenie ot kompÿtur.
- ◄► (.. skrij go yvodut ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü šestata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Neqo po sredata (.. pokaži go ..) (.. razgunuto ..)
-
▼▼
Neqo po sredata
(.. skrij go ..)
(.. svij go ..)
(.. razguni go ..)
- ◄► Za da razberete tova neqo po sredata, tre̋bva da ste pročeli neqoto kato yvod.
- ►► Dinamičnata preadresacia (.. pokaži ..)
-
▼▼
Dinamičnata preadresacia
(.. skrij ..)
- Tova, koeto se slaga po sredata meǧy CPU-to (centralniut procesor) i vunšniut za nego sve̋t, e MMU-to.
(.. Poveče za MMU-tata možete da pročetete tyka ..)- Vunšniut sve̋t za CPU-to se sustoi ot fizičeskata operativna pamet i ot periferiata.
- MMU-to stoi na izxodut ot CPU-to kum vunšniut sve̋t.
- Vseki adres, kojto CPU-to generira i praqa kum vunšniut sve̋t v zaävki za četene ili za pisane, minava prez MMU-to.
- Kogato MMU-to ne raboti (ne e vklÿčeno, izklÿčeno e), adresite minavat prez MMU-to bez prome̋na.
- Može da se sme̋ta, če kogato MMU-to e izklÿčeno, adresite ne minavat prez nego.
- Kogato obače MMU-to raboti (vklÿčeno e), to promenä adresite i pyska kum vunšniut sve̋t drygi adresi.
- MMU-to izvuršva dinamična preadresacia
- Adresite, koito važut vuv vunšniut sve̋t, se naričat fizičeski adresi.
- Te obrazyvat fizičesko adresno prostranstvo.
- Adresite, koito CPU-to generira i koito stigat samo do MMU-to, se naričat virtyalni adresi.
- Te obrazyvat virtyalno adresno prostranstvo.
- MMU-to izvuršva dinamična preadresacia:
preobrazyva virtyalnite adresi vuv fizičeski. - CPU-to može da vklÿčva i da izklÿčva MMU-to,
no samo kogato CPU-to e v sistemen (privilegirovan) režim (kernel mode, privileged mode),
ne i v potrebitelski režim (user mode).
- Bitovete na virtyalniut adres se delüt na dve grypi - mladši i starši.
- Staršite bitove opredelät "sudbata" na virtyalniut adres.
Pri "qastlivo" stečenie na obstoätelstvata,
te opredelät bazoviut fizičeski adres,
kum kojto se dobavät mladšite bitove,
za da se polyči fizičeskiut adres.
- Staršite bitove opredelät "sudbata" na virtyalniut adres.
- Virtyalnite adresi sus suvpadaqi starši bitove obrazyvat virtyalna stranica (virtual page).
- Virtyalnite adresi ot edna virtyalna stranica obiknoveno imat edna i suqa "sudba". (Izklÿčenie: PDP-11)
- Kolko na broj su mladšite bitove na virtyalniut adres?
- Kolko e gole̋ma edna virtyalna stranica?
- Tezi dva vuprosa, razbira se, su svurzani:
broüt na mladšite bitove na adresut opredelä razmerut na edna virtyalna stranica. - Zavisi ot arxitektyrata na kompÿturut i ot modelut na MMU-to.
- Pri ne̋koi MMU-ta broüt na mladšite bitove na adresut e čast ot nastrojkata na tova ystrojstvo, i to raboti spored tekyqata si nastrojka.
- Pri IBM/System-370 ..
- broüt na mladšite bitove e 11, i suotvetno edna virtyalna stranica e 2048 bajta (2 kilobajta, 2K bajta, 2 na stepen 11 bajta).
- Spomnete si, če v IBM/360/370 tolkova e i razmerut na blokut pamet s obq 4-bitov klÿč za zaqita.
- Adresut v sistemata IBM/370 e 24-bitov.
- Mladšite 11 bita na virtyalniut adres davat adresut vutre vuv virtyalnata stranica, a staršite 13 bita opredelät koä e samata virtyalna stranica.
- Pri VAX broüt na mladšite bitove e 9, i suotvetno edna virtyalna stranica e 512 bajta (2 na stepen 9 bajta, polovin kilobajt).
- Pri po-novite kompÿturni arxitektyri, s moderna organizacia na diskovata pamet, razmerut na virtyalnata stranica e suglasyvan s razmerut na diskovite blokove v razpredelenieto na diskovoto prostranstvo po fajlove..
- (.. pokaži ..) MMU-to na PDP-11 ne e pokazatelno za drygite kompÿtri, no tozi slyčaj e obozrim. (.. pokaži podrobnosti za MMU-to na PDP-11 tam ..)
-
MMU-to na PDP-11 ne e pokazatelno za drygite kompÿtri, no tozi slyčaj e obozrim.
(.. pokaži podrobnosti za MMU-to na PDP-11 tam ..)
(.. skrij go PDP-11 ..)
- PDP-11 e 16-bitov kompÿtur, i virtyalniut adres e 16-bitov.
- Broüt na mladšite bitove vuv virtyalniut adres e 13, a na staršite - 3.
- Tova označava, če:
- edna virtyalna stranica e 8 K (2 na stepen 13) bajta,
- virtyalnoto adresno prostranstvo e 64 K (2 na stepen 16) bajta, i
- virtyalnoto adresno prostranstvo sudurža 8 (osem na broj: 2 na stepen 3) virtyalni stranici.
- Za da izvuršva dinamičnata preadresacia, MMU-to na PDP-11 polzva tablica s osem reda - tablica na virtyalnite stranici, po edin red za vse̋ka virtyalna stranica.
- V dejstvitelnost, MMU-to na PDP-11 ima dostup do dve takiva tablici: edna za sistemniut režim (kernel mode) na CPU-to, i dryga za potrebitelskiut režim (user mode).
- S drygi dymi, vuv vseki moment ima dve virtyalni adresni prostranstva - edno za "kernel mode" i drygo za "user mode".
- S prevklÿčvaneto ot "kernel mode" vuv "user mode", CPU-to smenä vidimoto za nego virtyalno adresno prostranstvo.
- A kolko e gole̋mo fizičeskoto adresno prostranstvo pri kompÿtrite PDP-11?
- Mladšite modeli ne̋mat MMU i fizičeskoto adresno prostranstvo e suqoto kato virtyalnoto.
- Mladšite modeli na PDP-11 su edno-potrebitelski kompÿtri.
- Pri srednite modeli fizičeskite adresi su 18-bitovi i razmerut na fizičeskoto adresno prostranstvo e 256 K bajta (2 na stepen 18 bajta).
- Pri staršite modeli fizičeskite adresi su 22-bitovi i razmerut na fizičeskoto adresno prostranstvo e 4 M bajta (4 megabajta, 2 na stepen 22 bajta).
- Pri vsički modeli gornite 8 K bajta ot fizičeskoto adresno prostranstvo su zadeleni za vxodno-izxodnata stranica.
- Ostanulata čast na fizičeskoto adresno prostranstvo e svobodna za razpolagane na fizičeska operativna pamet tam.
- Pri srednite modeli 248 K bajta e maksimalniut razmer na naličnata fizičeska operativna pamet.
- Xarakterno za arxitektyrata na PDP-11 e tova, če razmerut na fizičeskoto adresno prostranstvo (to e 18-bitovo ili po-gole̋mo) nadvišava razmerut na virtyalnoto adresno prostranstvo.
- Pri PDP-11, MMU-to (dinamičnata preadresacia) dava na CPU-to vuzmožnost da gleda po ce̋loto fizičesko adresno prostranstvo, kato prenastrojva i promenä virtyalnoto adresno prostranstvo.
- Virtyalnata stranica e dosta gole̋ma po razmer - 8 K bajta.
- A puk naličnata fizičeska operativna pamet pri PDP-11 e cènen resyrs,
- pri položenie, če srednite i staršite modeli se reklamirat kato mnogo-potrebitelski kompÿtri.
- Fizičeskata operativna pamet se razpredelä za polzvane pò na drebno - na parčeta po 128 bajta.
- Edno takova parče se opredelä ot suvpadaqi starši bitove na fizičeskiut adres, sled kato otrežem mladšite 7 bita.
- Edna virtyalna stranica (8 K bajta) može da sudurža 64 na broj 128-bajtovi parčeta.
- Kolko točno takiva parčeta su naznačeni za virtyalnata stranica - tova može da se ykaže sus 6 bita.
- Sxema na 16-bitov virtylen adres pri PDP-11:
P P P L L L L L L Λ Λ Λ Λ Λ Λ Λ ................. Λ Λ Λ Λ Λ Λ Λ => 7 naj-mladši bita ..... L L L L L L ............. => 6 sredno mladši bita P P P ......................... => 3 starši bita
- P: trite starši bita opredelät edna ot 8-te virtyalni stranici na virtyalnoto adresno prostranstvo.
- Λ: 7-te naj-mladši bita se zapazvat bez prome̋na vuv fizičeskiut adres sled dinamičnata preadresacia.
- L: 6-te sredni bita opredelät 128-bajtovoto parče ot fizičeskata pamet. Ako takova parče ne e naznačeno, adresut e nevaliden.
- L: tezi 6 bita, razgleǧani kato dvoično čislo bez znak, se pribavät kum bazovoto čislo ot specialniut registur PAR za suotvetnata virtyalna stranica.
- Sxema na 18- ili 22-bitov fizičeski adres pri PDP-11:
b b b b B B B B B B B B B B B Λ Λ Λ Λ Λ Λ Λ ............................. Λ Λ Λ Λ Λ Λ Λ => 7 naj-mladši bita b b b b B B B B B B B B B B B ............. => 11 ili 15 starši bita
- Λ: 7-te naj-mladši bita su kopirani ot virtyalniut adres.
- bB: staršite bitove na fizičeskiut adres se polyčavat, kato kum bazovoto čislo ot specialniut registur PAP se pribavi 6-bitovoto čislo LLLLLL ot virtylniut adres.
- I tuj, MMU-to na PDP-11 vuv vseki moment predostavä dve virtyalni adresni prostranstva:
- edno za sistemen režim (kernel mode) i drygo za potrebitelski režim (user mode).
- Vse̋ko ot dvete virtyalni adresni prostranstva se sustoi ot osem virtyalni stranici.
- Za vse̋ka virtyalna stranica vuv MMU-to ima po dva specialna registura:
- PAR (Page Address Register). Sudurža staršite bitove na fizičeskiut adres na načaloto na stranicata, sled kato mladšite sedem bita su otsečeni.
- PDR (Page Descriptor Register). Opisva virtyalnata stranica.
- CPU-to kazva na MMU-to dali dostuput do virtyalnata stranica izobqo e razrešen.
- CPU-to kazva na MMU-to dali vuv virtyalnata stranica e razrešeno pisane (e razrešena prome̋na).
- CPU-to kazva na MMU-to kolko 128-bajtovi parčeta fizičeska pamet su zadeleni za virtyalnata stranica.
- CPU-to kazva na MMU-to dali tezi 128-bajtovi parčeta fizičeska pamet su razpoloženi v načaloto ili v kraüt na virtyalnata stranica.
Ydobno e virtyalna stranica, izpolzvana za stek (stack), da započva ot kraüt na adresniut diapazon. - MMU-to kazva na CPU-to dali virtyalnata stranica e bila promenäna.
- Osven tova, ima ne̋kolko specialni registura obqo za MMU-to, taka če:
- CPU-to da može da go pyska MMU-to i da go spira,
- MMU-to da može da kaže na CPU-to zaqo virtyalen adres e nevaliden i kak da se izleze ot sityaciata.
- Rezÿmé: Kakvo pozvoläva MMU-to na PDP-11? Za kakvo se polzva to?
- Fizičeskoto adresno prostranstvo da e po-gole̋mo ot virtyalnoto adresno prostranstvo, koeto e ograničeno do 64 K bajta.
- Izolirane na potrebitelite edin ot dryg.
- Bazoviut segment i stekut može da započvat ot edni i suqi virtyalni adresi za koj da e potrebitel.
- Sled dinamičnata preadresacia polyčenite fizičeski adresi qe su različni za različnite potrebiteli.
- Edin konkreten potrebitel izobqo ne može da viǧa fizičeskata pamet izvun pokazanoto v negovoto virtyalno adresno prostranstvo.
- V ramkite na obslyžvaneto na edin potrebitel.
- Na edin potrebitel pri nyǧa može da my bude zadelena fizičeska operativna pamet,
poveče otkolkoto toj može v daden moment da viǧa prez virtyalnoto si adresno prostranstvo.
- Virtyalnoto adresno prostranstvo e 64 K bajta.
- A može da ima i 100 K bajta nalična fizičeska operativna pamet, svobodna za razpredelenie.
- MMU-to na PDP-11 pozvoläva prezareǧane na virtyalni stranici, taka če v različni momenti edna virtyalna stranica da gleda kum različni segmenti na fizičeskata operativna pamet.
- Na edin potrebitel pri nyǧa može da my bude zadelena fizičeska operativna pamet,
poveče otkolkoto toj može v daden moment da viǧa prez virtyalnoto si adresno prostranstvo.
- Obslyžvane na poveče potrebiteli, otkolkoto naličnata fizičeska operativna pamet bez MMU bi pozvolila.
- Fizičeska operativna pamet e cènen resyrs, podležaq na razpredelenie meǧy potrebitelite suobrazno texnite nyǧi i prioriteti.
- Parče fizičeska operativna pamet, obiknoveno s razmer na virtyalna stranica, koeto e naznačeno na potrebitel v sustoänie na očakvane na neqo ili na potrebitel s nisuk prioritet, može da bude zapisano na diskut v specialen fajl (swap file), bez tozi "oqeten" potrebitel da "suznava" kakvo stava, i me̋stoto vuv fizičeskata operativna pamet da se dade na dryg potrebitel.
- V momentut, kogato "oqeteniut" potrebitel otnovo se "subydi" za rabota, negovoto virtyalno adresno prostranstvo se zareǧa v MMU-to, no onova parče pamet, koeto e bilo zapisano na diskut v specialniut fajl, ne se vruqa vuv fizičeskata pamet.
- Virtyalniut adres, kojto soči kum nego, qe bude nevaliden.
- Može da ne se slyčut obruqenia kum tazi nevalidna virtyalna stranica, koäto otdavna e bila izgonena ot fizičeskata operativna pamet na diskut. Tä qe si ostane na diskut.
- No ako ima obruqenie kum neü, MMU-to qe raportyva nevaliden adres,
a operacionnata sistema qe se seti kakvo da napravi.
- Potrebitelüt qe mine v sustoänie na očakvane.
- Qe my bude zadelena nyžnata fizičeska operativna pamet.
- Na tova novo me̋sto qe bude pročetena ot diskut iskanata virtyalna stranica.
- Virtyalnata tablica qe bude promenena, taka če tazi virtyalna stranica da gleda kum tova novo me̋sto.
- Potrebitelüt qe mine v sustoänie na gotovnost.
- Ako nastane moment tozi potrebitel pak da otstupi nazad i da dade predimstvo na drygi, i ako pri tova fizičeska operativna pamet, zadelena za tazi virtyalna stranica, tre̋bva pak da bude osvobodena za drygi nyǧi, operacionnata sistema qe proveri dali tazi virtyalna stranica e bila promenäna, dokato e prebivavala vuv fizičeskata operativna pamet.
- Ako ne e bila, parčeto fizičeska pamet prosto se osvoboǧava.
- No ako e bila promenäna, parčeto fizičeska pamet se osvoboǧava, edva sled kato zapisut vurxy diskut se opresni.
- (.. skrij go PDP-11 ..) (.. skrij go PDP-11 ..)
- (.. skrij ü dinamičnata preadresacia ..) (.. skrij go tova po sredata na švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Tova, koeto se slaga po sredata meǧy CPU-to (centralniut procesor) i vunšniut za nego sve̋t, e MMU-to.
- ►► Obqo virtyalno adresno prostranstvo za ce̋lata sistema (.. pokaži ..)
-
▼▼
Obqo virtyalno adresno prostranstvo za ce̋lata sistema
(.. skrij ..)
- V predišniut podrazdel navle̋zox v ne̋koi podrobnosti za MMU-to na PDP-11.
- No purvoto MMU, koeto mi e popadalo, e tova za IBM/System-370.
- Tyka naj-napred qe gi sravnü nakratko.
- MMU-to na PDP-11 izobrazäva malko virtyalno adresno prostranstvo vurxy po-gole̋mo fizičesko adresno prostranstvo.
- Pri IBM/370 fizičeskoto adresno prostranstvo realno e po-malko ot virtyalnoto.
- MMU-to na PDP-11, kakto i vsički po-novi MMU-ta, predostavät otdelni virtyalni adresni prostranstva za različnite režimi na CPU-to - sistemniut i potrebitelskiut (kernel-user mode).
- MMU-to na IBM/370 predostavä samo edno virtyalno adresno prostranstvo.
- MMU-to na IBM/System-370 e tre̋bvalo da poddurža zaqitata po 4-bitov klÿč, nasledena ot IBM/System-360.
- MMU-to na PDP-11 pozvoläva razrešeniut diapazon na adresite v edna virtyalna stranica da e po-maluk ot samata virtyalna stranica.
Fizičeskata pamet se razpredelä na parčeta po 128 bajta. - Pri IBM/360/370 pametta se razpredelä samo po celi stranici, 2 K bajta vse̋ka.
- Pri PDP-11, MMU-to e čast ot arxitektyrata na kompÿturut ot samoto načalo.
- Pri IBM/360/370, MMU-to idva kato kusno dopulnenie na veče ystanovila se suqestvyvaqa arxitektyra.
- Zatova, pri vuveǧaneto na razširenata arxitektyra IBM/370, purvata rabota na razrabotčicite na sistemniut softwer e da se pysne natrypaniut za IBM/360 softwer, sistemen i priložen, i to s minimalni promeni.
- Ysiliata su bili nasočeni kum virtyalizacia.
- Fizičeskata operativna pamet e da kažem 512 K bajta (polovin megabajt).
Modeli na IBM/370 s pamet poveče ot edin megabajt maj ne su pyskali. - Vuv diskov fajl (page file) se modelira virtyalna pamet da kažem dva megabajta.
To i diskovoto prostranstvo e kut.
Maksimalniut razmer e 16 M bajta. - Starata sistema - tazi, koäto e rabotila godini nared na IBM/System-360 i koäto ne podozira za takiva neqa kato MMU, dinamična preadresacia i virtyalni adresi, se pyska da raboti pri pamet dva megabajta.
- Samo deto tazi pamet e virtyalna.
- Ce̋lata virtyalna pamet ü ima na diskut.
- Virtyalnite stranici, koito se polzvat v momentut, su zaredeni vuv fizičeskata operativna pamet, i MMU-to dinamično preobrazyva virtyalnite adresi v realni fizičeski adresi.
- V ne̋kakuv moment se slyčva obruqenie kum virtyalna stranica, koäto ne e zaredena vuv fizičeskata operativna pamet,
- MMU-to qe suobqi za tova subitie na CPU-to črez prekusvane.
- V slyčaüt na IBM/370 tova prekusvane qe bude prixvanuto i obraboteno ot novo-napisaniut sistemen softwer.
- MMU-tata na IBM/370 i na PDP-11 su istinski MMU-ta,
- Edno istinsko MMU qe pomogne na sistemniut softwer da reši koä virtyalna stranica izmeǧy zaredenite v pametta da bude izgonena ottam, za da se osvobodi me̋sto za novo-poiskanata virtyalna stranica.
- Qe bude izgonena tazi, kum koäto ne e imalo obruqenie naj-otdavna.
- MMU-to qe kaže dali tazi stranica e bila promenäna po vreme na prestoüt si vuv fizičeskata operativna pamet.
- Ako e bila promenäna, nejniut zapis vurxy diskut qe se opresni.
- Sled tova iskanata virtyalna stranica - tazi, koäto e predizvikala prekusvaneto, qe bude zaredena ot diskut na osvobodenoto me̋sto vuv fizičeskata operativna pamet, i izpulnenieto qe produlži ot me̋stoto na prekusvane.
- Prekusnutata programa ne̋ma da zabeleži prekusvaneto.
- Novo-napisaniut sistemen softwer tre̋bva da prixvaqa i drygi neqa ot starata sistema.
- Komandite za rabota s 4-bitovite klÿčove za zaqita tre̋bva da budut prixvaqani.
- Tezi klÿčove važut za virtyalnite stranici, suqestvyvaqi samo kato kopie v diskoviut fajl.
- Komandite za start na vxod-izxod i prekusvaniata otkum sistemata za vxod-izxod tre̋bva da budut prixvaqani,
- zaqoto byferite za vxod-izxod trebva da ostanut vuv fizičeskata operativna pamet.
- Oqe neqo. Tezi byferi imat različni virtyalni i fizičeski adresi, a sistemata za vxod-izxod tre̋bva da znae samo fizičeskite adresi.
- Fizičeskata operativna pamet e da kažem 512 K bajta (polovin megabajt).
- Osven IBM/370, ne znaü dryg slyčaj, kogato pri virtyalna pamet i "istinsko" MMU
da se poddurža obqo virtyalno adresno prostranstvo za ce̋lata sistema.
- Pri IBM/370 tova se e naložilo, za da može burzo da se pysne suqestvyvaq i poznat na potrebitelite softwer na model s modificirana arxitektyra.
- (.. skrij go obqoto virtyalno adresno prostranstvo ..) (.. skrij go tova po sredata na švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Vseki potrebitel s otdelno virtyalno adresno prostranstvo (.. pokaži ..)
-
▼▼
Vseki potrebitel s otdelno virtyalno adresno prostranstvo
(.. skrij ..)
- V predišniut podrazdel pokazax koe e bilo naj-malkoto, koeto razrabotčicite na sistemniut softwer na IBM/System/360/370 e tre̋bvalo da napravüt, za da izpolzvat noviut xardwer - MMU-to.
- Osigyrili su gole̋mo virtyalno adresno prostranstvo.
- Na purvo vreme - edno za ce̋lata sistema.
- Sledvaqata stupka e da se osigyri otdelno virtyalno prostranstvo za vseki potrebitel.
- Osven pri IBM/370, pri drygite sistemi s "istinsko" MMU tova e bilo purvata stupka.
- Vurxy specialen diskov fajl sistemata modelira ne̋kolko virtyalni adresni prostranstva - po edno za potrebitel.
- Vse̋ka virtyalna stranica, zapisana v specialniut fajl, se identificira ne samo s virtyalniut si adres, no i s identifikatorut na potrebitelüt.
- Vseki potrebitel polyčava svoe virtyalno adresno prostranstvo.
- No, razbira se, ne s maksimalniut razmer (16 M bajta pri IBM/370), a samo tolkova, kolkoto my e nyžno.
- Staroto ograničenie - 15 - za broüt na ednovremenno obslyžvanite potrebiteli, naloženo ot 4-bitoviut klÿč za zaqita pri IBM/360, otpada.
- Specialniut diskov fajl može da sudurža stranicite na poveče ot 15 virtyalni adresni prostranstva.
- Potrebitelite su izolirani edin ot dryg - vseki viǧa samo svoeto virtyalno adresno prostranstvo.
- Vuv vse̋ka arxitektyra MMU-to si ima osobenosti.
- Obobqenie na osobenostite pri IBM/370.
- Otdelno virtyalno adresno prostranstvo za vseki potrebitel e vtora stupka pri IBM/370, dokato pri drygite e purva stupka i se podrazbira.
- MMU-to pri IBM/370 tre̋bva da se suobrazäva s 4-bitoviut klÿč za zaqita, nasleden ot IBM/370.
- Razvitieto na sistemniut softwer pri IBM/370 e vurve̋lo v dve posoki:
- Starite operacionni sistemi, koito potrebitelite dobre poznavat ot IBM/360, se modificirat taka, če vseki potrebitel v terminite na starata sistema da polyči svoe virtyalno adresno prostranstvo.
- Razrabotena e nova operacionna sistema VM/370, koäto može da obslyžva mnogo potrebiteli.
- Razbira se, programi mogut da se izpulnävat neposredstveno na operacionnata sistema VM/370.
- VM e sukraqenie na Virtual Machines.
- Sistemata VM/370 može da igrae roläta na domakin, kato potrebitelite ï su ï gosti.
- Kato domakin tä može da predostavi na vseki svoj gost otdelna virtyalna mašina - otdelen virtyalen kompÿtur.
- Arxitektyrata na predostavenata na gostut virtyalna mašina - IBM/360 ili IBM/370, kakto i konfigyraciata, e po izbor.
- Sistemata VM/370 kato domakin simylira za gostut izbranata ot nego virtyalna mašina.
- Za domakinut VM/370 edin gost e edin potrebitel.
- No gostut može da pysne na svoäta si virtyalna mašina kakvato si iska opracionna sistema - stara (DOS/360, OS/MFT, OS/MVT) ili nova (t.e. modificirana stara).
- stara, dulgo vreme eksploatirana na IBM/360, ili
- nova, za IBM/370 - s edno virtyalno adresno prostranstvo ili s ne̋kolko takiva.
- Taka na svoäta si virtyalna mašina gostut može da obslyžva svoi potrebiteli.
- Nakratko, novata operacionna sistema VM/370 predostavä na vseki svoj potrebitel, kogoto az tyka naričam gost, ne samo i ne tolkova otdelno virtyalno adresno prostranstvo, a otdelna virtyalna mašina.
- Osnovna griža na razrabotčicite na sistemniut softwer za IBM/370 e bila da ne nalagat promeni v potrebitelskiut softwer, kojto e bil dulgo vreme v eksploatacia na IBM/360.
- (.. skrij gi otdelnite virtyalni adresni prostranstva ..) (.. skrij go tova po sredata na švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Potrebiteli, sesii, procesi i niški (.. pokaži ..)
-
▼▼
Potrebiteli, sesii, procesi i niški
(.. skrij ..)
- Edno vreme - pri IBM/System/360/370, pri paketnata obrabotka i predi sistemata Unix - tezi ponätia ne be̋xu dobre opredeleni.
- V predišnite razdeli i podrazdeli na tazi beseda ypotrebävax ne̋kakvo nedobre definirano ponätie potrebitel.
- Pri paketnata obrabotka (batch procesisng) točnata dyma beše job, no ne mogu da namerü podxodäqa bulgarska dyma za job.
- Ne̋koga dymata job ü preveǧaxme na bulgarski i na ryski s dymata zadanie.
- Dymata zadanie ne se vpisva dobre v kontekstut na nastoäqata beseda.
- Zatova dosega pišex potrebitel.
- No nastanu vreme ponätiata da se ytočnüt.
- Ytočnenieto dojde sus sistemata Unix.
- Da napomnü, če virtyalna pamet bez diskova pamet nema.
- Na virtyalnata pamet e posvetena nastoäqata beseda, a na diskovata pamet - predišnata.
- V predišnata beseda maj be̋x napisal, če bez diskovata pamet i sistemata Unix ü ne̋ma.
- Potrebitelite (users).
- Opisanieto na potrebitelite se namira v "zorko oxranävan" fajl na sistemniut disk.
- V našite moderni vremena opisanieto na potrebitelite može da se namira v ne̋koj oblak tumen.
- Tova znači da se namira na disk na ne̋koj survur, razpoložen v ne̋koä točka ot globysut ili ot kosmosut.
- Survurut e moqen kompÿtur.
- Oblačnostta na globalnata mreža se sustoi ot survuri, koito menüt lokaciata si kato strategičeski ädreni raketi.
- V nastoäqata si beseda oblačnostta qe ü ignoriram.
- Vse pak, az pišu predimno za minuloto.
- Edin potrebitel se identificira s imeto si (username).
- Potrebitelüt si ima i parola.
- Potrebitelüt e sobstvenik na ne̋koi fajlove na diskut, i kum te̋x toj ima pulen dostup.
- Kum drygi fajlove edin potrebitel može da ima ograničen dostup, ili puk može da ne̋ma nikakuv dostup.
- Tozi važen aspekt - dostuput na potrebitelite do diskovite fajlove, ne̋ma otnošenie kum virtyalnata pamet.
- Može bi tre̋bvaše da bude razgledan v predišnata beseda.
- Kak da e. Za dostuut na potrebitelite do diskovite fajlove - tolkova.
- Opisanieto na potrebitelite se namira v "zorko oxranävan" fajl na sistemniut disk.
- Sesiite.
- Potrebitelüt otvarä i zatvarä sesii.
- Otvaräneto na sesia se nariča LogIn ili SignIn,
- a zatvaräneto - LogOut ili SignOut.
- Ot gledna točka na potrebitelüt v ramkite na sesiata toj izpulnäva programi - potrebitelski programi, priložni programi, priloženia, applications.
- Naprimer az sega kato pensioner na laptoput si naj-često izpulnävam dve priloženia - brawzerut (the internet browser), s kojto rovü iz internet, i redaktorut, s kojto vuveǧam tekstovete na html.
- Procesite.
- Za izpulnenieto na vse̋ka kompÿturna programa (vklÿčitelno na vse̋ko priloženie), operacionnata sistema pyska proces.
- Edin proces može da pyska drygi procesi.
- V povečeto slyčai, samata operacionna sistema raboti kato vzaimodejstvaqi si procesi.
- Edin proces može sam da si zavurši (to terminate).
- Može i privilegirovan proces da go terminira (to be terminated).
- Ponätieto proces e naj-važnoto vuv vruzka s MMU-tata. toest v kontekstut na nastoäqata beseda.
- Procesut e tova neqo, koeto ima svoe otdelno virtyalno adresno prostranstvo.
- Procesite, raboteqi ednovremenno, se konkyrirat edin dryg za resyrsite na kompÿturut.
- Obače procesite su izolirani edin ot dryg v operativnata pamet.
- Kogato CPU-to prevklÿčva ot edin proces na dryg, CPU-to prevklÿčva ot edno virtyalno adresno prostranstvo na drygo.
- Vse̋ka sesia se predstavä sus svoüt bazov proces.
- Kogato potrebitelüt otvori sesia, za neü se pyska proces - bazov proces za sesiata.
- Za izpulnenieto na razni priloženia v ramkite na sesiata, tozi bazov proces pyska drygi procesi.
- Ignorirajki detajli, bazoviut proces na sesia možete da si go mislite kato interpretator na komandi ili kato manager na ekranut.
- Niškite (threads).
(.. advanced topic .. za naprednuli ..)
- Dymata niška idva kato sukraqenie na izrazut niška na izpulnenie (execution thread).
- Niškite su tezi, koito se konkyrirat za "vnimanieto" na CPU-to.
- Pone̋koga složni programi se nyǧaüt ot ne̋kolko niški, koito se izpulnävat ednovremenno na CPU-to.
- Ako dve niški su čast ot edin i suq proces, to te rabotüt v edno i suqo virtyalno adresno prostranstvo.
- Procesut može da si go mislite kato niška, no ne kakva da e, a niška sus sobstveno virtyalno adresno prostranstvo.
- Edin proces može da pysne dryg proces - dryg otdelen proces s otdelno virtyalno adresno prostranstvo.
- No suqo taka, edin proces može da pysne dryga niška vuv svoeto virtyalno adresno prostranstvo.
- Novata niška qe e čast ot procesut, kojto ü e pysnul.
- Tä suqo taka može da pysne dryga niška v suqoto virtyalno adresno prostranstvo, toest dryga niška kum suqiut proces.
- Niškite, prinadležaqi kum edin i suq proces, ne su izolirani edna ot dryga, poneže polzvat obqo virtyalno adresno prostranstvo.
- Zabeležka. Korektnoto vzaimodejstvie meǧy niškite v edin proces iziskva specialni ymenia y programistut.
- Vladeeneto na multi-threading-ut (mnogo-niškovoto programirane) sledva izrično da se obävi v CV-to.
- Ako rabotata iziskva multi-threading, tova ymenie se proveräva na intervÿtata za rabota.
- Disclaimer. Razpredelenieto na rabotata vurxy mnogo kompÿtri, razpoloženi blizo ili daleč edin ot dryg, e otvud predmetut na besedata.
- (.. skrij gi procesite i niškite ..) (.. skrij go tova po sredata na švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Edno vreme - pri IBM/System/360/370, pri paketnata obrabotka i predi sistemata Unix - tezi ponätia ne be̋xu dobre opredeleni.
- ◄► (.. skrij go tova po sredata ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü šestata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ►► Neqo kato zaklÿčenie (.. pokaži go zaklÿčenieto ..) (.. razgunuto ..)
-
▼▼
Neqo kato zaklÿčenie
(.. skrij go ..)
(.. svij go ..)
(.. razguni go ..)
- ◄► Kato zaklÿčenie: Za kakvo slyži virtyalnata pamet.
- ►► Fizičeskoto adresno prostranstvo da e po-gole̋mo ot virtyalnoto (.. pokaži ..)
-
▼▼
Fizičeskoto adresno prostranstvo da e po-gole̋mo ot virtyalnoto
(.. skrij ..)
- Takuv e slyčaüt pri 16-bitovite kompÿtri.
- Pri te̋x virtyalnoto adresno prostranstvo e tvurde malko - samo 64 K bajta.
- Dinamičnata preadresacia kum fizičeski adresi može da predostavi dostup do operativna pamet s po-gole̋m razmer.
- V tazi beseda veče be razgledano MMU-to na PDP-11.
- Tyka tre̋bva da spomenu Intel 8086/8088 - procesorite, izpolzvani v purvite personalni kompÿtri na IBM.
- Za razlika ot PDP-11, MMU-to pri 8086/8088 ne si postavä drygi celi osven razširenieto na fizičeskoto adresno prostranstvo.
- Mnogo-potrebitelska rabota ne se osigyräva.
- (.. skrij go gole̋moto fizičesko adresno prostranstvo ..) (.. skrij go zaklÿčenieto kum švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Gole̋mo virtyalno adresno prostranstvo (.. pokaži ..)
-
▼▼
Gole̋mo virtyalno adresno prostranstvo
(.. skrij ..)
- Oburnete vnimanie na dve klÿčovi dymi: gole̋mo i virtyalno.
- Gole̋moto adresno prostranstvo e virtyalno.
- Da, to može da e virtyalna pamet s ogromen razmer.
- Može da subere danni za obrabotka, mnogo poveče ot predi.
- Predi dinamičnata preadresacia i MMU-tata tolkova danni ne možexu da se poberut v operativnata pamet.
- Programistut tre̋bvaše da se pogriži da gi organizira dannite v diskov fajl.
- Sega na programistut qe my e po-lesno. Qe razpoloži dannite vuv virtyalnata pamet i te "nagled" postoänno qe su my pod ruka.
- Obače tova e samo ylesnenie za programite i za programistite.
- Prirodata ne može da bude izlugana.
- Sistemniut softwer s pomoqta na MMU-to qe modelira gole̋mata virtyalna pamet vurxy diskut.
- Qe go pravi skrito ot programistut, kojto ne̋ma da ima grižata.
- Virtyalno adresno prostranstvo e gole̋mo.
- Da, to može da e virtyalna pamet s ogromen razmer.
- Programata može da e tolkova gole̋ma, če predi dinamičnata preadresacia i MMU-tata da ne e možela da se pobere v operativnata pamet.
- Programistite su razdeläli golemite programi na pripokrivaqi se segmenti.
- Vurnete se da pročetete tozi podrazdel.
- Sega programata veroätno qe se subere v gole̋mata virtyalna pamet i programistut ne̋ma da ima grižata da ü segmentira.
- Obače tova e samo ylesnenie za programistite.
- Prirodata ne može da bude izlugana.
- Sistemniut softwer s pomoqta na MMU-to qe modelira gole̋mata virtyalna pamet vurxy diskut.
- Vmesto prezareǧane na programni segmenti, opredeleni ot programistut, qe se slyčva avtomatično prezareǧane na virtyalni sranici.
- Vseki proces si ima svoe virtyalno adresno prostranstvo, i to e virtyalno.
- Procesut raboti ne s realni fizičeski adresi, a s virtyalni adresi, koito podležut na avtomatično dinamično preobrazyvane v realni fizičeski adresi ot MMU-to.
- Predi, bez dinamična preadresacia, linkerut tre̋bva da nastroi proizveǧanata ot nego izpulnima programa (executable) kum adresut na razdelut v operativnata pamet, v kojto razdel executable-ut qe se pysne da se izpulnäva.
- Sega, linkerut može da nastroi proizveǧaniut ot nego executable kum ygovoren fiksiran adres (obiknoveno nad me̋stoto, zadeleno za stack).
- Tozi predvaritelno ygovoren adres e virtyalen.
- Toj e adres vuv virtyalnoto adresno prostranstvo za tozi proces.
- Na kakuv fizičeski adres otgovarä - za tova ne tre̋bva da se grižim.
- Tova qe stane äsno edva pri pyskane na programata.
- Pri različni pyskania na programata fizičeskiut adres može da e različen.
- Fiksiran e virtyalniut adres.
- (.. skrij go gole̋moto virtyalno adresno prostranstvo ..) (.. skrij go zaklÿčenieto kum švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Izolacia na procesite edin ot dryg (.. pokaži ..)
-
▼▼
Izolacia na procesite edin ot dryg
(.. skrij ..)
- Vseki proces raboti vuv svoe virtyalno adresno prostranstvo i taka e izoliran ot drygite procesi.
- Bugava ili zlonamerena potrebitelska programa ne može da piše iz pametta na drygite procesi ili na operacionnata sistema, zaqoto ne̋ma dostup.
- Procesut viǧa samo tova, koeto my se pokazva v negovoto virtyalno adresno prostranstvo.
- Kum vse̋ka stranica ot virtyalnoto adresno prostranstvo na procesut dostuput može da e razrešen, da e napulno zabranen, ili da e samo za četene.
- Procesut ne̋ma vuzmožnost da navredi na drygite.
- Da ne može da se navredi na drygite - tova e osnovnoto v mnogo-potrebitelskata rabota na kompÿturut.
- (.. skrij ü izolaciata na procesite ..) (.. skrij go zaklÿčenieto kum švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- Vseki proces raboti vuv svoe virtyalno adresno prostranstvo i taka e izoliran ot drygite procesi.
- ►► Dinamični biblioteki (.. pokaži gi ..)
-
▼▼
Dinamični biblioteki
(.. skrij gi ..)
- Vurnete se da pročetete tozi podrazdel.
- Dinamični biblioteki. Celiut izraz e biblioteki s dinamično svurzvane.
- DLLs: Dynamically Linked Libraries.
- Naričani oqe: shared objects, shared libraries ili razdeläemi biblioteki.
- Za fynkcionalnostta na DLL-ite doprinasä ne samo dinamičnata preadresacia (MMU-tata), no i vuzmožnostta, koäto suvremennite kompÿturni arxitektyri predostavät, kompilatorite da generirat samo pozicionno nezavisim kod (PIC: position independent code).
- Edna dinamična biblioteka i edin executable si priličat mnogo.
- Rezyltat su ot rabotata na linkerut.
- Suduržat ili kod (mašinni instrykcii - kod, izpulnim ot CPU-to), ili danni.
- Mogut da se zareǧat v operativnata pamet za izpulnenie.
- Obače ot executable može da se startira proces, a ot dinamična biblioteka ne može.
- Edin executable obäväva na operacionnata sistema ot koä vxodna točka da se startira procesut.
- Edna dinamična biblioteka ne̋ma specialna vxodna točka.
- Obruqeniata kum suduržaqite se v neü podprogrami i danni tre̋bva da dojdut ot drygi programi, a ne ot operacionnata sistema.
- Tezi obruqenia se svurzvat i nastrojvat po vreme na zareǧaneto na dinamičnata biblioteka vuv virtyalnoto adresno prostranstvo na procesut.
- Kogato edna dinamična biblioteka se zareǧa vuv virtyalnoto adresno prostranstvo na proces, nyǧaeq se ot neü, namira ï se tam me̋sto.
- Ako suqata dinamična biblioteka se zaredi vuv virtyalnoto adresno prostranstvo na dryg proces, tä može da bude namestena na dryg virtyalen adres.
- Dvata procesa izpolzvat edno i suqo kopie na dinamičnata biblioteka vuv fizičeskata operativna pamet.
- Zatova e važno podprogramite ot dinamičnata biblioteka da su v pozicionno nezavisim kod.
- (.. skrij gi dinamičnite biblioteki ..) (.. skrij go zaklÿčenieto kum švstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ►► Virtyalni mašini (.. pokaži ..)
-
▼▼
Virtyalni mašini
(.. skrij ..)
- Dymata virtyalen označava simyliran ili modeliran, a virtyalizacia - simylacia ili modelirane.
- A dymata mašina označava kompÿtur, razbira se.
- Za sistemata VM/370, koäto predostavä gostyvaqi virtyalni mašini s arxitektyra, podobna na arxitektyrata na kompÿturut-domakin, stanu dyma tyka.
- Ideäta za virtyalizacia na operativnata pamet - ideäta za virtyalna pamet, se prenasä kum celiut kompÿtur - kum ce̋lata mašina.
- Poäväva se ideäta za virtyalna mašina.
- Na pruv pogled - otsam xorizontut, tre̋bva da se spomenut
virtyalnite mašini, koito simylirat-modelirat realni mašini.
- Realna mašina - označava mašina, suqestvyvaqa v xardwerno izpulnenie.
- Sled sistemata VM/370, veče ima mnogo priložen softwer za virtyalni mašini.
- Ima daže softwer, kojto simylira mašina sus suvsem dryga arxitektyra.
- Naprimer, virtyalna mašina s arxitektyra VAX, raboteqa na mašina-domakin, koäto ne e VAX.
- Virtyalnite mašini imat široko priloženie
- kakto za testvane na programi, kogato celeviut xardwer ne e naličen,
- taka i za myltiplicirane, kogato edin nov moqen model idva da zameni stari mašini v ne̋kolko obrabotki.
- A ottatuk xorizontut, na sledvaqo nivo na abstrakcia, su
virtyalnite mašini, suqestvyvaqi izce̋lo kato softwerna ideä, bez vruzka v nikakuv xardwer.
(.. Tova izliza ot temata na nastoäqata beseda ..)
- Na purvo me̋sto sledva da se spomene virtyalnata mašina na ezikut Java - JVM: Java Virtual Machine.
- Tä izpulnäva programi na ezikut Java.
- Programite na ezikut Java se izpulnävat na takava mašina.
- Za vseki ot ezicite za programirane, koito ne se kompilirat, a se interpretirat, može da se izgradi suotvetna ideä za virtyalna mašina.
- Osven Java, takiva ezici su PERL, Python, PHP, LISP i drygi.
- Na purvo me̋sto sledva da se spomene virtyalnata mašina na ezikut Java - JVM: Java Virtual Machine.
- (.. skrij gi virtyalnite mašini ..) (.. skrij go zaklÿčenieto kum šestata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum načaloto ..
- ◄► (.. skrij go zaklÿčenieto ..) (.. svij go ..) (.. razguni go ..) (.. skrij ü šestata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
- ◄► (.. skrij ü šestata beseda za dinamičnata preadresacia ..) (.. svij ü ..) (.. posvij ili porazguni ..) (.. razguni ü ..) .. kum načaloto ..
►► 8. [Draft] Xymannata aritmetika na kompÿtur (.. pokaži ü sedmata beseda ..) (.. razgunuto ..) .. kum načaloto ..
- Kolkoto pò ostare̋vam, tolkova pò se vdetine̋vam.
- S tova qe se ypražnävam na JavaScript.
- Qe yču kompÿturut na suqata aritmetika, kakto decata v načalnoto yčiliqe.
- May appear in the future: Ne e napisano oqe. A̋ doživeü da go napišu, a̋ ne.
▼▼ 8. [Draft] Xymannata aritmetika na kompÿtur (.. skrij ü sedmata beseda ..) (.. svij ü ..) (.. razguni ü ..) .. kum načaloto ..
-
In development: Ne e napisano oqe.
- ◄►
- ◄►
- ◄► (.. skrij ü sedmata beseda za xymannata aritmetika ..) (.. svij ü ..) (.. posvij ili porazguni ..) (.. razguni ü ..) .. kum načaloto ..
►► 9. Prepratki (references) (.. pokaži gi ..) .. kum načaloto ..
▼▼ 9. Prepratki (references) (.. skrij gi ..)
- christotamarin.blog: Žitejska programa
- christotamarin.blog: XT Keyboard Layouts Reference: Klaviatyri s razširena kirilica
- christotamarin.blog: Virtual Keyboard and some other tools
- christotamarin.blog: Principi na moite vuzgledi za minuloto
►► 10. Komentari, vuprosi i otgovori (comments, Q&As) (.. pokaži gi komentarite ..) (.. razgunuti ..) .. kum načaloto ..
▼▼ 10. Komentari, vuprosi i otgovori (comments, Q&As) (.. skrij gi ..) (.. svij gi ..) (.. razguni gi ..) .. kum načaloto ..
Ako ima vupros ili komentar, na kojto tre̋bva da otgovorü, qe prepišu vuprosut ili komentarut tyka i qe otgovorü tyka.
- ►► ::christo.tamarin, 2023-04-13 20:34:: The history of IT at a glance (.. pokaži tyka ..) (.. razgunuto ..) (.. pokaži vuv facebook: .. tam .. ili tam ..) .. kum načaloto ..
-
▼▼
::christo.tamarin, 2023-04-13 20:34:: The history of IT at a glance
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
(.. pokaži vuv facebook: ..
tam .. ili
tam ..)
.. kum načaloto ..
- ◄► Istoriata na informacionnite texnologii nakratko Tozi tekst ne e zavuršen. A̋ go zavuršu, a̋ ne.
- ►► Programisti (.. pokaži ..)
-
▼▼
Programisti
(.. skrij ..)
- Sme̋ta se, če purvata programistka e bila Ada Luvlejs (Ada Lovelace), duqerä na poetut Bajron i sutrydnička na Čarlz Babix̌ (Charles Babbage).
- Obače prez životut si izpulnenie na svoä programa tä ne e viǧala, poneže kompÿturut na Čarlz Babix̌ ne e vle̋zul v dejstvie.
- Realno purvite na svetut programisti su nastrojčicite na žakardovite tukačni stanove.
- ►► Bazi danni (.. pokaži ..)
-
▼▼
Bazi danni
(.. skrij ..)
- Arxivi i biblioteki su purvite bazi danni.
- Sledvaqiut suqestven moment v razvitieto e xoleritovata texnika na firmata IBM ot kraüt na 19-ti i prez 20-ti vek.
- Bazi danni v kompÿturnata era.
- Purvo qe spomenu bazite danni po jerarxičniut ili po mrežoviut model.
- Kobolistite (programistite na COBOL) be̋xu naložili ezikut CODASYL.
- Ne̋ma maj takiva neqa veče.
- Sega vse̋ka fajlova sistema može da se sme̋ta za jerarxična baza danni.
- Naloži se relacionniut model na bazite danni i ezikut SQL.
- ►► Kalkylatori (.. pokaži ..)
-
▼▼
Kalkylatori
(.. skrij ..)
- Smetalà.
- Edno vreme vuv vse̋ka klasna staä v načalnoto yčiliqe (v otdeleniata) imaše gole̋mo smetalo,
- a vseki vtoroklasnik imaše malko smetalo kato yčebno posobie.
- Imaše i yroci za rabota s takiva smetalà.
- Vupreki tova bulgarskoto obrazovanie se provaläše pri ysvoävaneto na ymeniata za rabota sus smetalata.
- Magazinerite v Bulgaria sme̋taxu s ximičeski moliv vurxy ambalažna xartia.
- Ambalažnata xartia, s koäto magazinerut qe ti yvie bycata sirene, obiknoveno suduržaše smetkata na predišniut klient.
- Ne taka beše v Rysia.
- Kogato prez 80-te xodex v komandirovka v Moskva, tamošnite magazineri rabotexu sručno sus smetalà.
- Logaritmična linijka i logaritmični tablici.
- Edno vreme v gimnaziite se yčexme da sme̋tame s logaritmična linijka i logaritmični tablici.
- Togava tova beše neobxodimo za inženernoto delo.
- Na srednoškolskite olimpiadi po matematika i fizika razrešavaxu da si nosim logaritmični linijki.
- Sega vsičko tova e out-of-date, ostare̋lo, izmesteno ot kompÿtrite i elektronnite kalkylatori.
- Mexanični kalkylatori.
- Pri takuv kalkylator se natiskat klaviši i se vurti ručka.
- Često su snabdeni i sus zvunčeta.
- V mnogo filmi za staroto amerikansko vreme može da se vidi, če vuv vseki amerikanski magazin ili bar ima takuv kalkylator kato kasov aparat.
- Baqa mi beše sčetovoditel i imaše na razpoloženie takuv kalkylator.
- Edno zavurtane na ručkata napred - subirane.
- Zavurtane nazad - izvaǧane.
- Pet zavurtania napred - ymnožavane na pet.
- Imaše broäč na zavurtaniata.
- Ako iskaš da ymnožiš po pet, no si se zasilil i si zavurte̋l ručkata šest puti, zavurtaš vednuž nazad.
- Imaše i način za izvuršvane na delenie, no v našeto selo nikoj ne znaeše kak stava tova.
- Elektro-mexanični kalkylatori.
- Za razlika ot čisto mexaničnite, tezi si ne̋mat ručka, a samo klaviši.
- Imat si i elektromotorče[ta] za vurtene na registrite.
- Izpolval sum takuv - nemsko proizvodstvo. Mnogo ydoben beše za rabota.
- Elektronni kalkylatori.
- Tyka ima veče bulgarska sleda, daže dve takiva sledi.
- Inače v oblastta na ΙΤ dryga bulgarska sleda ima samo pri kompÿturnite virysi.
- No za te̋x izobqo ne̋ma da pišu, če me e sram.
- Purvata bulgarska sleda ne e suvsem bulgarska, ama vse pak.
- Na X̌on Atanasov baqa my oqe kato dete rodnini go otveli v Qatite.
- Tam toj se izyčil za inžener i se oženil za amerikanka ot irlandski proizxod, yčitelka po matematika.
- A samiut X̌on bil profesor po fizika v qatskiut yniversitet na Aöva.
- Po vreme na WW2 toj rešil da suzdade kalkylator za nasočvane na artilerijskiut ogun, izgraden vurxy materialnata baza na radiotexnikata, t.e. elektronen kalkylator.
- Narečen bil ABC - Atanassoff-Berry Computer (Berry bil sutrydnik na Atanassoff).
- Vojnata svuršila i rabotata po kalkylatorut bila zare̋zana, predi toj da bude zavuršen.
- Prez sledvaqite godini vuv vruzka sus sudeben spor za patenti advokatite na ednata strana po deloto izrovili informacia za ABC.
- Tazi informacia dostignula do Blagovest Sendov, sled koeto na slyčaüt bila pridadena glasnost i v Bulgaria, i v svetut.
- Pri ABC za pruv put elektronika bila izpolzvana za IT.
- No vse pak, tova ABC ne e bilo kompÿtur, zaqoto ABC ne e bil programiryem.
- ABC e bil kalkylator sus specialno prednaznačenie.
- Vtorata bulgarska sleda v elektronnite kalkylatori.
- Proxoǧaqata bulgarska elektronika prez 60-te bila na svetovno nivo pri nastolnite elektronni kalkylatori.
- Postroeni bili zavodi v Sofia i Silistra.
- Markata ELKA stanula naricatelno za elektronen kalkylator v bulgarskiut ezik.
- Razbira se, bulgarskata elektronika burzo izostanula, zaqoto ne možela da sledva progresut kum kalkylatorite x̌oben format.
- Tyka ima veče bulgarska sleda, daže dve takiva sledi.
- (.. skrij gi smetalata i kalkylatorite ..)
- Smetalà.
- ►► Elektronika (.. pokaži ..)
-
▼▼
Elektronika
(.. skrij ..)
- Elektronikata e sledvaqa faza v razvitieto na radiotexnikata, priloženie na radio-texnikata ne samo v radioto.
- Radio-texnikata (elektronikata) se obosobila ot elektro-texnikata sled izobretävaneto na elektronnata lampa (1904).
- Texnologičniut progres e zamenil elektronnite lampi s tranzistori (sled 1954), osnovani na poly-provodnici (silicij, germanij, ..).
- Za razlika ot elektronnite lampi, pri poly-provodnicite imalo megdan za miniatÿrizacia.
- Poävili se integralni sxemi - LSI (Large Scale Integration), posle X-LSI (Extra-Large Scale Integration), posle XX-LSI, ..
- Sega nano-texnologii i XXXX..XX-LSI.
- ►► Kompÿtri (.. pokaži ..)
-
▼▼
Kompÿtri
(.. skrij ..)
- Konrad Cyze.
- Konrad Cyze.
- ◄► (.. skrij go komentarut ..) (.. svij go ..) (.. razguni go ..) (.. skrij gi komentarite ..) (.. svij gi ..) (.. razguni gi ..) .. kum načaloto ..
- ►► ::author.unknown, 2023-10-25 09:45:: Istoričeska spravka za našeto pokolenie (.. pokaži ü tyka ..) (.. pokaži ü vuv facebook: .. Nežna e noqta .. Bulgaria ..) .. kum načaloto ..
-
▼▼
::author.unknown, 2023-10-25 09:45:: Istoričeska spravka za našeto pokolenie
(.. skrij ü ..)
(.. pokaži ü vuv facebook: ..
Nežna e noqta ..
Bulgaria ..)
.. kum načaloto ..
- Ima xora, koito su rodeni prez 50-te i 60-te godini.
Otgledani su prez 60-te godini.
Yčili su prez 70-te godini.
Te su se ženili prez 80-te godini.
Rabotili su prez 80-te i 90-te,
mnogo rabotüt i dnes ... - Te si promenixu mirogledut prez 90-te.
«Viǧaxu svetlinata» prez 2000-ta.
Be̋xu iznenadani prez 2010.
I neotkazali se prez 2020! - Preživeli počti
sedem različni desetiletia...
dva različni veka...
dve različni xilädoletia... - Ot telefon na dulgi razstoänia do video-razgovori navse̋kude po svetut,
ot filmovi lenti i slide-show-ta do Youtube,
ot vinilovi ploči do online-myzika,
ot rukopisni pisma do email, WhatsApp i socialni mreži.
Ot slyšane na mačove po radioto, gledane na černo-be̋la televizia i sled tova televizia s visoka razdelitelna sposobnost.
Te xodexu vuv videotekata, a sega gledat Netflix.
Znaexu kak da otpečatat fotokarta,
imaxu purvite kompÿtri, perfokarti, flopi diskove,
a sega imat gigabajti i terabajti na mobilni telefoni ili iPad.
Prez ce̋loto si detstvo te nosüt kusi pantaloni, sled tova dulgi pantaloni, oksfordki, bermydi ili mini poli, maksi poli, klinove, xarem i dr.
Obyvaxu filcove, karaxu roleri, trikolki i velosipedi, motopedi, benzinovi ili dizelovi koli, a sega karat xibridi ili 100% električeski skyteri, velosipedi, skyteri i koli.
Te izbegnuxu detski paralič, meningit, edra šarka, grip H1N1 i zapadnonilska treska. - Da! Takiva xora su minuli prez mnogo, no kakuv prekrasen i interesen život imat!
- Tova pokolenie spokojno može da se nareče «bivši pensioneri»,
koito su rodeni v onzi sve̋t na 50-te i 60-te godini,
imali su analogovo detstvo
i digitalen život na zre̋la vuzrast.
Te su edin vid «Abrakadabra». V bykvalniut smisul na dymata. - Tova pokolenie e žive̋lo i prežive̋lo poveče ot vse̋ko drygo v istoriata na čovečestvoto vuv vse̋ko izmerenie na životut.
- Imenno tova pokolenie se adaptira kum vse̋kakvi promeni!
- 👏 Aplodismenti 👏!
Za vsički predstaviteli na osobenoto pokolenie,
koeto beše i si ostava ynikalno, nezavismo ot vsičko!
Zdrave, Radost, Kusmet, Dobrota i Qastie!💛🍀💜 - ◄►
::christo.tamarin, 2023-10-25 11:05::
dva različni veka...
Koe e našeto xilädoletie?
dve različni xilädoletia...- Dali tova, prez koeto evropejcite su otkrili Amerika?
- Ili tova, prez koeto amerikancite qe zaselüt Lynata?
- (.. skrij ü istoričeskata spravka za našeto pokolenie ..) (.. skrij gi komentarite ..) (.. svij gi ..) (.. razguni gi ..) .. kum načaloto ..
- Ima xora, koito su rodeni prez 50-te i 60-te godini.
- ►► ::christo.tamarin, 2024-04-01 15:34:: Ne e bila Brigitte Bardot (.. pokaži go komentarut ..) .. kum načaloto ..
-
▼▼
::author.unknown, 2023-10-25 09:45:: Ne e bila Brigitte Bardot
(.. skrij go komentarut ..)
.. kum načaloto ..
- V tretata si beseda razkazax kak prez le̋toto na 1977, dokato karax staž v Turnovo, izbrodirax kartinka za trakaq printer.
- Iskaše mi se Brigitte Bardot da e pozirala na xydožnikut.
- No se okaza, če tova ne̋ma kak da e vuzmožno.
- Litografiata e risyvana okolo 1935 ot suvetskiut xydožnik E.A.Kibrik.
- (.. skrij go komentarut ..) (.. skrij gi komentarite ..) (.. svij gi ..) (.. razguni gi ..) .. kum načaloto ..
- ◄► (.. skrij gi komentarite ..) (.. svij gi ..) (.. razguni gi ..) .. kum načaloto ..
(.. развернуть все̇ ..) (.. свернуть все̇ ..) .. to the bottom ..
[Draft] Полиномиально о компьютерах
Перевода на русский не будет.
.. в начало ..
(.. show all ..) (.. collapse all ..) .. to the bottom ..
[Draft] About Computers Polynomially
Not available yet - still in development.
.. to the top ..
No comments:
Post a Comment