(.. покажи всичко ..) (.. свий&скрий всичко ..) .. 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 от съвѣтския̌т художник Е.А.Кибрик.
- (.. скрий го коментарът ..) (.. скрий ги коментаритѣ ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
- ◄► (.. скрий ги коментаритѣ ..) (.. свий ги ..) (.. разгъни ги ..) .. към началото ..
(.. pokazhi vsichko ..) (.. svij&skrij vsichko ..) .. to the bottom ..
Za kompjytrite polinomialno
- 1. Preambjyl: obq razdel
- 2. O, minulo burzozabravimo: 5-te dypki na perfolentata
- 3. Za kompjytrite polinomialno
- 4. Broderia na trakaq printer
- 5. EGN-to otvutre
- 6. Diskovata pamet na System/360
- 7. Virtyalnata pamet na kompjytrite
- 8. [Draft] Xymannata aritmetika na kompjytur
- 9. Prepratki (references)
- 10. Komentari, vuprosi i otgovori (comments, Q&As)
►► 1. Preambjyl: obq razdel (.. pokazhi go preambjylut ..) (.. razgunuto ..)
- Sega sum pensioner.
- Vsehka ot tezi besedi e nezavisima ot drygite i mozhe da se chete otdelno.
▼▼ 1. Preambjyl: obq razdel (.. skrij go preambjylut ..) (.. svij go ..) (.. razguni go ..)
- ►► Predgovor na preambjylut (.. pokazhi go predgovorut na preambjylut ..)
-
▼▼
Predgovor na preambjylut
(.. skrij go predgovorut na preambjylut ..)
- Prez 2018 se pensionirax, sled kato pridobix iziskvaqite se stazh i vuzrast za tova.
- Pensionirax se sled 40 godini rabota kato kompjyturen programist i softweren inzhener.
- V suqnost behx mnogo dobur kodirovchik.
- Mnogo dobre sum se razbiral s kompjytrite.
- Vlizal sum im pod tenekiite - pri bitovete.
- Zaqoto te samo ot bitove razbirat.
- V tazi pyblikacia qe se pomuchu da suberu spomeni ot dalechnoto minulo.
- Na durti godini chovek se vdetinehva.
- Natam sum se zaputil i az.
- Tova tyka me vruqa kum mladezhkite mi godini.
- Kato vzemut da me nalehgat i detski spomeni, qe stane krajno vreme da spru da pishu.
- No ako po spomeni zaxvanu nehkoja tema, qe prosledjų i sledvaqoto ï razvitie.
- Toest, tova nehma da su samo mladezhki spomeni.
- A za zanimavka i za gimnastika na ymut, ne iskam da spiram da pishu softwer.
- Yprazhnjavam se na JavaScript.
- Taka che qe ima mnogo softwer vtukàn v tazi pyblikacia.
- There will be much software behind.
- .. skrij go predgovorut na preambjylut .. (.. skrij go preambjylut ..) (.. svij go ..) (.. razguni go ..)
- ►► Vsehka beseda e nezavisima ot ostanulite (.. pokazhi ..)
-
▼▼
Vsehka beseda e nezavisima ot ostanulite
(.. skrij ..)
- Vsehka beseda e ot tozi sbornik s besedi e nezavisima ot ostanulite
- i mozhe da se chete otdelno.
- Vsehka edna e predizvikana ot nehkakuv moj dalechen spomen.
- Obiknoveno se prosledjava i razvitieto na problemut prez sledvaqite godini.
- Vsehka ot besedite e svurzana po nehkakuv nachin s kompjytrite.
- Vse pak v detajli ne sum navlizal.
- Ot chitatelite ne se iziskvat znania v oblastta na kompjytrite ili softwerut.
- V nehkoi ot besedite e vtukàn softwer.
- Toj demonstrira neqo.
- Napisan e na JavaScript.
- Mozhe da se testva.
- .. skrij jų nezavisimostta na besedite .. (.. skrij go preambjylut ..) (.. svij go ..) (.. razguni go ..)
- ◄► Zasega ne vsichki planirani besedi su zavursheni.
- No vsichki planirani besedi si imat veche zaglavia i se pojavjavat v tablicata na sudurzhanieto.
- ◄► (.. skrij go preambjylut ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
►► 2. O, minulo burzozabravimo: 5-te dypki na perfolentata (.. pokazhi jų purvata beseda ..) (.. razgunuto ..) .. kum nachaloto ..
- Po spomenite mi ot 9-ti klas.
- Sredno obrazovanie sum zavurshil s kvalifikacia "izchislitel-kodirovchik".
- Kodiraneto na myzikata - myzikalnite noti - se ycheshe edno vreme v 3-to otdelenie.
- A mnogo po-vazhnoto kodirane za kompjytrite maj samo eksperti go znajųt. ::2021-11-05 13:10::
▼▼ 2. O, minulo burzozabravimo: 5-te dypki na perfolentata (.. skrij jų purvata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
::2021-11-05 13:10::- ►► Predgovor, kojto trehbva da se prochete purvo (.. pokazhi go predgovorut na purvata beseda ..)
-
▼▼ Predgovor, kojto trehbva da se prochete purvo
(.. skrij go predgovorut na purvata beseda ..)
- Minuloto biva minulo nezapomneno i minulo burzozabravimo.
- Progresut na choveshkoto obqestvo se dulzhi samo na napredukut na texnologiite.
- Revoljyciite ne mogut da vodjųt do progres.
- Revoljyciite mogut da prichinjųt regres v obqestvoto, ako se prevurnut v spirachka na texnologichnoto razvitie.
- A inache revoljyciite su naj-obiknoveni aktove na nasilie, kakvito chovechestvoto poznava otkraj vreme:
- bratoybijstva, grabezhi, vojni, masovi ybijstva.
- Do napreduk te na vodjųt.
- Pensioniral sum se sled 40 godini stazh v kompjyturnata indystria - kato kompjyturen programist i softweren inzhener.
- I tozi tekst tyka e posveten na dalechnata istoria na kompjyturnata indystria,
- dalechnata - otpredi az da vlehzu profesionalno v indystriata.
- Iska mi se da materializiram spomenite si:
- kakvo sum ychil v deveti klas v turnovskata gimnazia prez 1969.
- Da, v deveti klas ychexme za mashinnoto kodirane na Minsk-2.
- Nehkakvi obqi poznania su ni bili prepodavani v deseti klas - sxemi, algoritmi, kodirovki, notacii.
- A v edinadeseti klas ychixme ezikut za programirane ot visoko nivo Algol-60.
- V diplomata mi za sredno obrazovanie ima i nehkakva profesionalna kvalifikacia: izchislitel-kodirovchik.
- Nashata paralelka 'D' zavurshvaxme kato izchisliteli-kodirovchici.
- Drygi paralelki zavurshvaxu kato avtomontjori, elektrotexnici, ..
- Naj zavighaxme na shofjorite ot 'G'-paralelka - zavurshvaxu gimnazia s shofjorska knizhka.
- Prez zhivotut si nikoga ne sum programiral na Minsk-2, nito za Minsk-22 ili Minsk-32.
- Nito puk sum vighal kompilator ot Algol-60.
- No programi na Algol-60 sum pisal.
- Verojatno edinstvenite vxodno-izxodni ystrojstva na "drevnite" kompjytri Minsk-2 su bili vxod i izxod na petputechkova 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 kompjyturnata texnika oqe ne bilo doshlo.
- No dosta texnologichni postizhenia ot 19-ti vek i ot purvite desetiletia na 20-ti vek su doprinesli za razvitieto na kompjyturnite texnologii:
- zhakardovite stanove
- telegrafut
- xoleritovata texnika na IBM
- avtomatichnite telefonni centrali
- i razbira se,
- radiotexnikata.
- Naprimer:
- Elementnata baza na suvremennite kompjytri e trugnula ot radiotexnikata.
- Obache purviut programiryem kompjytur na Konrad Zuse (1941) e bil postroen s elementi na telefoniata, na avtomatichnite telefonni centrali.
- Purvo prochetete 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 preodoljavaneto ih v nachaloto na 21-vi vek.
- Tyka qe stane dyma za petbitovata kodirovka, standartizirana za petputechkovite perfolenti, izpolzvani v telegrafiata, no i v "drevnite" kompjytri Minsk-2.
- .. skrij go predgovorut na purvata beseda .. (.. skrij go minuloto nezapomneno ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Kodirovkata na petputechkovite perfolenti (.. pokazhi jų ..) (.. razgunuto ..) .. kum nachaloto ..
-
▼▼ Kodirovkata na petputechkovite perfolenti
(.. skrij jų ..)
(.. svij jų ..)
(.. razguni jų ..)
- ►► Telegrafut (.. pokazhi ..)
-
▼▼ Telegrafut
(.. skrij go ..)
- V tesen smisul telegrafiata predstavljava distancionno predavane na elektricheski impylsi.
- Vazhni su suputstvaqite ystrojstva.
- [A] Perforator s klaviatyra
- Ystrojstvo s klaviatyra, prilichaqo na pisheqa mashina, koeto vmesto da otpechatva bykvite, cifrite, tochkite i zapetajkite na xartia vuv vid, ydoben za chovek, dypchi kodovete im na perfolenta.
- [B] Pisheqa mashina bez klaviatyra
- Chete ot perfolenta kodovete na bykvi, cifri, tochki i zapetajki, i gi otpechatva vuv vid, ydoben za chovek.
- [C] Chetec na perfolenta
- Chete kodove ot perfolenta i gi praqa po telegrafna linia do otdalecheno mehsto ili puk gi podava na kompjytur - toj da pravi kakvoto iska s tehx.
- [D] Perforator bez klaviatyra
- Dypchi na perfolenta ili impylsite, polycheni po telegrafna linia ot otdalecheno mehsto, ili kodovete, polycheni ot kompjytur.
- V samata telegrafia chrez ystrojstvo A telegramata se otpechatva na perfolenta,
kojato se podava na ystrojstvo C, za da budut prateni kodovete do destinaciata,
kudeto ystrojstvo D dypchi polychenite signali na perfolenta,
kojato se podava na ystrojstvo B, za da bude tekstut otpechatan na xartia.
Taka polychenata telegrama se vruchva na polychateljut. - Tazi yslyga, kojato poqite predostavjaxu, e ot 19-ti vek.
- V nachaloto na 21-vi vek telegrafiata izleze ot ypotreba, zaqoto yslygata "elektronna poqa" na internet i yslygata SMS na GSM-komynikaciite jų zamestixu.
- Bulgarskite poqi sprehxu da praqat telegrami prez 2005.
- Poslednata telegrama v svetut e bila pratena na 2013-07-14.
- Ystrojstvata, obslyzhvaqi telegrafiata, su bili izpolzvani pri purvite kompjytri, vkljychitelno i pri Minsk-2, za koito qe stane dyma.
- Zabelezhka_1: Verojatno vinugi e imalo xora, sposobni da chetut kodirani perfolenti i da zapisvat na ruka ili da diktyvat polychenite telegrami.
- Zabelezhka_2: Razbira se, telegrafiata ot poslednite desetiletia e izpolzvala po-suvremenni elektronni ystrojstva s pamet.
- (.. skrij go telegrafut ..) (.. skrij jų kodirovkata na petputechkovite perfolenti ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Kodirovkata (.. pokazhi ..)
-
▼▼ Kodirovkata
(.. skrij jų ..)
Podredba na tablicata:
- Dvata reda s desetichni chisla predstavjat perforiranite kodove v dve notacii: s mladshiut bit otgore (BigEndian) i s mladshiut bit otdoly (LittleEndian).
- Tablicata mozhe da se pokazhe s tri podredbi na kolonite:
- spored gornite bitove - te su naj-znachimi: BigEndian
- spored dolnite bitove - te su naj-znachimi: 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 Ja V E R T Ы Y I O P A S D F G X J K L Z J C Zh B N M ESC DEL NUL CR LF SP 0 1 2 3 4 5 6 7 8 9 - ' WRU Э Sh Q Jy ( ) + / : = ? , . ESC DEL - Ima dva registura:
- osnoven registur - registur na bykvite
- alternativen registur - registur na formite - cifri, skobi, zapetai, ..
- Ima i dva rezhima:
- latinica
- kirilica
- Samo v stranite s pismenost na kirilica suqestvyva rezhim kirilica.
- Povecheto strani se zadovoljavat samo s rezhim latinica.
- Chetirite reda v tablicata su kakto sledva:
- osnoven registur - rezhim latinica
- alternativen registur - rezhim latinica
- osnoven registur - rezhim kirilica
- alternativen registur - rezhim kirilica
- Kontrolnite znaci NUL, LF, SP, CR, ESC, DEL se kodirat ednakvo v dvata registura i dvata rezhima.
- 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 - pozvoljavat 52 znaka, osven 6-te kontrolni znaka.
- Ako suqestvyva rezhim kirilica, to sled NUL se vliza v tozi rezhim, a sled DEL se preminava v rezhim latinica - osnoven registur.
- NUL oznachava neprodypchena perfolenta.
- Ako rezhim kirilica ne suqestvyva, NUL ne mozhe da se sreqa vutre v suobqenie.
- Inache, ako rezhim kirilica suqestvyva, to tova e nachalniut rezhim. Povecheto telegrami ne nalagat prevkljychvane kum rezhim latinica, no ako se nalozhi, tova stava s DEL.
- (.. skrij jų petbitovata kodirovkata ..) (.. skrij go podrazdelut ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Perfolenti s poveche ot pet putechki (.. pokazhi ..)
-
▼▼ Perfolenti s poveche ot pet putechki
(.. skrij ..)
- Petputechkovata perfolenta s kodirovkata, pokazana po-gore, opredelja petbitovata bariera.
Kompjytrite Minsk-2, za koito qe stane dyma po-doly, su bili ystanoveni na tazi bariera.
Az ne sum rabotil s kompjytri na petbitovata bariera, nito s petputechkovi perfolenti. - Kogato az zapochnux rabota, perfolentite, izpolzvani ot indystriata, behxu osemputechkovi, a kompjytrite behxu ystanoveni na sedembitovata bariera, v 7-bitova sredà.
- Edno vreme - v purvite moi godini v indystriata -
perfolentite se izpolzvaxu, za da se zareghat testovi programi, ili - rehdko - pri nachalno zareghane (boot).
- [Q]Vupros: A sega kak se zareghat testovi programi na poly-ymrehl xardwer?
- [A]Otgovor: Sega celiut chip se izxvurlja i se zamenja s nov.
- Edno vreme ljybimata drexa na chovek v techenie na godinite se sdobivala s krupki.
- Sega chovek si izxvurlja skusanata drexa, kolkoto i da my e ljybima, i si kypyva nova.
- Tova e texnologichen progres.
- Novoto proizvodstvo e dostatuchno evtino i ne si stryva staroto da se remontira.
- Sega ima realna vuzmozhnost xartiata da se izxvurli ot informacionnite texnologii.
- Plastika, implantirani chipove - kakvo my trehbva na chovek ..
- Dazhe ljybovni pisma na xartia veche nehma.
- Lichno az imam bogat opit s perfokarti, a ne tolkova s perfolenti.
- No perfokartite su izvun obxvatut na tozi razkaz.
- (.. skrij gi 8-putechkovite perfolenti ..) (.. skrij jų kodirovkata na petputechkovite perfolenti ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- Petputechkovata perfolenta s kodirovkata, pokazana po-gore, opredelja petbitovata bariera.
- ◄► (.. skrij jų kodirovkata na petputechkovite perfolenti ..) (.. svij jų ..) (.. razguni jų ..) (.. skrij go minuloto nezapomneno ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Kompjytrite Minsk-2 - v dalechnoto minulo na suvetskata indystria (.. pokazhi ..) (.. razgunuto ..) .. kum nachaloto ..
-
▼▼ Kompjytrite Minsk-2 - v dalechnoto minulo na suvetskata indystria
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
- ►► I kakvo vse pak e stanulo s kompjytrite Minsk-2 (.. pokazhi ..)
-
▼▼ I kakvo vse pak e stanulo s kompjytrite Minsk-2
(.. skrij ..)
- Prez suqata godina, kogato v deveti klas sum ychil kodiraneto na Minsk-2, zavodut v grad Minsk bil sprehl proizvodstvoto na tezi kompjytri.
- Sledvaqite modeli Minsk-22 i Minsk-32 donehkude su bili programno suvmestimi s Minsk-2.
- Nehkolko kompjytura Minsk-32 su bili instalirani i eksploatirani v Bulgaria.
- Pri Minsk-32 za prilozhno programirane se izpolzvashe naj-veche ezikut COBOL.
- Osven v grad Minsk, razvojni centrove za kompjyturna texnika v bivshiut Suvetski sujyz imashe v oqe nehkolko grada. Na purvo mehsto v Moskva i v Kiev. No Bulgaria e bila klient na zavodut v Minsk.
- Kakto pri vsichko ostanulo, i pri kompjytrite suvetskoto proizvodstvo otstupvashe na zapadnoto - i po kachestvo, i po cena, i po vsichko.
- V sredata na 60-te godini v indystriata na Zapad golehm yspex e postignula firmata IBM sus svojata System/360. Donehkude bila stanula indystrialen standart, s razvit pazar ne samo za xardwer, no i za softwer.
- Vuv vruzka s tova v Moskva su reshili da napravjųt "golehm skok".
- Izdadena e bila komandata vsichki stari proekti da se kancelirat i vsichki resyrsi da se vpregnut v reverse-engineering na IBM System/360 pod oznachenieto ЕС ЭВМ.
- Poveche nikakvi stranni modeli sus stranni arxitektyri!
- Ravnjavame se po purvite. Kradem ot purvite.
- Ravnjavame se po IBM. Kradem ot IBM.
- Sled godini pochnuxme da kradem i ot firmata DEC.
- V reverse-engineering-ut behx dobur.
- Ta tova e slozhilo kraj na kompjytrite ot seriata Minsk.
- Specialistite ot grad Minsk i tamoshniut zavod yspeshno su se prekvalificirali za IBM System/360, pardon za ЕС ЭВМ.
- Samo da otbelezhu, che nezavisimata durzhava Belorysia e nasledila ot bivshiut Suvetski sujyz sravnitelno razvita kompjyturna indystria.
- Po-razvita ot bulgarskata.
- (.. skrij go krajut na Minsk-2 ..) (.. skrij go podrazdelut za kompjytrite Minsk-2 ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Otklonenie: Iz "drevnostite" na bulgarskata kompjyturna indystria (.. pokazhi ..)
-
▼▼ Otklonenie: Iz "drevnostite" na bulgarskata kompjyturna indystria
(.. skrij ..)
- Kato stydent v yniversitetut i v purvite godini na profesionalnata mi kariera sum rabotil na IBM System/360 (t.e. na ЕС ЭВМ). Na izlozhenoto v tova otklonenie ne sum svidetel.
- Purvo i Vtoro.
- Purvo. V godinite 1960-63 bulgarski ycheni v edin ekzempljar su razrabotili kompjytur Vitosha.
- Eto nehkoi fragmentarni svedenia za nego.
- V mashinnata 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 izpulnjava tekyqata instrykcia, barabanut se e zavurtehl i e podminul mehstoto na sledvaqata po razpolozhenie instrykcia. Zatova se nalaga v mashinnata komanda da se ykazhe adresut na samo na operandite, no i na sledvaqata instrykcia za izpulnenie.
- Vtoro.
Prez godinite 1967-1971 v sofijskiut ZIT (zavodut za izchislitelna texnika) se proizveghali kompjytri s oznachenie ZIT-151,
po licenz za Facom-230–30 ot japonskata firma Facom.
- Nehkoi novosuzdadeni teritorialni izchislitelni centrove, nared sus suvetskite kompjytri model Minsk-32, bili oborydvani i s kompjytri ZIT-151 (Facom).
- Kompjytrite ZIT-151 (Facom), kakto i kompjytrite Minsk-32, nehmali diskova pamet, t.e. vunshna energo-nezavisima (trajna) pamet s burz dostup. Vunshnata im pamet e bila na magnitni lenti, a operativnata im pamet - na feromagnitni mrezhichki (core: connecting others reaching everyone).
- Proizvodstvoto na ZIT-151 e bilo sprehno, kogato svыshe e doshla visochajsha zapoved vsichkite ysilia na kompjyturnite specialisti v prostranstvoto ot Brandenbyrgskata vrata do Vladivostok da se vkljychut v reverse-engineering (razbiraj kradene) na prodyktovata linia System/360 na firmata IBM. Ne samo ZIT-151 e bil sprehn ot proizvodstvo, suqoto e spoletehlo i Minsk-32, kakto i red drygi suvetski razrabotki.
- Zabelezhete, che bulgarskata kompjyturna indystria (a verojatno i suvetskata) e bila podtiknuta kum krazhbi na intelektyalna sobstvenost edva s visochajshata zapoved da se sledva IBM System/360.
- Prez 80-te v Chexoslovakia behxu razrabotili originalna operacionna sistema za IBM System/370. Dori firmata IBM nehmashe takava razrabotka. Da, kato vseki nov softwer, cheshkata sistema be dosta bugava, no drygite strani ot SIV mozhexme da pomognem v debugvaneto. Niqo takova ne stanu. Cheshkata sistema be izxvurlena.
- Neysetno stignux do subitia, na koito sum svidetel.
- Obqo nabljydenie: Kakto i pri vsichki ostanuli prodykti, kompjytrite zapadno proizvodstvo po kachestvo i nadeghnost v puti nadvishavaxu kompjytrite suvetsko proizvodstvo. Koito puk ot svoja strana po kachestvo i nadeghnost nadvishavaxu kompjytrite bulgarsko proizvodstvo.
- (.. skrij gi drevnostite na bulgarskata kompjyturna indystria ..) (.. skrij go podrazdelut za kompjytrite Minsk-2 ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Pak otklonenie: bit i bajt (.. pokazhi ..)
-
▼▼ Pak otklonenie: bit i bajt
(.. skrij ..)
- V pametta na kompjytrite ima bitove, mnogo bitove.
- Edin bit ima dve sustojania.
- Tova oznachava, che v edin bit ot pametta na kompjyturut se zapisva edin bit informacia.
- Bitut e estestveno ponjatie.
- Edin bit ima dve sustojania. Te fizicheski mogut da imat razlichno izrazhenie.
- Naprimer na opredelena pozicia na perfolentata nehma dypka ili ima dypka.
- Obache e prieto xorata da oznachavat dvete sustojania na bit s cifrite 0 i 1.
- Naj-chesto se izpolzvat ne otdelni bitove, a grypi ot susedni bitove, koito predstavjat nehkakvo chislo ili kod.
- Kogato centralniut procesor chete danni ot operativnata pamet (ot RAMut) ili zapisva tam danni, vinugi chete ili pishe navednuzh grypa ot susedni bitove.
- Kogato centralniut procesor chete danni ot operativnata pamet (ot RAMut) ili zapisva tam danni, toj adresira mehstoto.
- Adresut predstavljava chislo, koeto obiknoveno se interpretira kato dvoichno chislo bez znak.
- Stupkata na adresite nehkoga beshe osnovna chast ot kompjyturnata arxitektyra.
- Prez kolko bita adresut na mehstoto v operativnata pamet se promenja 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 kompjytri tazi stupka e vinugi osem (8).
- Grypa ot osem susedni bajta na obq adres ot pametta e bila narechena bajt (byte).
- Tazi arxitektyrna cherta na suvremennite kompjytri se naricha bajtova organizacia.
- Tazi moda se e ystanovila verojatno zaradi dominiraneto na IBM System/360 v moment ot minuloto.
- Y nas ponjatieto bajt i kompjytri s bajtova organizacia se pojavixu s IBM System/360 i ЕС ЭВМ.
- Kompjytrite Vitosha, Minsk-2 i ZIT-151, za koito stanu dyma, nehmat bajtova organizacia i ponjatieto bajt pri tehx ne se izpolzva.
- ◄►
Otklonenie_1: Otnosno merkite za kolichestvo informacia.
- Osnovnata mehrka za kolichestvo 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, ponezhe otdelnite bitove ot edin bajt mogut da putyvat po razlichni putiqa iz debrite na internet.
- Osem bita informacia predstavljavat edin bajt (byte).
- 1024 bajta predstavljavat edin kilobajt (kilobyte, Kb).
- 1024 kilobajta predstavljavat edin megabajt (megabyte, Mb, golehm bajt).
- 1024 megabajta predstavljavat edin gigabajt (gigabyte, Gb, gigantski bajt).
- 1024 gigabajta predstavljavat edin terabajt (terabyte, Tb, zverski bajt).
- Osnovnata mehrka za kolichestvo informacia, zadadena ot prirodata, e bit.
- ►► Otklonenie_2: Da objasnjų terminite 16-bitovi, 32-bitovi ili 64-bitovi kompjytri (.. pokazhi ..)
-
▼▼ Otklonenie_2: Da objasnjų terminite 16-bitovi, 32-bitovi ili 64-bitovi kompjytri
(.. skrij ..)
- I tuj, kompjytrite su s bajtova organizacia. V pametta im bitovete su organizirani v bajtove.
- V edin bajt mozhe da se zapishe chislo (dvoichno bez znak) ot 0 do 255.
- Ako adresut na bajt ot pametta se sudurzhashe samo v edin bajt, to qeshe da e vuzmozhno da se adresirat samo 256 bajta - tvurde malko za pochti vsehko prilozhenie.
- Eto zaqo za adresi se izpolzvat po-golemi chisla (dvoichni bez znak), zapisani v nehkolko susedni bajta.
- Ako adresut se sudurzha v dva susedni bajta, to kompjyturut qe mozhe neposredstveno da adresira 65536 bajta (s dvoichno bezznakovo chislo meghy 0 i 65535).
- Takuv kompjytur se oznachava kato 16-bitov.
- Ako adresut se sudurzha v chetiri susedni bajta, to kompjyturut qe mozhe neposredstveno da adresira 4294967296 bajta ili 4 GigaBytes (s dvoichno bezznakovo chislo meghy 0 i 4294967295).
- Takuv kompjytur se oznachava kato 32-bitov.
- Ako adresut se sudurzha v osem susedni bajta, to kompjyturut qe mozhe da ima neposredstven dostup do adresno prostranstvo s kosmicheski razmeri.
- Takuv kompjytur se oznachava kato 64-bitov.
- I tuj, kompjyturut e s bajtova organizacia i izpolzva za adresi bezznakovi dvoichni chisla, razpolozheni v nehkolko susedni bajta.
- Vseki ot tezi nehkolko susedni bajta, zaedno predstavljavaqi bezznakovo dvoichno chislo, izpolzvano za adres, vseki ot tehx si ima svoj adres.
- No adresite im su susedni chisla. Naj-malkoto ot tezi chisla se izpolzva za adres na adresut.
- Adresut na adresut adresira adres - zatova e adres na adresut. No tova si e adres, znachi e i adres na bajt. E, tozi bajt kakva pozicia ima v chisloto, v bezznakovoto dvoichno chislo, predstavljavaqo adresut?
- Ako tova e mladshiut bajt - kompjyturut e LittleEndian.
- Ako tova e starshiut bajt - kompjyturut e BigEndian.
- Kompjytrite ot seriata ЕС ЭВМ (IBM System/360/370) su BigEndian.
- Kompjytrite s arxitektyri PDP-11 (DEC), VAX (DEC), X86 (Intel) su LittleEndian.
- Xarakteristikata LittleEndian/BigEndian ima znachenie i pri kodirovkite, kogato razlichni kompjytri si obmenjat kodove, ponezhe tja se otnasja ne samo do adresite, koito su dvoichni bezznakovi chisla, no i pri vsehkakvi chisla.
- (.. skrij go otklonenieto za 16-32-64-bitovite kompjytri ..)
- (.. skrij go otklonenieto za bit i bajt ..) (.. svij go ..) (.. razguni go ..) (.. skrij go podrazdelut za kompjytrite Minsk-2 ..) (.. svij go ..) (.. razguni go ..)
- ►► Nehkoi svedenia za kompjytrite Minsk-2 (.. pokazhi ..)
-
▼▼ Nehkoi svedenia za kompjytrite Minsk-2
(.. skrij ..)
- Navremeto znaex da pishu mashinni programi za Minsk-2.
- Sega sum zabravil. Celta na tozi tekst e da si pripomnjų, kakvoto mogu.
- Prez profesionalnata si kariera vladeex mashinniut kod na IBM/System/360/370, PDP-11 i VAX.
- No tova beshe 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 beshe 37-bitov kompjytur.
- Susedni 37 bita ot pametta obrazyvaxu kletka (memory cell, ячейка памяти).
- Vsehka kletka si ima adres.
- Adresut predstavljava 12-bitovo dvoichno chislo bez znak.
- Sledovatelno, adresut predstavljava chislo ot 0 do 4095.
- Pri modelut Minsk-22 adresut e 13-bitovo chislo 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 kodirovchici, edin 12-bitov adres se predstavjashe chrez 4-cifrovo bezznakovo chislo v osmichna sistema ot 0000 do 7777 (koeto znachi ot 0 do 4095 desetichno).
- I tuj, razmerut na operativnata pamet pri Minsk-2 v suvremenni merki e 18 i polovina kilobajta.
- Za sravnenie:
- Kogato zavurshix i postupix na rabota, kompjyturut, s kojto si imax rabota, imashe operativnata pamet 128 kilobajta. ЕС ЭВМ (IBM System/360).
- Edno vreme 32-bitovoto adresno prostranstvo na VAX (4 gigabajta) ni izgleghashe ogromno.
- Lichniut mi laptop, na kojto pishu tova, ima 16 gigabajta operativna pamet.
- Drygo kompjyturche, lichno moe, pak s nehkolko gigabajta pamet, si go nosjų v xhobut i go polzvam kato telefonche.
- Svidetel sum i na drevnite, i na modernite vremena.
- Kletkata, kakto pisax, predstavljava 37 susedni bita.
- Razbira se, takava kletka mozheshe da sudurzha 37-bitovo dvoichno chislo sus ili bez znak.
- Kompjyturut mozheshe da izvurshva operacii s takiva chisla.
- Suqo taka, edna takava kletka mozheshe da sudurzha mashinna komanda za izpulnenie.
- Kogato s takiva 37-bitovi chisla ili mashinni komandi rabotexu xora - programisti i kodirovchici,
edna 37-bitova kletka se predstavjashe chrez 12-cifrovo chislo v osmichna sistema sus znak otpred.
- Naprimer, +100001770200.
- Kato dvoichno chislo (s fiksirana tochka) tova e chisloto 8590454912 v desetichen zapis.
- Kato mashinna komanda, tazi 37-bitova kletka instryktira kompjyturut:
- Da prochete v symatorut sudurzhanieto na kletka na adres 0177 osmichno (desetichno 127).
- Da pribavi kum nego sudurzhanieto na kletka na adres 0200 osmichno (desetichno 128).
- Rezyltatut ot symatorut (symata na dvete chisla) da zapishe obratno v pametta na adres 0200 osmichno (desetichno 128).
- Obqiut format na mashinnata komanda pri Minsk-2 e sledniut:
- Starshite 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.
- Vsichkite bitove v kletkata vlehzoxu v ypotreba.
- Starshite 7 bita su kodut na operaciata.
- Otnosno indeksniut registur.
- Obiknoveno centralniut procesor na edin kompjytur ima na svoe razpolozhenie blizo do sebe si, "na edna ruka razstojanie", nehkolko registura, sudurzhaqi danni, nyzhni v tekyqiut moment ili puk v neposredstvenoto budeqe.
- Brojut na tezi registri ne mozhe da e mnogo golehm, ponezhe programiraqite na mashinen ezik ili na asembler trehbva da durzhut tezi registri v choveshkata si pamet.
- 16 e prilichno chislo za tozi broj.
- Ako te su 16, takuv registur se ykazva s chislo ot 0 do 15.
- Diapazonut ot 0 do 15 e miniatjyrno adresno prostranstvo za tezi registri, izvun adresnoto prostranstvo na operativnata pamet.
- Operativnata pamet e "na edin pogled razstojanie", po-daleche ot registrite.
- V kompjyturut Minsk-2 prakticheski ima samo edin takuv registur - symatorut. Toj vinugi se ykazva nejavno i ne se nyghae ot adres.
- Toj - symatorut - ne mozhe da slyzhi za indeksen registur.
- V mashinnata komanda na Minsk-2 za adres na kletka ot operativnata pamet (za adres na operand) se zadeljat 12 bita, a za nomer na indeksen registur se zadeljat 6 bita.
- Vuzmozhnite adresi na kletki ot pametta osmichno su ot 0000 do 7777, ili desetichno ot 0 do 4095.
- V 6-te bita, zadeleni za nomerut na indeksniut registur, mozhe da se zapishe osmichno chislo ot 00 do 77, ili desetichno ot 0 do 63.
- V Minsk-2 purvite 64 kletki ot operativnata pamet, kletkite s adresi ot 00 do 77 osmichno ili 0 do 63 desetichno, mogut da se izpolzvat kato indeksni registri.
- Adresiraneto na tezi kletki s 12-bitov adres na operand si ostava vuzmozhno.
- V Minsk-22 kato indeksni registri mogut da se izpolzvat samo purvite 16 kletki ot pametta.
- Za adresiraneto im su dostatuchni 4 bita: ot 00 do 17 osmichno ili ot 0 do 15 desetichno.
- V Minsk-22 za vseki ot dvata operanda se vzema edin bit i se slaga kato starshi bit na adresut na operandut.
- Taka v Minsk-22 adresite na operandite stavat 13-bitovi, koeto pozvoljava 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, razpolozheni na pozicia na adres na operand, se izpolzvat.
- Ostanulite bitove trehbva da su nyli ili se priemat za nyli.
- Sudurzhanieto na indeksniut registur se dobavja kum mashinnata komanda.
- Po tozi nachin adresite na dvata operanda mogut da budut modificirani.
- Tazi texnika e neobxodima pri programirane na cikli.
- Pomnjų, che v arxitektyrata IBM/System/360/370 (ЕС ЭВМ) da se ykazhe nomer 0 (nyla) za indeksen ili za bazisen registur oznachava da ne se izpolzva takuv registur.
- Ne pomnjų dali podobno pravilo imashe i pri Minsk-2.
- Zakljychenie: Kolko purvobitno e bilo mashinnoto programirane za Minsk-2.
- V deveti klas nikoj ne ni e ychil kum kakuv interfejs da se pridurzhame pri izvikvane na podprograma.
- Javno, pri Minsk-2 chovek sam e trehbvalo da si razraboti takuv interfejs.
- Za sravnenie, pri IBM/System/360/370 (ЕС ЭВМ) i pri vsichki sledvaqi kompjyturni arxitektyri, ako ne znaesh tozi interfejs, znachi ne vladeesh mashinnoto programirane.
- Izkljychitelno trydno e programata da se napravi relocatable.
- Sledvaqite kompjyturni arxitektyri predostavjat takiva vuzmozhnosti.
- Sega prakticheski vseki kompilator proizvegha pozicionno-nezavisim kod (PIC: position-independent code).
- Istinski stek (stack) nehmashe i v arxitektyrata IBM/System/360/370 (ЕС ЭВМ).
- Ne e opravdano v Minsk-2 da ochakvame ylesnenia za stack.
- Ima li smisul izobqo da se govori za sharable-programi, ponezhe nehma mnogo nishki (threads), nehma mnogo procesi, nehma mnogo potrebiteli.
- Izkljychitelno trydno e programata da se napravi reentrant.
- V chastnost, izkljychitelno trydno e da se programira rekyrsia.
- Chydjų se dali za mashinite Minsk e imalo kompilator na Algol.
- Zaqo v edinadeseti klas ychixme Algol?
- Eksploataciata na kompjytrite Minsk-32 y nas se e osnovavala na Kobol.
- I posledno: nehmam predstava kakva dulbochina na softwerut e bila dostignuta pri Minsk-2.
- (.. skrij gi svedeniata za kompjytrite Minsk-2 ..) (.. skrij go podrazdelut za kompjytrite Minsk-2 ..) (.. svij go ..) (.. razguni go ..)
- ◄► (.. skrij gi kompjytrite Minsk-2 ..) (.. svij gi ..) (.. razguni gi ..) (.. skrij go minuloto nezapomneno ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
-
►► References: prepratki
(.. pokazhi 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 jų purvata beseda ..) (.. svij jų ..) (.. posvij ili porazguni ..) (.. razguni jų ..) .. kum nachaloto ..
►► 3. Za kompjytrite polinomialno (.. pokazhi jų vtorata beseda ..) (.. razgunuto ..) .. kum nachaloto ..
- Po spomenite mi ot 11-ti klas, 1971..72.
- Iska mi se da si dokazhu, che sega ne sum po-tup, otkolkoto sum bil togava.
- Zaglavieto na tazi beseda go slozhix kato zaglavie na celiut tozi sbornik s besedi.
▼▼ 3. Za kompjytrite polinomialno (.. skrij jų vtorata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Postanovka na zadachata (.. pokazhi go predgovorut na besedata ..) (.. pokazhi go razgunuto ..)
-
▼▼
Postanovka na zadachata
(.. skrij go predgovorut na besedata ..)
(.. svij go ..)
(.. razguni go ..)
- ►► Srednoshkolski spomeni (.. pokazhi ..)
-
▼▼
Srednoshkolski spomeni
(.. skrij ..)
- Zavurshil sum gimnazia (11-ti klas) prez 1972 sus specialnost "izchislitel-kodirovchik".
- Suychenicite mi ot susednata "G" paralelka zavurshvaxu kato shofjori.
- V denjųt na navurshvane na pulnoletiv vseki ot tehx mozheshe da otide da si jų vzeme shofjorskata knizhka.
- V 11-ti klas po predmetut za kompjyturna podgotovka (ASM) izychavaxme ezikut za programirane Algol-60.
- Kompilator ot Algol-60 ne sum vighal.
- Ezikut se izpolzvashe za pyblikyvane na algoritmi,
- koeto znachi, che az sum go izpolzval po prednaznachenie.
- V Algol-60 imashe stranno predavane na parametrite kum podprogramite.
- A tova beshe trydno za realizacia.
- Kak da e. Makar ezikut Algol-60 da ne se izpolzvashe za realno programirane, sintaksisut my e povlial na mnogo drygi kompjyturni ezici (PL/I, Pascal, C, Java, JavaScript, ..).
- Napisax programa na Algol-60 za namirane na realnite koreni na polinom s realni koeficienti.
- Ychiteljut ni po matematika jų prati v nehkakvo spisanie i maj jų pyblikyvaxu.
- No togava tja ne beshe testvana.
- (.. skrij gi srednoshkolskite mi spomeni ..) (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Zavurshil sum gimnazia (11-ti klas) prez 1972 sus specialnost "izchislitel-kodirovchik".
- ►► Spomen ot okolo 1980 (.. pokazhi ..)
-
▼▼
Spomen ot okolo 1980
(.. skrij ..)
- Kogato prez 1979 postupix na rabota, po edno vreme polychix neogranichen dostup do kompjytur ES-1020 (ravnostoen s mladshi model na IBM/360).
- Reshix da ne stojų bez rabota, a da iztestvam algoritumut na programata za namiraneto na realnite koreni na polinom s realni koeficienti, kojato behx napisal kato ychenik v 11-ti klas na ezikut Algol-60.
- Algoritumut go pomnex.
- Napisax programata na ezikut PL/I.
- Nalozhi se da simyliram rekyrsiata.
- Da, programata raboteshe.
- No testvaneto ï beshe povurxnostno.
- Nehmax vreme za poveche.
- (.. skrij go spomenut mi ot okolo 1980 ..) (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Kato pensioner se vruqam kum spomenite si otpredi desetiletia (.. pokazhi ..)
-
▼▼
Kato pensioner se vruqam kum spomenite si otpredi desetiletia
(.. skrij ..)
- Dal mi sega Gospod mnogo vreme.
- Mogu da se vurnu kum zadachata za namiraneto na realnite koreni na polinom s realni koeficienti.
- Imam vreme za obstojno testvane.
- Imam vreme da razrabotjų i sredà za testvane.
- Texnologiite mnogo naprednuxu.
- Mogu da pishu na ezik kato JavaScript i "programata da se pyblikyva za vsenarodno testvane".
- Ne si postavjam za cel da gonjų naj-moqnoto i naj-naprednichavoto.
- Ima verojatno sredstva za chertane na grafiki, koeto bi moglo dobre da iljystrira besedata.
- No vse pak, softwerut, kojto polzvam, trehbva da mi e lesno dostupen, da go ima i na moeto laptopche, i na pochti vsehko drygo kompjyturche - laptopche, tabletche ili smartfonche.
- Kato pensioner nehmam programistki dostup do survur.
- Zatova - JavaScript.
- (.. skrij go pensionerskoto mi ezhednevie ..) (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ◄►
Namiraneto na realnite koreni na polinom s realni koeficienti -
- tova e zadachata.
- ►► Zadachata e matematicheska i algoritumut se osnovava na matematikata (.. pokazhi ..)
-
▼▼
Zadachata e matematicheska i algoritumut se osnovava na matematikata
(.. skrij ..)
- Nehma da iznasjam yrok po matematika.
- Niqo nehma i da dokazvam tyka.
- Softwer se testva, ne se dokazva.
- No nehkoi neqa - osnovaniata za algoritumut - trehbva da se napishut.
- Neka argymentut na polinomut, kakto obiknoveno, da oznachavame s bykvata x.
- Ako x0 e koren na polinomut (na mnogochlenut), 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 mnogochlenut), togava binomut (dvychlenut) (x - x0) e delitel na polinomut.
- Korenut na polinomut si ima svojata 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 ogranichenie na obqnostta mozhem da schitame, che starshiut koeficient na polinomut e polozhitelen.
- Ako e otricatelen, qe go ymnozhim polinomut po -1 i qe polychim polinom s polozhitelen starshi koeficient i sus suqite koreni.
- Polinomut e gladka neprekusnuta fynkcia.
- Qom starshiut koeficient na polinomut e polozhitelen, to toj kloni kum +∞, kogato argymentut kloni kum +∞.
- Ako pri nehkakva stojnost na argymentut x1 stojnostta na polinomut e otricatelna, to nehkude v intervalut ot x1 do +∞ grafikata my qe preseche abscisnata os, toest nehkude v intervalut ot x1 do +∞ suqestvyva pone edin koren na polinomut.
- Qom starshiut koeficient na polinomut e polozhitelen, kogato argymentut kloni kum −∞,
polinomite ot nechetna stepen klonjųt kum −∞, a
polinomite ot chetna stepen - kum +∞.
- Ako pri nehkakva stojnost na argymentut x1 stojnostta na polinom ot chetna stepen e otricatelna, to nehkude v intervalut ot −∞ do x1 suqestvyva pone edin koren.
- Ako pri nehkakva stojnost na argymentut x1 stojnostta na polinom ot nechetna stepen e polozhitelna, to nehkude v intervalut ot −∞ do x1 suqestvyva pone edin koren.
- Jasno e, che polinomut se razglegha 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 tochka.
- 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 matematicheskite osnovi na algoritumut ..) (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Samiut algoritum (.. pokazhi ..)
-
▼▼
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, mozhe da ima naj-mnogo edin koren.
- Dali ima ili nehma - tova se opredelja ot stojnostite na polinomut v kraiqata na intervalut.
- Ako bude opredeleno, che v intervalut ima koren, intervalut se deli na dva po-malki intervala, i se opredelja v koj ot tehx e korenut.
- Ako intervalut, za kojto znaem, che sudurzha koren, stane dostatuchno maluk, tova znachi, che sme go namerili korenut.
- Kolko maluk da stane intervalut?
Kakvato tochnost na rezyltatut ni e nyzhna. - (.. skrij go algoritumut ..) (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Analogichnata zadacha v poleto na kompleksnite chisla (.. pokazhi ..)
-
▼▼
Analogichnata zadacha v poleto na kompleksnite chisla
(.. skrij ..)
- Za obobqenieto v poleto na kompleksnite chisla mozhe da se dokazhe slednoto:
- Edin polinom ot n-ta stepen s koeficienti ot poleto na kompleksnite chisla ima tochno n korena v poleto na kompleksnite chisla, kato vseki koren se broi spored kratnostta si.
- Kakto i pri realnite chisla,
- ako kompleksnoto chislo x0 e koren na polinomut (na mnogochlenut), togava binomut (dvychlenut) (x - x0) e delitel na polinomut.
- ako kompleksnoto chislo x0 e dvykraten koren na polinomut, togava (x - x0)2 e delitel na polinomut.
- Ne sum se zanimaval sus zadachata za namiraneto na korenite na polinom v poleto na kompleksnite chisla.
- I tazi beseda nehma niqo obqo s kompleksnite chisla.
- Ot teoriata na kompleksnite chisla se polzva samo rezyltatut, che korenite na polinom ot n-ta stepen su tochno n na broj.
- Ako se ogranichim do poleto na realnite chisla, kakto pravjų 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 chisla ..) (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Za obobqenieto v poleto na kompleksnite chisla mozhe da se dokazhe slednoto:
- ◄► V besedata su vkljycheni i dve otklonenia ot temata.
- ◄► (.. skrij go predgovorut na vtorata beseda ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų vtorata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Polinomi s realni koeficienti (.. pokazhi go vuvedenieto za polinomite ..) (.. pokazhi go razgunuto ..)
-
▼▼
Polinomi s realni koeficienti
(.. skrij go vuvedenieto za polinomite ..)
(.. svij go ..)
(.. razguni go ..)
- ◄► V tozi razdel se demonstrira i testva
vuveghaneto 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 (.. pokazhi ..)
-
▼▼
Qo e to polinom
(.. skrij ..)
- Tozi podrazdel nehma da bude yrok po matematika, nito yrok po algebra.
- Celta mi e samo da se ytochnjųt ponjatiata i terminite.
- Ako ne pomnite ot srednoto ychiliqe kakvo e tova polinom, narichano oqe mnogochlen, otkazhete se.
- Ako ne ste ychili za kompleksni chisla, to za Vas vsichki chisla su realni i ponjatieto polinom s realni koeficienti oznachava prosto polinom.
- Polinomut e fynkcia s edin argyment.
- Argymentut se oznachava s latinska bykva, obiknoveno bykvata x.
- V matematicheskata literatyra e prieto argymentite da se oznachavat s nehkoja ot poslednite bykvi na latinskata azbyka, a purvite bykvi se izpolzvat za koeficientite, ako te suqo su promenlivi.
- V tazi beseda nehma da stava dyma za polinomi s promenlivi koeficienti.
- Edin polinom, narichan oqe mnogochlen, predstavljava syma (sbor) ot ednochleni.
- A puk edin ednochlen predstavljava
argymentut na nehkakva stepen, ymnozhen po koeficient.
- Koeficientut e chislo, v slychajut realno chislo.
- Stepenta e cehlo neotricatelno chislo.
- Ako tja e nyla, ednochlenut se naricha svoboden chlen.
- Ednochlenite (chlenovete na mnogochlenut) s nylevi koeficienti obiknoveno ne se pishut.
- No prisutstvat pri izbranoto vutreshno predstavjane v kompjyturut.
- Pri predstavjaneto na polinomut (mnogochlenut), chlenovete my (ednochlenite) obiknoveno se podreghat po namaljavane na stepenta si.
- Ednochlenite ot edna i suqa stepen se subirat e edni chlen.
- Svobodniut chlen - tozi s argyment na nyleva stepen - e posleden.
- Purviut chlen s nenylev koeficient - tozi s naj-visokata stepen na argymentut - e starshi chlen.
- Koeficientut my e starshi koeficient na polinomut (na mnogochlenut).
- Stepenta my stava stepen na polinomut.
- (.. skrij qo e to polinom ..) (.. skrij go vuvedenieto za polinomite ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
-
Bykva za argymentut: - ►► Kak da vuveghame polinom (.. pokazhi gi pravilata ..)
-
▼▼
Kak da vuveghame polinom
(.. skrij gi pravilata ..)
- Po-gore v tozi razdel, pri vuveghaneto na polinom s realni koeficienti, v sila su slednite pravila i svobodi:
- Shpacii (intervali, space characters) su dopystimi navsehkude, osven vutre v chislata i meghy dvete zvezdichki ** na znakut za stepenyvane.
- Polinomut (mnogochlenut) se vuvegha kato syma ot ednochleni.
- Mozhe i da e sustaven samo ot edin chlen.
- Ne se iziskva podredba na sustavjaqite ednochleni po stepen.
Programata qe gi podredi. - Razreshava se vuveghane na nehkolko ednochlena ot edna i suqa stepen.
Programata qe gi obedini, sled kato symira koeficientite im. - Ednochlenut zapochva s koeficientut si.
Koeficientut mozhe da se propysne, ako e raven na edinica. - Sled koeficientut na ednochlenut, se vuvegha bykvata za argymentut.
- Tja mozhe da se propysne, ako stepenta na ednochlenut e nyla (t.e. ako tova e svoboden chlen).
- Meghy koeficientut i argymentut, ako i dvete prisutstvat, mozhe da se slozhi zvezdichka * kato znak za ymnozhenie.
- No zvezdichkata mozhe da se propysne.
- Sled bykvata za argymentut kato cehlo chislo se pishe stepenta na ednochlenut.
- Stepenta mozhe da se propysne, ako e edinica.
- Meghy bykvata za argymentut i stepenta, ako i dvete prisutstvat,
mogut da se slozhut dve zvezdichki ** kato znak za stepenyvane.
No znakut za stepenyvane mozhe da se izpysne.
- Primeri za ednochleni 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 ednochleni 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 - Meghy ednochlenite, sustavjaqi vuveghaniut polinom, se slaga samo edin znak + (pljys) ili - (minys).
- Pred purviut ednochlen mozhe da se slozhi 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 - Zabelezhete, che za celite na osnovnata zadacha programata qe osigyri polozhitelen starshi koeficient na polinomut.
- Ako pri vuveghaneto toj e bil otricatelen, programata qe ymnozhi vsichki koeficienti po -1.
- Ako bude vuveden polinom ot vtora ili ot po-visoka stepen, qe se pojavi byton
.
Sledvaqiut razdel e za ymnozhenieto na polinomi.
Bytonut qe Vi prati tam. - Stranichen efekt. Zhultoto pole gore - tam, kudeto se vuvegha polinomut,
mozhe da se izpolzva kato prost kalkylator.
- Tam mogat da se subirat i izvaghat chisla.
- Programata vuzpriema vsehko vuvedeno chislo kato koeficient na ednochlen ot nyleva stepen i symira tezi koeficienti.
- (.. skrij gi pravilata ..) (.. skrij go vuvedenieto za polinomite ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
-
►►
.. Pokazhi kod na JavaScript ..
-
▼▼
Kod na JavaScript
(.. skrij go kodut ..)
- Klasut RealPolynom e razshirenie na Array.
Obekt ot klasut RealPolynom e predi vsichko Array, masiv ot chisla.- Chislata ot masivut su koeficientite na polinomut.
- Brojut im e s edinica po-golehm ot stepenta na polinomut.
- Elementut [0] e starshiut koeficient - koeficientut pred naj-visokata stepen.
- Posledniut element e koeficientut pred nylevata stepen (svobodniut chlen)
- Vsichki 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 obichaen vid.
Chlenovete s nylev koeficient se izpyskat.
Argymentut v nyleva stepen ne se pokazva.
Za da mozhe kodut na tozi metod da se pokazhe tyka, nalaga se html-tagovete da se dekompozirat. - Metodut getDegree() proverjava dali vsichki elementi ot masivut su chisla.
Ako ne, vruqa -1.
Ako starshiut koeficient this[0] e nyla, pak vruqa -1 kato rezyltat.
Inache dava stepenta na polinomut - brojut na chislata bez 1. - Metodut doitRegular() osigyrjava starshiut koeficient da e polozhitelno chislo.
Za tazi cel mozhe da bude namalen brojut na chislata.
Za tazi cel vsichki koeficienti mozhe da budut ymnozheni 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 nachaloto ..
- Klasut RealPolynom e razshirenie na Array.
- ◄► Tozi razdel ot besedata mozhe da se propysne.
- Toj e prosto posledovatelna stupka kum krajnata cel.
- Vsichko ot tozi razdel se povtarja v sledvaqite razdeli.
- Osven kalkylatorut za subirane i izvaghane - toj raboti samo tyka.
- ◄► (.. skrij go vuvedenieto za polinomite ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų vtorata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ◄► V tozi razdel se demonstrira i testva
vuveghaneto na polinom.
- ►► Polinomi-mnozhiteli (.. pokazhi go ymnozhenieto na polinomi ..) (.. pokazhi go razgunuto ..)
-
▼▼
Polinomi-mnozhiteli
(.. skrij go ymnozhenieto na polinomi ..)
(.. svij go ..)
(.. razguni go ..)
- ◄► Tozi razdel ot besedata mozhe da se propysne.
- Toj e prosto posledovatelna stupka kum krajnata cel.
- Vsichko ot tozi razdel se povtarja v sledvaqiut razdel.
- ►► Zaqo v temata se namesva ymnozhenie na polinomi? (.. pokazhi ..)
-
▼▼
Zaqo v temata se namesva ymnozhenie na polinomi?
(.. skrij ..)
- Tozi razdel e stupka kum krajnata cel - detajlno testvane na programata za namirane na realnite koreni na polinom s realni koeficienti.
- Podgotvjame polinom, kojto da dadem na tazi programa, che tja da my nameri korenite.
- Ili trehbva predvaritelno da znaem koi su tursenite koreni, ..
- ili za vseki nameren ot programata koren trehbva da mozhem 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 mozhe da se proveri dali namerenite koreni naistina su koreni na polinomut.
- A v nastojaqiut razdel se pokazva kak da podgotvim polinom za testvane, takuv che 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 ymnozhim trite polinoma (x-5)*(x+2)*x, proizvedenieto im x3-3x2-10x, koeto e polinom ot 3-ta stepen,qe ima tochno 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 chetiri korena: vednuzh 5 i tri puti 0.
- Polinomut ot 2-ra stepen x2+x+1 nehma realni koreni, ponezhe stojnostite my su strogo polozhitelni.
- Tova se vigha, ako se predstavi vuv vidut (x+0.5)2+0.75.
- Razbira se, ako svobodniut chlen e po-golehm ot 0.25, naprimer 2, to polinomut x2+x+2 pak nehma realni koreni.
- Ako za mnozhitel se vzeme polinom ot 2-ra ili 4-ta stepen bez realni koreni, to lipsata na realni koreni trehbva da bude otchetena v rezyltatut.
- Edin polinom primerno ot 6-ta stepen ima naj-mnogo 6 realni koreni.
Mozhe da nehma i nito edin. - Edin polinom primerno ot 7-ma stepen ima naj-mnogo 7 realni koreni.
Ima pone edin. Polinom ot nechetna stepen ima pone edin realen koren.
- Ta taka: v tozi razdel se demonstrira ymnozhenieto na polinomi.
- Tova qe se polzva, za da se polychi polinom, realnite koreni na kojto su izvestni.
- Fynkcionalnostta ot tozi razdel e povtorena v sledvaqiut razdel.
- Zatova tozi razdel mozhe da se propysne.
- Vse pak, polycheniut v tozi razdel polinom mozhe da bude prenesen v sledvaqiut razdel, za da se testva.
- (.. skrij jų tykashnata cel na ymnozhenieto na polinomi ..) (.. skrij go ymnozhenieto na polinomi ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ◄► Ako vuvedete polinom ot nyleva stepen,
- toest chislo - konstanta,
- programata qe go preobrazyva vuv binom (polinom ot purva stepen),
- korenut na kojto e vuvedenoto chislo.
- Naprimer, ako vuvedete 5, vse edno che ste vuveli x-5.
- Ako bykvata za argymentut e x, razbira se.
-
Bykva za argymentut: -
►►
.. Pokazhi 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 izveghat rezyltatut na ekranut, ne se pokazvat.
- (.. skrij go kodut na JavaScript ..) (.. skrij go ymnozhenieto na polinomi ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
-
- ◄► (.. skrij go ymnozhenieto na polinomi ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų vtorata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ◄► Tozi razdel ot besedata mozhe da se propysne.
- ►► Realnite koreni na polinom s realni koeficienti (.. pokazhi kak se namirat ..) (.. pokazhi 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 mozhe da se vuvegha po mnozhiteli (.. pokazhi ..)
-
▼▼
Za celite na testvaneto polinomut mozhe da se vuvegha po mnozhiteli
(.. skrij ..)
- Podgotvjame polinom, kojto da dadem na tazi programa, che tja da my nameri korenite.
- Ili trehbva predvaritelno da znaem koi su tursenite koreni, ..
- ili za vseki nameren ot programata koren trehbva da mozhem 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 mozhe 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 nastojaqiut razdel da vidim kak da podgotvim polinom za testvane, takuv che 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 ymnozhim trite polinoma (x-5)*(x+2)*x, proizvedenieto im x3-3x2-10x, koeto e polinom ot 3-ta stepen,qe ima tochno 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 chetiri korena: vednuzh 5 i tri puti 0.
- Polinomut ot 2-ra stepen x2+x+1 nehma realni koreni, ponezhe stojnostite my su strogo polozhitelni.
- Tova se vigha, ako se predstavi vuv vidut (x+0.5)2+0.75.
- Razbira se, ako svobodniut chlen e po-golehm ot 0.25, naprimer 2, to polinomut x2+x+2 pak nehma realni koreni.
- Ako za mnozhitel se vzeme polinom ot 2-ra ili 4-ta stepen bez realni koreni, to lipsata na realni koreni trehbva da bude otchetena v rezyltatut.
- Edin polinom primerno ot 6-ta stepen ima naj-mnogo 6 realni koreni.
Mozhe da nehma i nito edin. - Edin polinom primerno ot 7-ma stepen ima naj-mnogo 7 realni koreni.
Ima pone edin. Polinom ot nechetna stepen ima pone edin realen koren.
- (.. skrij go vuveghaneto na polinomut po mnozhiteli ..) (.. skrij gi korenite na polinom ..) (.. svij gi ..) (.. razguni gi ..) .. kum nachaloto ..
- ◄► Razbira se, mozhete da vuvedete celiut polinom kato edin mnozhitel.
- ◄► Ako vuvedete polinom ot nyleva stepen,
- toest chislo - konstanta,
- programata qe go preobrazyva vuv binom (polinom ot purva stepen),
- korenut na kojto e vuvedenoto chislo.
- Naprimer, ako vuvedete 5, vse edno che 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: -
►►
.. Pokazhi go kodut na programata ..
-
▼▼
Kodut na programata
(.. skrij go kodut ..)
- Glavnata programa e getRoots().
- Tja namira realnite koreni na polinomut i gi vruqa v Array (masiv), podredeni po golemina.
- Ako polinomut nehma realni koreni, rezyltatut e prazen masiv.
- Algoritumut e rekyrsiven. JavaScript poddurzha rekyrsia, kakto i povecheto suvremenni kompjyturni ezici.
- Ako stava dyma za polinom ot purva stepen, programata vednaga presmehta korenut i zavurshva rabotata si.
- Inache s pomoqta na metodut getDerivative() se postrojava 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 namerjųt realnite koreni na proizvodnata.
- Produlzhavame algoritumut pri yslovie, che realnite koreni na proizvodnata su namereni.
- Ako proizvodnata nehma 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 meghy dva posledovatelni realni koreni na proizvodnata.
- I posledno, metodut #getSingleRoot() se izvikva za intervalut ot posledniut realen koren na proizvodnata do +∞.
- Metodut getDerivative() postrojava proizvodnata kato obekt ot klasut RealPolynomEquation, taka che kum tozi obekt da mozhe da se prilozhi getRoots().
- Na metodut #getSingleRoot() trehbva da my bude zadaden interval, za kojto da e jasno,
che v nego ima naj-mnogo edin realen koren na polinomut.
- Ako v intervalut ima realen koren, metodut #getSingleRoot() go namira i go vruqa kato chislo.
- Ako v intervalut nehma realen koren, rezyltatut e NaN (Not a Number).
- Metodut #getSingleRoot() razglegha chetiri slychaja,
koito tyka su izbroeni v red obraten na tozi v kodut:
- Kraen interval meghy dve chisla.
- Interval ot -∞ do chislo.
- Interval ot chislo 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
} - Nadehvam se na vsichki ystrojstva rezyltatite da su pone sxodni, ako ne identichni.
- Presmehtaniata se izvurshvat ne na web-server, a lokalno na Vasheto ystrojstvo (smartfon, tablet, laptop, ..).
- Presmehtaniata gi izvurshva interpretatorut ot JavaScript, kojto e vgraden vuv Vashiut browser.
- Ezikut JavaScript e standartiziran.
- Interpretatorut ot JavaScript polzva standartna aritmetika s plavaqa tochka.
- Da, algoritumut polzva aritmetika s plavaqa tochka.
- Tova nalaga da se obruqa vnimanie na zakrugljaniata i priblizheniata.
- (.. skrij go kodut na programata ..) (.. skrij gi korenite na polinom ..) (.. svij gi ..) (.. razguni gi ..) .. kum nachaloto ..
- Glavnata programa e getRoots().
- ►► Tochnost na presmehtaniata (.. pokazhi ..)
-
▼▼
Tochnost na presmehtaniata
(.. skrij ..)
- Ne sum se zadulbochaval v tochnostta na presmehtaniata.
- Razchitam na standartna aritmetika s plavaqa tochka, kakvato polzva standarten interpretator ot JavaScript.
- Ne polzvam specialni softwerni biblioteki za matematicheski izchislenia.
- Programata trehbva da mozhe da raboti na vsehko ystrojstvo.
- Vse pak, vuveden e parametur Epsylon sus stojnosti 0.001, 0.0001, 0.00001 ili 0.000001 po izbor.
- Sigyrno mogut da se namerjųt primeri, pri koito tazi programa greshi.
- Moljų da budu yvedomjavan, ako namerite takiva primeri.
- Az qe precenjų dali si stryva da se popravja programata.
- (.. skrij jų tochnostta na presmehtaniata ..) (.. skrij gi korenite na polinom ..) (.. svij gi ..) (.. razguni gi ..) .. kum nachaloto ..
- Ne sum se zadulbochaval v tochnostta na presmehtaniata.
- ◄► (.. skrij gi korenite na polinom ..) (.. svij gi ..) (.. razguni gi ..) (.. skrij jų vtorata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ◄► Tova e osnovniut razdel na besedata.
- ►► Presmehtane na stojnostta na polinomi pri zadadena stojnost na argymentut (.. pokazhi ..) (.. razgunuto ..)
-
▼▼
Presmehtane na stojnostta na polinomi pri zadadena stojnost na argymentut
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
- ◄► V tozi razdel imenno tova se pravi:
- Kompjyturcheto smehta stojnostta na zadaden polinom za zadadena stojnost na argymentut.
- I koeficientite na polinomut, i stojnostta na argymentut, i polychenata stojnost na polinomut su realni chisla.
- Neposredstvenata cel e da mozhe da se proveri dali nameren v predishniut razdel realen koren na polinomut naistina e koren.
- Neposredstvenata cel e da mozhe da se proveri dali programata ot predishniut razdel smehta vehrno.
- Ako dadeno chislo naistina e koren na polinomut, to kato se zamesti argymentut s tova chislo, stojnostta na polinomut trehbva da e nyla.
- Tova znachi da e koren na polinomut.
- Po-natatuk, tozi razdel dava povod da se pokazhe kak kompjytrite presmehtat stojnostta na polinom.
- Tova e vtorata cel na besedata, makar da e otklonenie ot osnovnata cel.
- ◄► Purvo zadajte polinomut.
- Tyka polinomut se vuvegha navednuzh, a ne po mnozhiteli, kakto v predishniut razdel.
- No mozhete polinomut ot predishniut razdel zaedno s namerenite koreni da budut preneseni v tozi razdel.
- Tyka nehma smisul da vuveghate chisla-konstanti.
Te nehma da budut preobrazyvani v binomi.
- ◄► Posle zadajte stojnost na argymentut.
- Mozhete da izberete stojnostta na argymentut izmeghy chislata, koito v predishniut razdel su bili namereni kato koreni na polinomut, ako su bili preneseni ottam tyka.
- Mozhete i da vuvedete nehkakvo chislo za stojnost na argymentut, sled koeto da natisnete bytonut (ne tozi byton tyka, a onja po-doly pri vuvedenoto chislo).
-
Bykva za argymentut: Vuvedi stojnost na argymentut: Izberi stojnost na argymentut: - ►► Kak da vuveghame polinom (.. pokazhi gi pravilata ..)
-
▼▼
Kak da vuveghame polinom
(.. skrij gi pravilata ..)
- Po-gore v tozi razdel, pri vuveghaneto na polinom s realni koeficienti, v sila su slednite pravila i svobodi:
- Shpacii (intervali, space characters) su dopystimi navsehkude, osven vutre v chislata i meghy dvete zvezdichki ** na znakut za stepenyvane.
- Polinomut (mnogochlenut) se vuvegha kato syma ot ednochleni.
- Mozhe i da e sustaven samo ot edin chlen.
- Ne se iziskva podredba na sustavjaqite ednochleni po stepen.
Programata qe gi podredi. - Razreshava se vuveghane na nehkolko ednochlena ot edna i suqa stepen.
Programata qe gi obedini, sled kato symira koeficientite im. - Ednochlenut zapochva s koeficientut si.
Koeficientut mozhe da se propysne, ako e raven na edinica. - Sled koeficientut na ednochlenut, se vuvegha bykvata za argymentut.
- Tja mozhe da se propysne, ako stepenta na ednochlenut e nyla (t.e. ako tova e svoboden chlen).
- Meghy koeficientut i argymentut, ako i dvete prisutstvat, mozhe da se slozhi zvezdichka * kato znak za ymnozhenie.
- No zvezdichkata mozhe da se propysne.
- Sled bykvata za argymentut kato cehlo chislo se pishe stepenta na ednochlenut.
- Stepenta mozhe da se propysne, ako e edinica.
- Meghy bykvata za argymentut i stepenta, ako i dvete prisutstvat,
mogut da se slozhut dve zvezdichki ** kato znak za stepenyvane.
No znakut za stepenyvane mozhe da se izpysne.
- Primeri za ednochleni 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 ednochleni 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 - Meghy ednochlenite, sustavjaqi vuveghaniut polinom, se slaga samo edin znak + (pljys) ili - (minys).
- Pred purviut ednochlen mozhe da se slozhi 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 nehma smisul da se vuvegha polinom ot nyleva stepen, toest konstanta.
- (.. skrij gi pravilata ..) (.. skrij kak se smehta polinom ..) (.. svij ..) (.. razguni ..) .. kum nachaloto ..
-
►►
.. Pokazhi 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 razshirenie na Array.
Obekt ot klasut RealPolynom e predi vsichko Array, masiv ot chisla.- Chislata ot masivut su koeficientite na polinomut.
- Brojut im e s edinica po-golehm ot stepenta na polinomut.
- Elementut [0] e starshiut koeficient - koeficientut pred naj-visokata stepen.
- Posledniut element e koeficientut pred nylevata stepen (svobodniut chlen)
- Vsichki nylevi koeficienti prisutstvat v masivut na mestata si, makar obiknoveno da ne se pokazvat.
- Tazi programka e na kompjyturniut ezik JavaScript.
- Tja bi izgleghala po suqiut nachin na Java, C, C++, C#, i po podoben nachin na Algol i PL/I.
- (.. skrij go komentarut kum kodut na JavaScript ..) (.. skrij kak se smehta polinom ..) (.. svij ..) (.. razguni ..) .. kum nachaloto ..
-
- ►► Belezhki po tykashniut algoritum (.. pokazhi ..)
-
▼▼
Belezhki po tykashniut algoritum
(.. skrij ..)
- Stava dyma za algoritumut za presmehtane na stojnostta na polinom za zadadena stojnost na argymentut.
- Suvet kum kandidati za pozicia na kompjyturen programist.
- Na intervjyto za rabota mozhe da poiskat ot Vas da napishete malka programka podobna na gore-pokazanata.
- Ako stava dyma za suqata zadacha i ako Vie kodirate nehkakuv algoritum, pri kojto se presmehtat stepenite na argymentut, tova mozhe da osnovanie da Vi otxvurljųt.
- Sledva slovesno opisanie na algoritumut za tezi, koito ne ymejųt da razchitat kompjyturen kod.
- Koeficientite na polinomut se nareghat v masiv po starshinstvo.
Pruv e starshiut koeficient, svobodniut chlen e posleden. - Dori nehkoj ot koeficientite da e nyla - krugla nyla, toj zaema mehstoto si v masivut i algoritumut ne mozhe da go izpysne.
V chastnost, nylev svoboden chlen suqo zaema mehstoto si (poslednoto mehsto) v masivut. - Algoritumut zapochva s rezyltat 0 (nyla).
- Algoritumut preminava posledovatelno prez vsichki koeficienti na polinomut, zapochvajki ot starshiut i zavurshvaqi sus svobodniut chlen.
- Poredniut koeficient se dobavja kum rezyltatut.
- Ako ima sledvaq koeficient, rezyltatut se ymnozhava po zadadenata stojnost na argymentut, predi da se premine kum sledvaqiut koeficient.
- Koeficientite na polinomut se nareghat v masiv po starshinstvo.
- 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 .
- Chislata su v desetichna pozicionna brojna sistema.
Kompjyturut (v slychajut interpretatorut ot JavaScript) taka gi pokazva. - Poslednoto chislo 4294967295
- v 16-ichen zapis e FFFFFFFF,
- v dvoichen zapis e 11111111111111111111111111111111 (32 cifri 1), a
- v 8-ichen zapis e 37777777777.
- Tova e preljydia kum sledvaqiut razdel, kojto e otklonenie za pozicionnite brojni sistemi.
- (.. skrij gi belezhkite po algoritumut ..) (.. skrij kak se smehta polinom ..) (.. svij ..) (.. razguni ..) .. kum nachaloto ..
- ◄► (.. skrij kak se smehta polinom ..) (.. svij ..) (.. razguni ..) (.. skrij jų vtorata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ◄► V tozi razdel imenno tova se pravi:
- ►► Otklonenie_1: pozicionni brojni sistemi (.. pokazhi go otklonenieto ..) (.. razgunuto ..)
-
▼▼
Otklonenie_1: pozicionni brojni sistemi
(.. skrij go otklonenieto ..)
(.. svij go ..)
(.. razguni go ..)
- ►► V ezhednevieto se polzva desetichna pozicionna brojna sistema (.. pokazhi ..)
-
▼▼
V ezhednevieto se polzva desetichna pozicionna brojna sistema
(.. skrij ..)
- Desetichnata pozicionna brojna sistema e
v Evropa otskoro: ima-nehma petstotin godini.
- Segashnoto mlado pokolenie trydno mozhe da si predstavi svetut bez kompjytri i kompjyturcheta. Starite obache pomnim onova vreme.
- No vsichki veche trydno mozhem da si predstavim kakuv e bil svetut bez desetichnata pozicionna brojna sistema.
- Tolkova sme sviknuli s nejų.
- V Zapadna Evropa su se polzvali rimskite cifri.
- Nehkoga gi ychexme v osnovnoto ychiliqe. Verojatno vse oqe se ychut.
- Prisutsvaxu obiknoveno na tabelite na klasnite stai: V a klas. Verojatno vse oqe e taka.
- Prisutsvaxu i v nomeraciata na partijni kongresi i na petiletkite.
- Sega, slava Bogy, ne pishut "XLIX narodno subranie" - samo vuv wikipedia-ta se mudri.
- Lichno az izbehgvam ypotrebata na rimskite cifri i obiknoveno pishu "49-toto narodno subranie".
- Y nas su se polzvali
miletskite cifri.
- Do nachaloto na 19-ti vek vseki gramoten nashenec-xristianin gi e znael.
- Sega gi znajųt samo eksperti, trenirani da razchitat stari tekstove.
- V suvremenna Gurcia miletskite cifri gi znajųt.
- Tam ne ypotrebjavat rimskite cifri.
- V slychaite, kogato nie ypotrebjavame rimskite cifri, v Gurcia polzvat miletskite.
- Spored mene, miletskite cifri su po-dobri ot rimskite.
- No i ednite, i drygite niqo ne stryvat pred desetichnata pozicionna brojna sistema.
- Desetichnata pozicionna brojna sistema opredeleno e sudejstvala za razvitieto na texnologiite.
- S takova neqo ne mogut da se poxvaljųt nito rimskite cifri, nito miletskite.
- (.. skrij go ezhednevieto ..) (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Desetichnata pozicionna brojna sistema e
v Evropa otskoro: ima-nehma petstotin godini.
- ►► Polinomite i pozicionnite brojni sistemi (.. pokazhi ..)
-
▼▼
Polinomite i pozicionnite brojni sistemi
(.. skrij ..)
- Zapisut na chislata v pozicionna brojna sistema ima neqo obqo s polinomite.
- Tova e i prichinata za pojavata na tozi razdel, v kojto se pravi otklonenie ot osnovnata tema na besedata.
- Pri pozicionna brojna sistema se fiksira cehlo chislo po-golehmo ot edinica za
osnova na brojnata sistema ili nakratko radix.
- V ezhednevniut zhivot na xorata radix-ut e 10 (deset).
- Vutre v svetut na kompjytrite - togava, kogato na kompjytrite ne im se nalaga da obqyvat s xora, radix-ut e 2 (dve).
- Zapisut na chislo v pozicionna brojna sistema pri fiksiran radix
predstavljava poredica (masiv, array) ot cifri.
- Cifrite su koeficientite na polinomut, a radix-ut e argymentut.
- Za vsehko cehlo neotricatelno chislo, po-malko ot radix-ut,
suqestvyva cifra, stojnostta na kojato e tova chislo.
- 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 (shestnadeset), i cifrite su shestnadeset.
Obiknoveno se polzvat tezi: 0123456789ABCDEF. - Ako radix-ut e 36 (trideset i shest), i cifrite su tolkova.
Obiknoveno se polzvat tezi: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.
- Nylata vinugi e cifra, pri vseki radix.
- Pri vsehka pozicionna brojna sistema ima nygha ot cifrata
0 (nyla).
Kakto i ot edinica (1). - Izobretjavaneto na pozicionniut zapis na chislata, verojatno delo na indijski matematici, e tehsno svurzano s izobretjavaneto na cifrata nyla i na chisloto nyla.
- Tochno tova e dalo tlasuk na razvitieto i na matematikata, i na texnologiite.
- Etimologiata na dymi kato cifra ili shifur ni vodi kum arabskoto nazvanie na nylata, koeto znachelo "niqo".
- Pri vsehka pozicionna brojna sistema ima nygha ot cifrata
0 (nyla).
- Celta na nylata e da durzhi i da belezhi poziciata si
- i kato cifra v zapis na chislo v pozicionna brojna sistema,
- i kato koeficient na polinomut.
- V pozicionna notacia, nylata mozhe da se izpysne, samo ako predi nejų nehma po-starshi nenylev koeficient ili po-starsha nenyleva cifra.
- Nalichieto na cifra nylata e osnovnata razlika meghy suvremennoto oznachenie na chislata ot edna strana, i rimskata ili miletskata sistema ot dryga strana.
- Nepozicionni oznachenia:
- Xiljada oki ljyta rakia. Sjcak rakj bin okkasj. One Thousand oz of brendy.
- Polinomut x3.
- Pozicionni oznachenia:
- 1000 oki ljyta rakia. Sjcak rakj 1000 okkasj. 1000 oz of brendy.
- V predishnite razdeli vutreshno na JavaScript polinomut x3 se predstavja kato masiv ot chisla taka: [1 0 0 0].
- (.. skrij go polinomialnoto pri pozicionnite brojni sistemi ..) (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Zapisut na chislata v pozicionna brojna sistema ima neqo obqo s polinomite.
- ►► Prez praktikata mi na kompjyturen programist sum si imal rabota sus .. (.. pokazhi ..)
-
▼▼
Prez praktikata mi na kompjyturen programist sum si imal rabota ..
(.. skrij ..)
- predimno s radix 10 - s desetichnata pozicionna brojna sistema.
- Chovek sum, a kompjytrite otdavna su se naychili da obqyvat s xora v radix 10.
- Naprimer, dotyk pri tazi beseda - "za kompjytrite polinomialno", ne mi se e nalagalo misleno da prevkljychvam kum radix 2.
- No puk v predishnata beseda - onaja za dypkite na perfolentata, tova ponehkoga se nalagashe.
- Bez vruzka s pisaneto na razni besedi, prez praktikata mi na kompjyturen programist vse pak mi se e nalagalo da minavam i na drygi v radix-i.
- Ne mozhe chovek da razbira surdceto i chyvstvata na kompjyturut, ako ne vladee vutreshniut my
radix - radix 2.
- V kruvta na kompjytrite e radix 2.
- Edno vreme, kogato behx ychenik i stydent, imashe nadegha, che v budeqe qe se pojavjųt kompjytri s radix 3 v kruvta, i se yprazhnjavaxme ne samo na radix 2, no i na radix 3.
- Ne se pojavixu takiva kompjytri.
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 chovek ili se ochakva chovek da go vuzprieme, vinugi se zamestva s «rodninski» radix - radix 8 ili radix 16.- Pri Minsk-2 i PDP-11 - radix 8.
- Pri drygite kompjyturni arxitektyri - radix 16.
- Ne biva da se zabravja, che radix 8 i radix 16 ne su niqo drygo osven sbit zapis na radix 2.
- Edno vreme pri kompjytrite PDP-11 za kodirane na 6-znakovi identifikatori v 32 bita
se polzvashe radix 40 pod oznachenieto Radix-50.
- Chisloto 40 (zapisano v radix 50) e 50 v radix 8 (5*8 e 40), a «kruvoobraqenieto» na PDP-11 se pokazvashe v radix 8.
- Komynikaciite v sledvaqite godini izpolzvat razni drygi radix-i.
- Naprimer, radix 64 se polzvashe ot programite uuencode i uudecode v Unix, a vposledstie i vuv e-mail-ite pri prikrepenite kum tehx 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, che 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 nachaloto ..
- predimno s radix 10 - s desetichnata pozicionna brojna sistema.
- ►► Preobrazyvane ot dryga pozicionna brojna sistema kum «nashata» (.. pokazhi ..)
-
▼▼
Preobrazyvane ot dryga pozicionna brojna sistema kum «nashata»
(.. skrij ..)
- Koja e «nashata» pozicionna brojna sistema?
Koj e «nashiut» radix?- «Nashiut» radix e tozi, v kojto se izvurshvat aritmetichnite dejstvia: subirane, ymnozhenie, delenie na celi chisla.
- «Nashiut» radix e tozi, v kojto se izvurshvat presmehtaniata.
- Za nas xorata «nashiut» e radix 10.
- Za interpretatorut na JavaScript «svoj» suqo taka e radix 10.
- Tozi interpretator e programa, kojato raboti na kompjyturut, a ne e samiut kompjytur.
- Programa na ezikut JavaScript se izpulnjava ot intepretatorut, a ne ot samiut kompjytur.
- Kompjytrite na suvsem nisko nivo imat radix 2 za «svoj».
- Programi, koito da se izpulnjavat neposredstveno na samiut kompjytur, se pishut na ezici kato C, C++ ili asembler.
- Tova, razbira se, e yslovno napisano.
- Vazhnoto e, che v tozi razdel qe se imat pred vid smetki samo v radix 10.
- Aritmetika v radix razlichen ot 10 nehma da se obsugha.
- V tozi podrazdel zadachata qe e tazi: chislo, predstaveno v dryg radix,
da se konvertira v «nashiut» radix 10.
- Ako chisloto e predstaveno v dryg radix, za «nas» to ne e chislo, zaqoto ne mozhem da smehtame s nego.
- Za «nas» to e prosto niz ot nehkakvi cifri.
- Zadachata qe e da go prevurnem v chislo v «nashiut» radix 10.
- Algoritumut qe e suqiut, kojto be prilozhen v razdelut za presmehtane na stojnostta na polinom.
- Primer. Chislo nehkakvo e predstaveno v radix 16 vuv vidut FFFF, kato cifrata F e 15.
- Zapochvame s nylev rezyltat. Rezyltatut e 0.
- Kum rezyltatut dobavjame stojnostta na starshata cifra. 0+15. Rezyltatut e 15.
- Ymnozhavame rezyltatut po radixut. 15*16. Rezyltatut e 240.
- Kum rezyltatut dobavjame stojnostta na sledvaqata cifra. 240+15. Rezyltatut e 255.
- Ymnozhavame rezyltatut po radixut. 255*16. Rezyltatut e 4080.
- Kum rezyltatut dobavjame stojnostta na sledvaqata cifra. 4080+15. Rezyltatut e 4095.
- Ymnozhavame rezyltatut po radixut. 4095*16. Rezyltatut e 65520.
- Kum rezyltatut dobavjame stojnostta na poslednata cifra. 65520+15. Rezyltatut e 65536.
- Tyka qe mozhete da izberete radix v diapazonut ot 2 do 36.
- Sled tova qe mozhete da vuvedete chislo v izbraniut radix.
- I kato natisnete bytonut Go!, programata na JavaScript qe predstavi Vasheto chislo v «nashiut» radix 10.
-
Radix: - Polychenoto kato rezyltat chislo, zapisano v «nashiut» radix 10 (v desetichnata pozicionna brojna sistema, izpolzvana v ezhednevieto), qe bude preneseno avtomatichno v sledvaqiut podrazdel, kudeto to qe mozhe da bude preobrazyvano dryg radix, treti radix.
- Vprochem, tova e nachinut za konvertirane ot edin radix v dryg, kato i dvata radix-a su razlichni ot «nashiut»: purvo v «nashiut», posle v drygiut.
-
.. Pokazhi go kodut na programkata za konvertirane kum «nashiut» radix ..
-
Kodut na programkata za konvertirane kum «nashiut» 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 pishut 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 nachaloto ..
- Koja e «nashata» pozicionna brojna sistema?
- ►► Preobrazyvane ot «nashata» pozicionna brojna sistema kum dryga (.. pokazhi ..)
-
▼▼
Preobrazyvane ot «nashata» pozicionna brojna sistema kum dryga
(.. skrij ..)
- Koja e «nashata» pozicionna brojna sistema?
Koj e «nashiut» radix?- «Nashiut» radix e tozi, v kojto se izvurshvat aritmetichnite dejstvia: subirane, ymnozhenie, delenie na celi chisla.
- «Nashiut» radix e tozi, v kojto se izvurshvat presmehtaniata.
- Za nas xorata «nashiut» e radix 10.
- Za interpretatorut na JavaScript «svoj» suqo taka e radix 10.
- Tozi interpretator e programa, kojato raboti na kompjyturut, a ne e samiut kompjytur.
- Programa na ezikut JavaScript se izpulnjava ot intepretatorut, a ne ot samiut kompjytur.
- Kompjytrite na suvsem nisko nivo imat radix 2 za «svoj».
- Programi, koito da se izpulnjavat neposredstveno na samiut kompjytur, se pishut na ezici kato C, C++ ili asembler.
- Tova, razbira se, e yslovno napisano.
- V tozi podrazdel zadachata qe e tazi: chislo,
predstaveno v dobre poznatiut ni «nash» radix 10,
da se preobrazyva v dryg zadaden radix.
- Rezyltatut tyka qe bude niz ot cifri v drygiut radix.
- Algoritumut se osnovava na aritmetichnata operacia delenie na celi chisla.
- Tazi operacia dava dve chisla kato rezyltat: chastnoto i ostatukut.
- Kompjyturut na nisko nivo izvurshva celochislenoto delenie tochno taka: ednovremenno namira chastnoto i ostatukut.
- Ako se programira na ezik ot visoko nivo, zadacha na ezikoviut procesor (kompilator ili interpretator) e da ne kara operaciata na nisko nivo da se izvurshva dva puti.
- Opisanie na algoritumut za reshavane na zadachata.
- Cifrite se opredeljųt posledovatelno edna po edna, ot mladshata kum starshata, ot poslednata kum purvata.
- Na vsehka stupka ot algoritumut se izvurshva celochisleno delenie, pri koeto delitel e radix-ut.
- Ostatukut e porednata cifra.
- Sledvaqata stupka produlzhava s chastnoto.
- Iljystracia na algoritumut po stupki.
- Za celite na iljystraciata da se postavim na mehstoto na kompjyturut, za kojto «svoj» e radix 2 (ili koj da e dryg radix, razlichen ot 10.
- Zadachata qe bude da namerim desetichnite cifri, cifrite v radix 10.
- Da vzemem proizvolno chislo. Suvsem proizvolno. Ot nemaj kude zapisut my tyka na ekranut qe bude desetichen.
- 265302.
- 1-va stupka. Delim 265302 na 10. Ostatukut e 2. Tova e poslednata cifra. Produlzhavame s chastnoto 26530.
- 2-ra stupka. Delim 26530 na 10. Ostatukut e 0. Tova e porednata cifra. Slagame jų otpred. Rezyltat dotyk: 02. Produlzhavame s chastnoto 2653.
- 3-ta stupka. Delim 2653 na 10. Ostatukut e 3. Tova e porednata cifra. Slagame jų otpred. Rezyltat dotyk: 302. Produlzhavame s chastnoto 265.
- 4-ta stupka. Delim 265 na 10. Ostatukut e 5. Tova e porednata cifra. Slagame jų otpred. Rezyltat dotyk: 5302. Produlzhavame s chastnoto 26.
- 5-ta stupka. Delim 26 na 10. Ostatukut e 6. Tova e porednata cifra. Slagame jų otpred. Rezyltat dotyk: 65302. Produlzhavame s chastnoto 2.
- 6-ta stupka. Delim 2 na 10. Ostatukut e 2. Tova e porednata cifra. Slagame jų otpred. Rezyltat dotyk: 265302. Chastnoto e 0. Sledovatelno, tova e poslednata stupka.
- Purvo vuvedete cehlo polozhitelno chislo v privichniut za chovek desetichen zapis (v «nashiut» radix 10).
- Posle izberete dryg radix v diapazonut ot 2 do 36.
- Programata qe Vi pokazhe predstavjaneto na Vasheto chislo v izbraniut radix.
-
Radix: -
.. Pokazhi go kodut na programkata za konvertirane kum dryg radix ..
-
Kodut na programkata za konvertirane kum radix, razlichen ot «nashiut»
(.. 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 pishut 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 nachaloto ..
- Koja e «nashata» pozicionna brojna sistema?
- ►► Preobrazyvane meghy «rodninski» pozicionni brojni sistemi (.. pokazhi ..)
-
▼▼
Preobrazyvane meghy «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»,
ponezhe 8 i 16 su stepeni (treta i chetvurta) 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»,
ponezhe 8 i 16 su stepeni (treta i chetvurta) na 2.
- Konvertiraneto meghy «rodninski» radix-i ..
- ne se izvurshva po algoritmite ot predishnite dva podrazdela,
- dori kogato nehkoj ot «rodninski» radix-i e «nashiut».
- Zaqoto ima po-lesen nachin.
- Zaqoto dva «rodninski» radix-a ne su mnogo razlichni edin ot dryg.
- Konvertiraneto meghy «rodninski» radix-i ..
- se izvurshva chrez grypirane, dekompozirane i pregrypirane na cifrite.
- Da razgledame radix-ut 100.
- Toj e «rodnina» na «nashiut» radix 10.
- Radix 100 ima nygha 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}.
- Vsehka ot tezi 100 «cifri» si jų mislete kato cehlosten 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 dehsno na lehvo (v obqiut slychaj ot tochkata v dvete posoki).
- Vsehka grypichka 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 nygha 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}.
- Vsehka ot tezi 1000 «cifri» si jų mislete kato cehlosten jeroglif sus suotvetnata stojnost.
- Neka zadachata da e slednata: Chislo, koeto v radix 100 se predstavja 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.
- Vsehka grypichka 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 kompjyturchetata, che texen e budeqiut intelekt.
- Kato ostavim nastrani «nashiut» radix 10,
kompjyturnite programisti i kodirovchici naj-chesto si imat rabota s tri «rodninski» radix-a:
2, 8 i 16.
- Pri radix 2, dvoichinata pozicionna sistema, kojato kompjytrite imat za «svoja»,
su nyzhni dve (2) cifri, 0 i 1.
- Edna dvoichna cifra se naricha bit.
- Tova e naj-malkoto kolichestvo informacia.
- Mehrkata za kolichestvo informacia e bit.
- Pri radix 8 su nyzhni 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 oznachava 11111111 - edin bajt svetnuti bitove.
- Eto gi tezi 8 (osem) cifri, zaedno s de-kompoziciata im na bitove:
- Pri radix 16 su nyzhni 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 predstavja taka: FF.
- A puk bajt, v kojto samo starshiut bit e svetnut, v radix 16 se predstavja taka: 80.
- Eto gi tezi 16 cifri, zaedno s de-kompoziciata im na bitove:
- Pri radix 2, dvoichinata pozicionna sistema, kojato kompjytrite imat za «svoja»,
su nyzhni dve (2) cifri, 0 i 1.
- Neka zadachata da ni e slednata.
Chislo, imaqo vidut 3750 v radix 8, da se predstavi v «rodninskiut» radix 16.- Osmichnite cifri gi de-kompozirame na bitove - vsehka na tri bita:
011 111 101 000
. - Grypirame bitovete po chetiri:
0111 1110 1000
. - Vsehka grypichka ot chetiri bita predstavjame s edna cifra v radix 16:
7E8
.
- Osmichnite cifri gi de-kompozirame na bitove - vsehka na tri bita:
- Da otbelezhu, che za kompjyturcheto igrata s bitove e po-lesna ot aritmetichnite operacii subirane, ymnozhenie i delenie.
- To i za chovek e taka, ako e sviknul da zhonglira s bitcheta.
- (.. skrij go preobrazyvaneto meghy rodninski pozicionni brojni sistemi ..) (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- «Rodninski» su radix-i,
koito su stepeni na edin i suq radix - purva stepen, vtora stepen, treta stepen, ..
- ►► Neqo kato zakljychenie na purvoto otklonenie (.. pokazhi ..)
-
▼▼
Neqo kato zakljychenie na purvoto otklonenie
(.. skrij ..)
- Osnovnata tema na besedata beshe namiraneto na realnite koreni na polinom s realni koeficienti.
- V tova otklonenie se otplesnux po vutreshnoto predstavjane na dannite v kompjytrite.
- Izlozhenieto ne e na texnichesko nivo. To e na pyblicistichno nivo.
- Celta e samo chitatelite da dobijųt nehkakva predstava.
- Celta e obqa predstava predi vsichko i predstava za algoritmite.
- Implementaciata na algoritmite sreqa ogranicheniata na kompjyturnata sreda i te ne vinugi rabotjųt.
- No ne sum si postavjal za cel implementacia na aritmetika s po-visoka tochnost.
- Suvsem ne vsichko be spomenato.
- Stryva si da se otbelezhi, che kakto vsichko, svurzano s kompjytrite, se dorazviva i podobrjava, taka stava s raznite formati i kodirovki.
- Redica stari formati, s koito sum rabotil prez 80-te, sega su zabraveni.
- Naprimer, paketiranite desetichni chisla i mashinnata aritmetika s tehx.
- Imashe gi v IBM/System360, a posle i vuv VAX.
- Ili puk desetichnite chisla s plavaqa tochka.
- Imashe gi pak v IBM/System360, kudeto nemashe dvoichni chisla s plavaqa tochka.
- Ne znam tazi strannost da e bila povtorena v dryga kompjyturna arxitektyra.
- Naprimer, paketiranite desetichni chisla i mashinnata aritmetika s tehx.
- Pri reshavaneto na zadachata za namiraneto na realnite koreni na polinom s realni koeficienti se polzva aritmetika s plavaqa tochka.
- Edno vreme aritmetikata s plavaqa tochka beshe edin ot aspektite v programiraneto, kojto beshe naj-trydno prenosim meghy razlichnite kompjyturni arxitektyri.
- Suqo taka, pochti nevuzmozhno beshe da se prenasjat kato danni chisla s plavaqa tochka v mashinno predstavjane.
- Sega veche ima standart za aritmetika s plavaqa tochka.
- (.. skrij go zakljychenieto ..) (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ◄► (.. skrij go otklonenieto za pozicionnite brojni sistemi ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų vtorata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Otklonenie_2: ciklichno broene, prusteni na ostatucite (.. pokazhi go otklonenieto ..) (.. razgunuto ..)
-
▼▼
Otklonenie_2: ciklichno broene, prusteni na ostatucite
(.. skrij go otklonenieto ..)
(.. svij go ..)
(.. razguni go ..)
- ►► Neqo kato predgovor na vtoroto otklonenie (.. pokazhi ..)
-
▼▼
Neqo kato predgovor na vtoroto otklonenie
(.. skrij ..)
- Osnovnata tema na besedata beshe namiraneto na realnite koreni na polinom s realni koeficienti.
- Pri tova "poleto na dejstvie" e poleto na realnite chisla.
- No tova beshe v matematicheskata zadacha za namiraneto na realnite koreni na polinom s realni koeficienti.
- V purvoto otklonenie se otplesnux po vutreshnoto predstavjane na dannite v kompjytrite.
- Tam, v purvoto otklonenie, veche napysnuxme poleto na realnite chisla.
- Vsichko v kompjytrite se modelira i se predstavja s celi chisla.
- Analogovi kompjytri i dori xibridni analogovo-cifrovi kompjytri az ne sum vighal.
- Vsichko minava na cifrovizacia i dori veche si e cifrovo (digitalno) - telefonni razgovori, televizia, zvykozapisi.
- Digitalnoto e po-nadeghno, po-stabilno i po-lesno se ypravljava.
- Analogovoto mozhe da rezonira sus zaobikaljaqiut ni realen analogov sveht.
- Izgradili sme si virtyalen digitalen (cifrov) sveht.
- Tova beshe oqe v purvoto otklonenie.
- Trehbva da go prochetete predi vtoroto otklonenie.
- I sega idva vtoroto otklonenie.
- Qe se razdelim s predstavata za bezkrajnost.
- Qe zamenim bezkrajnostta s ciklichnost.
- V nashite choveshki predstavi i yseqania nehma bezkrajnost.
- Vsichko, do koeto se dokasvame ili koeto mozhem da poglednem, e otsam bezkrajnostta.
- Ne znaem kude e tja, bezkrajnostta.
- Lesno mozhem da si predstavim, che polovinata na niqoto - na nylata - e tochno ravna na cehloto niqo (na cehlata nyla).
- No trydno mozhem da si predstavim, che polovinata na bezkrajnostta e tochno ravna na cehlata bezkrajnost.
- Ili che cehlata bezkrajnost e ravna na polovinata si.
- Zatova qe se razdelim s predstavata za bezkrajnost.
- Izlozhenieto ne e na texnichesko nivo. To e na pyblicistichno nivo.
- Ednata cel e chitatelite da dobijųt nehkakva predstava za ciklichnostta v kompjytrite.
- V tozi smisul tova e produlzhenie na purvoto otklonenie ot besedata.
- Ot dryga strana, podgotvjam obstojna pyblikacia za raznite kalendari i za raznite kalendarni elementi.
- A tam ima mnogo primeri na ciklichno broene.
- (.. skrij go predgovorut na vtoroto otklonenie ..) (.. skrij go vtoroto otklonenie ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Osnovnata tema na besedata beshe namiraneto na realnite koreni na polinom s realni koeficienti.
- ►► Ciklichnoto broene v ezhednevieto (.. pokazhi ..)
-
▼▼
Ciklichnoto broene v ezhednevieto
(.. skrij ..)
- Sedmicata.
- Ponedelnik, vtornik, srehda, chetvurtuk, petuk, subota, nedelja .. i pak ponedelnik.
- I taka poveche ot tri xiljadi godini.
- Bez prekusvane, bez pripluzgvane, bez greshki.
- Mesecite.
- Janyari, fevryari, mart, april, maj, jyni, jyli, avgyst, septemvri, oktomvri, noemvri, dekemvri .. i pak janyari.
- I taka poveche ot dve xiljadi godini.
- Ciferblatut na chasovnicite.
- Edin chasut, dva chasut, tri chasut, .., shest chasut, .., devet chasut, deset chasut, edinadeset chasut, dvanadeset chasut, i pak edin chasut.
- I taka otkakto go ima stariut chasovnik.
- G-zha Petrova, nachalna ychitelka.
- Vodi purvolaci, vodi vtoroklasnici, vodi tretoklasnici, vodi chetvurtoklasnici, i pak pri purvolacite.
- I taka do pensia.
- E, da:
- Purvolacite ne su suqite, kakto predi chetiri godinin - drygi su.
- Edin chasut dnes po pladne ne e kato edin chasut noqes, a puk ytre v edin chasut koj znae kakvo qe stane.
- Prez tazgodishniut janyari behx s cehla godina po-star, otkolkoto behx prez minulogodishniut janyari.
- Tozi ponedelnik serialut po televiziata svurshi, i drygiut ponedelnik qe pochva dryg serial.
- Obache:
- Vse purvolaci, dechica malki.
- Chasovnikut vse edin chasut pokazva.
- I na stenniut kalendar pishe vse "janyari".
- I sled tozi ponedelnik pak vtornik qe dojde.
- (.. skrij go ciklichnoto broene v ezhednevieto ..) (.. skrij go vtoroto otklonenie ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Sedmicata.
- ►► Ciklichnoto broene v matematikata (.. pokazhi ..)
-
▼▼
Ciklichnoto broene v matematikata
(.. skrij ..)
- V predishnoto otklonenie beshe napisano, che pojavata na ponjatietieto za nyla - izobretjavaneto na chisloto nyla i na cifrata nyla,
koeto se e slychilo sravnitelno naskoro, e dalo tlasuk na razvitieto na matematikata i na texnologiite.
- Ako chasovnikovite ciferblati ne sledvaxu stara tradicia, oznacheniata vurxy tehx qehxu da su ot 0 do 11.
- S terminite "pole" i "prusten" se oznachavat dve algebrichni stryktyri, na koito v matematikata se davat opredelenia.
- Elementite im mogut da budut narichani chisla.
- I v dvete tezi stryktyri su vuzmozhni obichajnite aritmetichni operacii subirane, izvaghane i ymnozhenie.
- Ima si nyla, kojato ne promenja chisloto, kum koeto e dobavena.
- Ima si i edinica, kojato ne promenja chisloto, s koeto e ymnozhena.
- Vsehko pole v chastnost e i prusten, no ne vseki prusten e pole.
- Edin prusten, za da bude pole, trehbva vinugi v nego da e vuzmozhna operaciata delenie na chislo, koeto e razlichno ot nyla.
- Naprimer.
- Chislata 5 i 2 su elementi pone na tri poleta: na poleto na kompleksnite chisla, na poleto na realnite chisla i na poleto na racionalnite chisla.
- Ako chislata 5 i 2 gi razgleghame kato elementi na pole, to mozhem da razdelim 5 na 2 i qe se polychi chislo ot suqoto pole: chisloto 2.5 (dve i polovina).
- Chislata 5 i 2 su elementi i na prustenut na celite chisla.
- Ako chislata 5 i 2 gi razgleghame kato elementi na prustenut na celite chisla, to pri operaciata "5 deleno na 2" qe se polychut dve chisla (dve chisla ot tozi prusten): chastno 2 i ostatuk 1.
- Chislo 2.5 (dve i polovina) v tozi prusten nehma.
- Da zabravim za poletata. Produlzhavame samo s prustenite.
Ot nehkakva gledna tochka, produlzhavame s celite chisla.- Pri delenie na dve chisla ot edin prusten (pri nenylev delitel, razbira se) mozhe da ne se nameri edno chislo ot tozi prusten kato rezyltat.
- No qe se namerjųt dve chisla: chastno i ostatuk.
- Da si pripomnim, che celta na tova vtoro otklonenie e da se razdelim s predstavata za bezkrajnost
i da jų zamenim s predstava za ciklichnost.
- Kato imame na razpolozhenie nylata i pozicionnoto predstavjane na chislata.
- Obiknoveno v desetichnata pozicionna brojna sistema.
- Da se ogranichim do poslednite dve desetichni cifri, do poslednite dva desetichni razrjada.
- Ako za dve celi polozhitelni chisla suvpadat poslednite dve cifri - edinicite i deseticite - v desetichnoto im predstavjane, neka da smehtame, che tezi dve chisla su identichni.
- Taka se polychava prusten, sudurzhaq tochno 100 elementa - tochno 100 "chisla", narechen "prusten na ostatucite po modyl 100" i oznachavan taka: Z100.
- Chislata ot tozi prusten obiknoveno se oznachavat 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 identichno na 4
- V tozi prusten 0-6 e ravno na 94. Elementut 94 mozhe da bude oznachen i taka: -6.
- S drygi dymi, nehmame nikakuv problem chast ot chislata v prustenut na ostatucite da gi smehtame za otricatelni.
- Vuzmozhno e i vsichkite nenylevi elementi na tozi prusten da gi smehtame za otricatelni.
- Otklonenie za pochivka. Da ne si pomislite, che decata ot 2-ri klas se ychut da smehtat v prustenut Z100. Makar tova donehkude da e vehrno. Kraj na pochivkata.
- Za vsehko cehlo chislo n po-golehmo ot 1 suqestvyva prusten na ostatucite po modyl n s oznachenie
Zn.
- Prustenut Zn sudurzha tochno n chisla: ot 0 do n-1.
- Otklonenie kum fizikata.
- Nehkoi fizichni javlenia imat absoljytno nachalo i e estestveno tova nachalo da bude otbelehzvano s cifrata 0 (nyla).
- Naprimer, absoljytnata nyla pri temperatyrata (minys 253 gradysa po Celzij). Po-niska temperatyra nehma.
- Xorata ne vinugi su osuznavali suqestvyvaneto na absoljytnata temperatyrna nyla.
- I dosega se izpolzvat temperatyrni skàli, kudeto nylata ne e v absoljytnoto nachalo,
a na nehkoe drygo yslovno prieto mehsto:
- Pri skàlata na Celzij nylata e na tochkata 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 absoljytno nachalo - golemiut vzriv, no tova absoljytno nachalo e absoljytno nedostizhimo.
- Zatova pri otchitane na vremeto vinugi se nalaga da slagame nehkude yslovna nyla.
- Jà pri roghenieto na Iisysa Xrista.
- Jà pri suzdavaneto na svetut spored Bibliata.
- Jà ot osnovavaneto na gradut Rim.
- Jà v drygi tochki ot vremeto.
- Kraj na otklonenieto kum fizikata.
- Da vuvedem absoljytno otbrojavane na dnite (na denonoqiata) ot nehkakvo yslovno nachalo.
- Za nylev den qe objavjų 16-ti april 1916. 27499
- Izbran e za po-lesni smetki.
- Tova e purvata nedelja sled vuveghaneto na grigorianskiut kalendar v Bulgaria.
- Qe go nareku tozi den DTV: dehdo trugva na vojna.
- Absoljytno 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 vzrivjavat xram v centurut na Sofia i ybivat okolo 200 dyshi.
- Na den 10373 ot DTV Bulgaria popada v lapite na Stalin.
- Na den 26706 ot DTV stotina xiljadi mjysjylmani bulgarski graghani su izgoneni ot stranata.
- Na den 29514 ot DTV - edin ot malkoto xybavi dni - BSP zagybi vlastta - otstupi jų za okolo 8 godini.
- Na den 30553 - naj-xybaviut den za Bulgaria ot DTV nasam - Evropejskiut sujyz reshi da prieme Bulgaria za chlen.
- Nie xorata ne sme kompjytri i ne otchitame dnite taka.
- V ezhednevieto si v mnogo slychai otchitame dnite ciklichno.
- Delim chisloto - brojut na dnite ot DTV - na 7 i broim ciklichno. Prilagame Z7: prustenut na ostatucite po modyl 7.
- Imame si imena za elementite na tozi prusten:
{0} nedelja, {1} ponedelnik, {2} vtornik, {3} srehda, {4} chetvurtuk, {5} petuk, {6} subota. - Probivut na Dobro pole e bil v nedelja. [882 deleno na 7: chastno 126 i ostatuk 0]
- Golemiut atentatut v sofijski xram e bil v chetvurtuk. [3287 deleno na 7: chastno 469 i ostatuk 4]
- Bulgaria popada v lapite na Stalin v subota. [10373 deleno na 7: chastno 1481 i ostatuk 6]
- Todor Zhivkov jų durzha onazi si rech v ponedelnik. [26706 deleno na 7: chastno 3815 i ostatuk 1]
- Beshe vtornik, kogato BSP otstupi vlastta za okolo 8 godini. [29514 deleno na 7: chastno 4216 i ostatuk 2]
- Reshenieto za priemaneto na Bulgaria v Evrosujyzut be vzeto v petuk. [30553 deleno na 7: chastno 4364 i ostatuk 5]
- Da vuvedem absoljytno otbrojavane na chasovete ot nehkakvo yslovno nachalo.
- Neka tova yslovno nachalo e nastupvaneto na novata 2024 godina.
- V chas nomer 15 (chasovnikovata strelka sochi 3 na ciferblatut) slyshax na zapis vienskiut novogodishen koncert. [15 deleno na 12: chastno 1 i ostatuk 3]
- V chas nomer 156 (chasovnikovata strelka sochi 12) janyarskata mi pensia e postupila po smetkata mi. [156 deleno na 12: chastno 13 i ostatuk 0]
- V chas nomer 906 (chasovnikovata strelka sochi 6) fevryarskata mi pensia e postupila po smetkata mi. [906 deleno na 12: chastno 75 i ostatuk 6]
- V chas nomer 1602 (chasovnikovata strelka sochi 6) martenskata mi pensia postupi po smetkata mi. [1602 deleno na 12: chastno 133 i ostatuk 6]
- V chas nomer 2167: chasovnikovata strelka socheshe 7 - mrudnux jų da sochi 8 zaradi lehtnoto chasovo vreme. [2167 deleno na 12: chastno 180 i ostatuk 7]
- Sviknuli sme da otchitame chasovete ciklichno - v prusten po modyl 12.
- (.. skrij go ciklichnoto broene v matematikata ..) (.. skrij go vtoroto otklonenie ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- V predishnoto otklonenie beshe napisano, che pojavata na ponjatietieto za nyla - izobretjavaneto na chisloto nyla i na cifrata nyla,
koeto se e slychilo sravnitelno naskoro, e dalo tlasuk na razvitieto na matematikata i na texnologiite.
- ►► Ciklichnoto broene v kompjytrite (.. pokazhi ..)
-
▼▼
Ciklichnoto broene v kompjytrite
(.. skrij ..)
- Ako chislata se predstavjat v radix 10 (desetichna pozicionna brojna sistema, r = 10)
i se ogranichim do osem razrjada (osem cifri, n = 8), qe mozhem da polychim smehtane
v prustenut na ostatucite po modyl 100000000. Sto miliona - deset na osma -
r na stepen n -
tova e moqnostta na prustenut, tolkova elementa toj sudurzha.
- Tezi sto miliona na broj chisla su ot 0 (00000000) do 99999999.
- Poslednoto ili "naj-visokoto" chislo e 99999999.
- Ako kum nego dobavim 1 qe polychim 0 (00000000) i 1 prenos. Eto kak:
- Dobavjame edinica kum mladshiut razrjad. V nego ima 9. Stava 10, toest 0 (nyla) i 1 (edinica) prenos kum starshiut razrjad (edno na ym).
- Tazi edinica, kojato e prenos ot mladshiut razrjad, jų dobavjame kum sledvaqiut razrjad. V nego ima pak 9. Stava 10, toest 0 (nyla) i 1 (edinica) prenos kum starshiut razrjad (pak edno na ym).
- .. I taka natatuk. Na vsehka pozicia se polychava 0 (nyla) i 1 (edinica) prenos.
- Kum starshiut nalichen razrjad dobavjame edinicata, kojato e prenos ot predishniut razrjad. Polychava se pak 0 (nyla) i edinica prenos, kojto nehma veche 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 identichno s -1. Kakto i -1 e identichno s 99999999.
- Vutreshno v realnite kompjytri chislata se predstavjat v radix 2, dvoichno.
- Edna dvoichna cifra se naricha bit.
- Edin bit mozhe da ima stojnost ili 0 (nyla) ili 1 (edinica).
- Nehkoga imashe kompjytri s naj-razlichna razrjadnost.
- Segashnite su 64-bitovi ili 32-bitovi.
- Da oznachim razrjadnostta s n - radix-ut si e 2.
- Suotvetniut prusten se oznachava taka: Z2**n (prusten Ζ s moqnost 2 na stepen n).
- Trydno e chovek da susredotochi vnimanieto si vurxy 32 bita, a za 64 - da ne govorim.
- Prustenite Z2**64 i Z2**32 nehma kak da gi izpolzvam za iljystracia.
- Zatova qe priema 8 bita, makar 8-bitovi kompjytri da nehma otdavna.
- Prustenut Z256 e s moqnost 256 (dve na osma).
- Toj sudurzha 256 elementa - 256 chisla.
- Tezi 256 chisla, naredeni po "visochina", su:
- Desetichno ot 0 do 255.
- Dvoichno ot 0 (00000000) do 11111111.
- Osmichno ot 0 do 377.
- Shestnadesetichno ot 0 (00) do FF.
- Nehma kombinacia ot 8 bita, kojato da ne e prebroena i da ne e vkljychena v tezi 256 elementa ili 256 chisla.
- Poslednoto ili "naj-visokoto" chislo e 11111111.
- Ako kum nego dobavim 1 qe polychim 0 (00000000) i 1 prenos. Eto kak:
- Dobavjame edinica kum mladshiut razrjad. V nego ima 1. Stava 10, toest 0 (nyla) i 1 (edinica) prenos kum starshiut razrjad (edno na ym).
- Tazi edinica, kojato e prenos ot mladshiut razrjad, jų dobavjame kum sledvaqiut razrjad. V nego ima pak 1. Stava 10, toest 0 (nyla) i 1 (edinica) prenos kum starshiut razrjad (pak edno na ym).
- .. I taka natatuk. Na vsehka pozicia se polychava 0 (nyla) i 1 (edinica) prenos.
- .. Kakto po-gore pri radix 10, taka i sega pri radix 2.
- Kum starshiut nalichen razrjad dobavjame edinicata, kojato e prenos ot predishniut razrjad. Polychava se pak 0 (nyla) i edinica prenos, kojto nehma veche 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 (desetichno 255) e identichno s -1. Kakto i -1 e identichno s 11111111.
- 11111110 (desetichno 254) e identichno s -10 (desetichno -2).
- 11111100 (desetichno 252) e identichno s -100 (desetichno -4).
- 11111000 (desetichno 248) e identichno s -1000 (desetichno -8).
- 11110000 (desetichno 240) e identichno s -10000 (desetichno -16).
- 11100000 (desetichno 224) e identichno s -10000 (desetichno -32).
- 11000000 (desetichno 192) e identichno s -1000000 (desetichno -64).
- 10000000 (desetichno 128) e identichno s -10000000 (desetichno -128).
- Razbira se, nylata 00000000 e identichna s -0 (minys nyla), kakto vuv vseki prusten.
- A qom desetichnoto 255 (dvochno 11111111) e identichno s -1, kato ymnozhin tova ravenstvo s -1, dali e vehrno, che v tozi prusten 1 (edinicata, 00000001) e identichna s -255 (desetichno)?
- Da, razbira se.
- I tuj, nabelehzani su tri vuzmozhni interpretacii na elementite (na chislata) ot prustenut Z256.
- Imajte pred vid realniut obq slychaj: prustenut e Z2**32 ili Z2**64.
- Aritmetichnite dejstvia subirane, izvaghane, ymnozhenie i delenie su definirani v prustenut nezavisimo ot interpretaciata na elementite my.
- Zabelezhka. Pri delenieto deliteljut ne biva da e nyla, a rezyltatite su dva: ostatuk i chastno.
- Trite interpretacii su slednite:
- Adresna interpretacia. V ezicite S&C++ se oznachava unsigned int ili samo unsigned.
- Chislata su naredeni po visochina ot naj-niskoto (nylata, 00000000) do naj-visokoto (11111111, desetichno 255).
- Elementite 01111111 (desetichno 127) i 10000000 (desetichno 128) su prosto dva susedni adresa.
- Interpretacia sus znak. V ezicite S&C++ mozhe da se polzva se oznachava signed int ili samo int (integer).
- Nylata 00000000 e v razpolozhena v sredàta meghy polozhitelnite i otricatelnite chisla.
- Elementite ot 00000001 (desetichno 1) do 01111111 (desetichno 127), 127 na broj, kakto su si naredeni po visochina, se interpretirat kato polozhitelni chisla ot 1 do 127.
- Elementite ot 11111111 (desetichno 255) do 10000000 (desetichno 128), 128 na broj, se interpretirat kato otricatelni chisla ot -1 do -128.
- Tretata vuzmozhna interpretacia ne se polzva.
- Vsichki chisla osven nylata - 255 na broj - se interpretirat kato otricatelni:
- ot 11111111 (-1) do 00000001 (minys 255 desetichno).
- Adresna interpretacia. V ezicite S&C++ se oznachava unsigned int ili samo unsigned.
- Kakva e interpretaciata - dali e adresna (bezznakova, unsigned) ili e znakova, ima znachenie v tri momenta:
- Purvo. Kak da se pokazvat elementite na prustenut v choveshki vid.
- Vtoro. Kak da se interpretirat sravneniata meghy elementite na prustenut.
- Pri znakova interpretacia 11111111 e -1 i e po-malko ot nylata 0.
- Pri adresna interpretacia 11111111 e 255 desetichno i e po-golehmo ot nylata 0.
- Na nisko nivo ima razlichni 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-golehmo i koe e po-malko).
- V ezicite ot visoko nivo (naprimer S&C++) sravneniata se oznachavat ednakvo, no za vsehko chislo trehbva da se znae v kakuv vid sravnenia ychastva (unsigned ili signed).
- Treto. Koga da se markira osobena sityacia.
- Pri znakova interpretacia, ako kum 01111111 (127 desetichno) dobavim edinica, qe se polychi prepulvane (integer overflow), tuj kato rezyltatut minava v diapazonut na otricatelnite chisla.
- 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 slychai.
- Naprimer, osobena sityacia ot takuv tip e stack overflow.
- (.. skrij go ciklichnoto broene v kompjytrite ..) (.. skrij go vtoroto otklonenie ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Ako chislata se predstavjat v radix 10 (desetichna pozicionna brojna sistema, r = 10)
i se ogranichim do osem razrjada (osem cifri, n = 8), qe mozhem da polychim smehtane
v prustenut na ostatucite po modyl 100000000. Sto miliona - deset na osma -
r na stepen n -
tova e moqnostta na prustenut, tolkova elementa toj sudurzha.
- ◄► (.. skrij go otklonenieto za ciklichnoto broene ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų vtorata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ◄► (.. skrij jų vtorata beseda ..) (.. svij jų ..) (.. posvij ili porazguni ..) (.. razguni jų ..) .. kum nachaloto ..
►► 4. Broderia na trakaq printer (.. pokazhi jų tretata beseda ..) (.. razgunuto ..) .. kum nachaloto ..
- Az kato stydent po bakalavurska programa v matematicheskiut fakyltet.
- Po spomeni ot lehtoto na 1977 - na stazh v Turnovo. ::2023-06-13 18:09::
▼▼ 4. Spomeni ot lehtoto na 1977: Broderia na trakaq printer (.. skrij jų tretata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
::2023-06-13 18:09::- ►► Az kato stydent po bakalavurska programa v matematicheskiut fakyltet (.. pokazhi ..) (.. razgunuto ..) (.. skrij jų tretata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
-
▼▼
Az kato stydent po bakalavurska programa v matematicheskiut fakyltet
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
- ►► Reformite na Blagovest Sendov v matematicheskiut fakyltet na sofijskiut yniversitet (.. pokazhi gi ..)
-
▼▼
Kogato behx stydent, Blagovest Sendov beshe rektor na yniversitetut.
(.. skrij ..)
- No predi tova e bil dekan na matematicheskiut fakyltet. I kato takuv e napravil slednite reformi ili pone e sudejstval za tehx:
- Po primerut na civilizovaniut sveht vissheto obrazovanie po matematika v sofijskiut yniversitet e stanulo dvystepenno:
bakalavurska i magisturska stepen.
- Konspirativnoto ime na bakalavurskata stepen beshe "blok_A", a na magisturskata stepen - "blok_B".
- Imashe i "blok_C" - aspirantyra. Zavurshvashe se s kandidatska stepen. Sega tova se priravnjava na doktorska stepen.
- Ne poznavam nikogo, kojto da si e ostanul samo s "blok_A" i bakalavurska stepen. No verojatno e imalo takiva. Te polychavaxu diploma za visshe obrazovanie po matematika. I mozhexu da rabotjųt kato kompjyturni programisti v izchislitelnite centrove.
- Pochti vsichki kolegi, koito zavurshvaxu bakalavurska stepen po matematika s konspirativno ime "blok_A", produlzhavaxu obrazovanieto si ili v "blok_B" za magisturska stepen, ili v "blok_D", kudeto polychavaxu pedagogicheska kvalifikacia za ychiteli po matematika.
- Az sum zavurshil i s dvete kvalifikacii - magistur po matematika i ychitel po matematika.
- No prez cehlata si profesionalna kariera sum rabotil samo kato kompjyturen programist i softweren inzhener.
- Anglijskiut ezik - zadulzhitelen za bakalavrite po matematika.
- Srednoto obrazovanie vkljychvashe i obychenie po zapaden ezik - frenski, nemski ili anglijski, no zrelostnicite ne go ysvojavaxme tozi ezik.
- Estestveno beshe obychenieto po zapaden ezik da produlzhi i vuv vissheto ychebno zavedenie.
- Vuv fakyltetut po matematika na sofijskiut yniversitet zadulzhitelen beshe anglijskiut ezik.
- Prez semestrite ne ychexme nito anglijski, nito dryg zapaden ezik.
- Za nas se organiziraxu intenzivni letni kyrsove: prez lehtoto sled purvi kyrs (1975) i prez lehtoto sled vtori kyrs (1976).
- Intenzivni kyrsove - vseki den po shest chasa anglijski.
- Imashe otdelni grypi za nachinaeqi kato mene i za naprednuli (koito su ychili anglijski kato srednoshkolci).
- Az si ostanux s gimnazialnoto nivo po frenski ezik i trehbvashe da zapochnu da ychu anglijski ezik.
- Za mene tova beshe dobur kusmet.
- Otklonenie za ryskiut ezik. Razchitashe se, che ot 5-ti do 9-ti klas ychaqite se su go ysvoili ryskiut ezik. Vinugi ni se e nalagalo da polzvame ychebna literatyra na ryski ezik i ne sme imali problemi nito az, nito kolegite. Ne mozhe cehlata specializirana literatyra da se prevegha 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 znachenie imashe tova za mene. No za nehkoi moi kolegi tova beshe vazhno.
- Sega v Bulgaria vsichki ychut anglijski ot detskata gradina, vuv vissheto obrazovanie su otdeleni magisturska i bakalavurska stepen ne samo v matematikata.
- No integraciata meghy sofijskiut yniversitet i BAN edva li e ystoehla na vremeto.
- (.. skrij gi reformite na Blagovest Sendov ..) (.. skrij gi spomenite mi ot 1975..76..77 ..) (.. svij gi ..) (.. razguni gi ..) .. kum nachaloto ..
- ►► Ne sum xodil na letni stydentski brigadi. (.. pokazhi ..)
-
▼▼
Ne sum xodil na letni stydentski brigadi.
(.. skrij ..)
- Esennite stydentski brigadi ne su mi se razminuli.
- Jambolskata konservena fabrika.
- Razni sela iz Severozapadna Bulgaria.
- No na letni stydentski brigadi ne sum xodil.
- Sled purvi i vtori kyrs stydentite ot matematicheskiut fakyltet na sofijskiut yniversitet poseqavaxme intenzivni kyrsove po anglijski i behxme osvobodeni ot letni brigadi.
- Sled treti kyrs prez lehtoto trehbvashe da izkarame nehkakuv stazh.
- Verojatno taka e bilo i v drygite fakylteti i vyzove - stazh vmesto brigada sled treti kyrs.
- Kato ychenik v turnovskata gimnazia sum xodil i na letni, i na esenni brigadi.
- Pomnjų, che kogato se ybi Gyndi, behx na brigada v elenskiut balkan za brane na malini.
- Pomnjų i edna esenna brigada v Resen, v predpriatieto za proizvodstvo na semena.
- Dinite tam gi pyskaxu v edna mashina da gi machka i da otdelja semkite.
- Jadehxme dini na korem, no semkite trehbvashe da gi pljyem i da gi predavame.
- A be sega koj jų 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 nachaloto ..
- Esennite stydentski brigadi ne su mi se razminuli.
- ►► Podgotovkata mi za budeqata mi trydova dejnost. (.. pokazhi ..)
-
▼▼
Podgotovkata mi za budeqata mi trydova dejnost.
(.. skrij ..)
- Diplomiral sum magistur po matematika sus specialnost "realen i fynkcionalem analiz" i s dopulnitelna kvalifikacia za ychitel po matematika.
- No prez cehlata si profesionalna kariera sum rabotil samo kato kompjyturen programist i softweren inzhener.
- Ne trehbva da si mislite, che dvygodishnoto mi obychenie po magisturskata programa e bilo za mene bezpolezno.
- Naprotiv.
- Bix preporuchal na vsichki, koito imat tazi vuzmozhnost, da ne ostavat s bakalavurska stepen, a da si izkarat i diploma za magistur.
- Purvo. Diplomata za magisturska stepen e cenna. S nejų yniversitetut yverjava budeqite Vi rabotodateli, che Vie imate ymeniata da oglavite proekt.
- Verojatno, tova e vehrno ne samo v oblastta na matematikata i v kompjyturnata indystria, a i v drygi oblasti.
- Dymata "magistur" mozhe da se prevede kato "majstor".
- Vtoro. Obychenie po magisturskata programa na mene mi jų razshiri obqata kyltyra.
- A za rabotata v kompjyturnara indystria taka i taka e nyzhno postojanno chovek da se ychi na novi neqa.
- Zaqoto tova e nova burzo razvivaqa se oblast.
- Lichno az se behx zadulbochil v matematicheskata logika i osnovite na matematikata.
- Treto. Malovazhno, no konkretno. Zapochnux rabota na 1979-10-01 s nachalna zaplata 120 leva.
- Ako si behx ostanul s bakalavurska stepen, startovata mi zaplata qeshe da e 105 leva.
- No naistina, povecheto ot texnicheskite ymenia, koito mi behxu nyzhni, za da zapochnu rabota v kompjyturnata indystria,
gi behx ysvoil prez obychenieto mi po bakalavurskata programa.
- Na purvo mehsto, fyndamentalni kyrsove po algebra, vkljychitelno linejna algebra.
- Na vtoro mehsto, fyndamentalni kyrsove po ACM.
- Purva i vtora chast suotvetno v purvi i vtori kyrs.
- Sukraqenieto ACM imashe dve razshifrovki:
- Na bulgarski: Avtomatichni Smetachni Mashini.
- Na anglijski: Automatical Computing Machines.
- I na treto mehsto, kyrsove po chisleni metodi i po izsledvane na operaciite (optimirane).
- I vsichko tova s prakticheski yprazhnenia.
- Nared s fyndamentalnite vuprosi, v kyrsut po ACM se ysvojavaxu i slednite texnicheski ymenia:
- JCL (Job Control Language) za DOS/360.
- Ezicite ot tozi tip sega su mnogo po-razviti i se narichat 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 spechelix golehmata nagrada, se sustezavax na PL/1.
- Ezikut za programirane Fortran.
- Kato stydent go behx ysvoil dobre.
- Povecheto prakticheski yprazhnenia gi pravexme na Fortran.
- V profesionalnata si kariera obache ne sum polzval Fortran.
- JCL (Job Control Language) za DOS/360.
- Otklonenie. АСМ ili ЕИМ?
- Na profesionalen zhargon dymata kompjytri nikoga ne e bila smesvana s dymata kalkylatori.
- Na profesionalen zhargon vinugi se e ypotrebjavala i dymata mashini, no samo sus znachenieto kompjytri.
- I trite tezi dymi kalkylatori, kompjytri i mashini su se ypotrebjavali, otkakto se pomnjų.
- Abreviatyrite (sukraqeniata) ASM i EIM su elementi na kancelarskiut ezikov stil i ne se ypotrebjavaxu v ystnata rech.
- АСМ: Avtomatichni Smetachni Mashini.
- ACM: Automatical Computing Machines.
- ЕИМ: Elektronni Izchislitelni Mashini.
- ЭВМ: Электронные Вычислительные Машины.
- Abreviatyrata АСМ po-tochno izrazjava suqnostta na kompjytrite kato avtomatichni mashini, za razlika ot kalkylatorite.
- No navsehkude izvun fakyltetut po matematika graghanstvenost dobi sukraqenieto ЕИМ, koeto tochno suotvetstvashe na ryskoto ЭВМ.
- Makar che abreviatyrite ЕИМ (ЭВМ) su netochni, ponezhe elektronnite kalkylatori su suqo taka elektronni izchislitelni mashini, no ne su kompjytri.
- Otklonenie v otklonenieto.
- Mashinata, kojato Xhon Atanasov, profesor po fizika v yniversitetut v Ajova, e zapochnul da konstryira, e bila zamislena kato elektronna izchislitelna mashina, no ne kato programiryem kompjytur.
- Avtomatichnata smetachna mashina, kojato nemecut Konrad Cyze e konstryiral, ne e bila elektronna, no e bila istinski programiryem kompjytur.
- Kraj na otkloneniata.
- (.. skrij jų podgotovkata mi kato stydent po bakalavurskata programa ..) (.. skrij gi spomenite mi ot 1975..76..77 ..) (.. svij gi ..) (.. razguni gi ..) .. kum nachaloto ..
- ◄► (.. skrij gi spomenite mi ot 1975..76..77 ..) (.. svij gi ..) (.. razguni gi ..) (.. skrij jų tretata beseda po spomenite mi ot 1977 ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Na stazh v Turnovo (.. pokazhi ..) (.. skrij jų tretata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
-
▼▼ Na stazh v Turnovo
(.. skrij ..)
- Kato stydenti po bakalavurska programa sled treti kyrs trehbvashe da izkarame nehkakuv proizvodstven stazh.
- Az i oqe edin kolega karaxme stazhut si v turnovskiut teritorialen izchislitelen centur.
- Lehtoto na 1977.
- Kolegite ot teritorialniut izchislitelen centur behxu taka dobri da ni razreshavat da gledame i da pipame, bez da ni davat zadachi.
- Nikak ne ni ogranichavaxu, no i nikak ne razchitaxu na nas pri razvojnite si i proizvodstvenite si zadachi.
- Teritorialniut izchislitelen centur beshe oborydvan s mashina ЕС ЭВМ, mladshi model, bulgarsko ili suvetsko proizvodstvo.
- Po onova vreme ne me interesyvaxu po-tochni texnicheski danni i nehma kak da pomnjų.
- (.. skrij gi spomenite mi za stazhut v Turnovo ..) (.. skrij jų tretata beseda po spomenite mi ot 1977 ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Broderia na trakaq printer (.. pokazhi ..) (.. razgunuto ..) (.. skrij jų tretata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
-
▼▼ Broderia na trakaq printer
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
- ►► Kato si nehmax dryga rabota, reshix da izbrodiram kartinka na printer.. (.. pokazhi ..)
-
▼▼
Prez lehtoto na 1977,
(.. skrij ..)
- dokato behx na stazh v turnovskiut teritorialen izchislitelen centur,
- kato si nehmax dryga rabota,
reshix da izbrodiram kartinka na printer.
- Po onova vreme se razprostranjavaxu podobni broderii.
Po-izvestnite behxu:- "Izplezil mi se e Ajnqajn"
- "Majmyna v dulbok razmisul se pochesva zad yxoto"
- Kalendar za tekyqata godina
- Xorata si gi razpechatvaxu i si gi lepehxu po stenite.
- Verojatno i v turnovskiut teritorialen izchislitelen centur e imalo takiva.
- Izpolzvashe se dostupnata pechatna baza s cel zabavlenie.
- Takiva izbrodirani za trakaq printer kartinki trehbvashe da se gledat otdaleche.
- Izbrax si da izbrodiram slednata podxodjaqa grayscale kartinka:
- Behx jų nameril v Turnovo v nehkakvo spisanie.
- (.. skrij go reshenieto mi da brodiram na printer ..) (.. skrij jų broderiata na printer ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Printeri: trakaqi, sturzheqi, rumzhaqi.. (.. pokazhi ..)
-
▼▼
Printeri: trakaqi, sturzheqi, rumzhaqi..
(.. skrij ..)
- Suvremennite printeri su lazerni.
- Te proizveghat cehla stranica navednuzh.
- Pri rabota rumzhut priglysheno ili suvsem tixo.
- Lazernite printeri zamestvat nehkogashnite ploteri pri proizvodstvoto na chertezhi.
- Sevremennite cvetni lazerni printeri mogut da proizveghat kartinki s fotografsko kachestvo.
- Da brodiram kartinka na printer se nalagashe, samo zaqoto togava - prez 70-te, nehmashe lazerni printeri.
- Dryg vid printeri su iglenite.
- Pri tehx pisheqa glava se dvizhi po xartiata i s ydari ot iglichki otpechatva znacite.
- Pri dvizhenie na iglenata glava po xartiata se chyva sturzhene.
- Miniatjyrnite iglichki v pechataqata glava mogut da izrisyvat prakticheski vsehka bykva i vseki jeroglif.
- No kartinka, proizvedena s takuv printer, nehma da ima fotografsko kachestvo - tja vinugi qe izglegha kato broderia.
- Sega sturzheqi printercheta v miniatjyrni razmeri se izpolzvat za pechat na razni razpiski i kasovi belezhki.
- Stignuxme i do linejnite printeri (line printers), deto trakat.
- Veche nehma takiva - izmesteni su ot tixo rumzhaqite lazerni printeri, koito prevuzxoghat linejnite trakaqi printeri i po burzina, i po kachestvo.
- Prez 70-te i 80-te, povecheto kompjytri y nas behxu oborydvani s linejni printeri polsko proizvodstvo.
- Takuv imashe i v turnovskiut teritorialen izchislitelen centur, kudeto prez lehtoto na 1977 karax stazh.
- Barabanut na trakaq lineen printer ydrja xartiata i s edin ydar otpechatva cehl red.
- No predi da ydari, na vsehka pozicia se ystanovjava relefnata figyrka na suotvetnata bykva ili cifra.
- S pomoqta na elektronikata i finata mexanika.
- Takiva relefni figyrki imashe po vurxovete na lostchetata na starite pisheqi mashini (typewriters), kato pri tehx tezi lostcheta se zadvizhvaxu s klavishi.
- Dokolkoto si spomnjam, linejnite printeri imaxu po 132 znaka na red.
- Mozhe da e imalo i po-shiroki printeri.
- Imashe specialna xartia za linejni printeri.
- Proizveghashe se s nehkolko standartni shirini.
- Obiknoveno edna stranica ot takava xartia subirashe 66 reda, otpechatani na lineen printer.
- Printerut mozheshe da se programira da ydrja na edin i suq red poveche ot vednuzh, otpechatvajki razlichni tekstove.
- Naprimer, s vtori i treti ydar nehkoja dyma mozheshe da se ydebeli (bold face).
- No mnogo ydari na edno mehsto mozhexu da skusat xartiata.
- Dokato edin sturzheq iglen printer bi mogul da se nastroi taka, che iglichkite my da mogut da otpechatvat ogromno mnozhestvo znaci (firmeni emblemi, kitajski jeroglifi), za linejnite printeri tova beshe nevuzmozhno.
- Edin lineen printer razpolagashe s ogranichen nabor ot znaci - okolo 90, toest po okolo 90 relefni figyrki za bykva ili cifra na vsehka ot 132-te pozicii na edin red.
- Latinskoto A i kirilskoto A se otpechatvaxu s edna i suqa figyrka, razbira se.
- Da ne govorim, che te i se kodiraxa ednakvo v DKOI/EBCDIC.
- (.. skrij gi vidovete printeri ..) (.. skrij jų broderiata na printer ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- Suvremennite printeri su lazerni.
- ►► Perfokarti vtora ypotreba (.. pokazhi ..)
-
▼▼
Perfokarti vtora ypotreba - takiva izpolzvax..
(.. skrij ..)
- Po vremeto, kogato behx na stazh v turnovskiut teritorialen izchislitelen centur - stava dyma za 1977,
nehmashe dryg nachin da se vkara neqo v kompjyturut osven ot perfokarti.
- Stava dyma za kompjytur ЕС ЭВМ, analog na mladshi model na IBM/360.
- Tuj che kakto programata mi, kojato da nakara trakaqiut printer da brodira, taka i dannite za samata broderia
trehbvashe da se vuvedut v kompjyturut ot perfokarti, sled kato programata i dannite se nadypchut na perfokarti.
- Firmata IBM e imala razvita texnologia s perfokarti - nekompjyturna texnologia - oqe ot krajut na 19-ti vek.
- Xoleritova texnika se e narichala. Y nas ne e bivala vnedrjavana.
- Az rabotex s perfokarti v nachaloto na trydovata si dejnost.
- Behx sviknul i da gi razchitam.
- Spomnjam si, che ponehkoga kazvax: perfokarti mogu da chetu, no magnitni lenti - ne.
- Ot dneshna gledna tochka, togavashnata praktika - i s perfokartite, i s printerite - beshe neopravdano praxosvane na xartia.
- Obache nehmashe dryg nachin da se vkara neqo v kompjyturut osven ot perfokarti.
- Ne mozheshe prosto ot klaviatyrata.
- Nehmashe i nachin kompjyturut da pokazhe neqo na chovek, osven izlehzlo na printerut.
- Onezi kompjytri nehmaxu dostup do ekrani.
- Reshix da ne natovarvam dopulnitelno kolegite ot turnovskiut teritorialen izchislitelen centur s prerazxod na resyrsi.
A perfokartite behxu proizvodstven resyrs.- Reshix za celite na broderiata da izpolzvam perfokarti vtora ypotreba.
- Ne sum vighal nehkoj dryg nehkoga da e polzval perfokarti vtora ypotreba.
- Kakto JCL/360 (the job control language, togavashniut shell),
taka i ezicite za programirane (COBOL, Fortran, PL/1)
chesto iziskvaxa kusi redove ot programata,
i sledovatelno - perfokarti s malko perforiran tekst.- Naprimer, cehla perfokarta beshe nyzhna za oznachavane na "kraj na danni" (end-of-data), kojato imashe perforacia "/*" samo v purvite dve pozicii.
- Perfokartata imashe 80 pozicii.
- Prerovix xartienite otpaduci i namerix v dostatuchno kolichestvo perfokarti s perforacia samo v purvite 20 pozicii.
- Izpolzvax gi, za da perforiram na tehx dannite ot broderiata.
- Izpolzvax srednite 50 pozicii na vsehka perfokarta.
- Poslednite pozicii na perfokartata ne behxu nadeghni:
chetecut na perfokarti (reader-ut) chesto se zapuvashe na poslednite pozicii,
mozhe bi perforacionnite mashini ne pravexu dobri dypki v krajut na perfokartata.
- wikipedia: Computer programming in the punched card era
- (.. skrij gi perfokartite ..) (.. skrij jų broderiata na printer ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- Po vremeto, kogato behx na stazh v turnovskiut teritorialen izchislitelen centur - stava dyma za 1977,
nehmashe dryg nachin da se vkara neqo v kompjyturut osven ot perfokarti.
- ►► Pikseli na trakaq printer (.. pokazhi ..)
-
▼▼
Pikseli na trakaq printer
(.. skrij ..)
- V suvremenni termini, formatut na broderiata nehma kak da e bil dryg osven bitmap.
- Tazi kartinka tyka e 129 piksela na shirina i 185 piksela na visochina.
Tova dava predstava za suotnoshenieto.
Kartinkata, kojato az izbrodirax za trakaq printer,
beshe okolo 100 piksela na shirina i okolo 144 na visochina. - Tuj kato edna stranica na trakaq printer beshe 66 reda,
dve stranici - 132 piksela na visochina, to
izbrodiranata kartinka zaxapvashe treta stranica. - Ostatukut ot tretata stranica go zapulnix s kalendar.
- Kartinkata e greyscale. Zatova jų izbrax - zaqoto ne beshe cvetna.
- Dulbochinata ih (depth) sega e trydno da jų opredeljų.
- Tja beshe poveche ot dva bita.
- Printerut ydrjashe dva puti na edin red,
- kato pri vseki ydar vuv vseki piksel
- mozheshe da ima nehkoj ot znacite "*.Zh/\#", a mozhe bi i drygi.
- Samoto brodirane beshe pipkava rabota - samo za mene.
- Doosuvurshenstvaneto na kartinkata beshe oqe po-pipkava rabota.
- To veche beshe chast ot debugvaneto na programata.
- Nehma da Vi zanimavam poveche s pipkavi raboti.
- (.. skrij gi pikselite ..) (.. skrij jų broderiata na printer ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ◄► (.. skrij jų broderiata na printer ..) (.. svij jų ..) (.. razguni jų ..) (.. skrij jų tretata beseda po spomenite mi ot 1977 ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Programata ili po-tochno programite, a be softwerut (.. pokazhi ..) (.. razgunuto ..) (.. skrij jų tretata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
-
▼▼ Programata ili po-tochno programite, a be softwerut
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
- ►► Opcii za distribycia - kak programata se razprostranjavashe (.. pokazhi gi ..)
-
▼▼
Opcii za distribycia - kak programata se razprostranjavashe
(.. skrij gi ..)
- Zadachata, s kojato se behx zael po vreme na stazhut mi v turnovskiut teritorialen izchislitelen centur prez lehtoto na 1977, beshe razvojna zadacha, zadacha za proizvodstvo na softwer, it was a software development task.
- Po zamisul sredstvata za prenos i obmen na danni i softwer pri kompjytrite ЕС ЭВМ behxu perfokartite i magnitnite lenti.
- Obache v praktikata perfokartite se izpolzvaxu samo za purvichen vxod na danni i programi.
- Oborydvaneto, nyzhno za izpolzvaneto na perfokartite pri prenos i obmen na danni i softwer, makar i nalichno, beshe zanemareno i ne fynkcionirashe.
- Ne sum go vighal da raboti nito v Turnovo, nito v Sofia.
- Razbira se, testeto perfokarti, izgotveno v Turnovo za purvichen vxod, mozhex da si go vzemu v Sofia, no ne mozhex da dam kopie na drygigo.
- Ostavat magnitnite lenti kato edinstven nositel za prenos i obmen na danni i softwer v onezi yslovia.
- Obache v praktikata perfokartite se izpolzvaxu samo za purvichen vxod na danni i programi.
- Kakvo da se zapishe na magnitna lenta s cel distribycia (razprostranenie) na softwerniut prodykt?
- Suqestvyvat tri opcii:
- kartinkata vuv vid podxodjaq za printer,
- programata kato obekten modyl, ili
- programata v izxoden kod na PL/1.
- Kartinkata vuv vid podxodjaq za printer.
- Suvremenniut analog e fajl za kartinka vuv format bitmap (.bmp).
- Togava podoben fajl bi se polychil, ako
programata, kojato otpechatva brodiranata kartinka na trakaq printer,
ili "generiranata programa", kakto qe bude narechena tja po-doly,
se pysne, sled kato izxodut ih se prenasochi
ot printerut kum magniten nositel. - Magnitna lenta, sudurzhaqa takuv fajl, mozheshe da se zanese v dryg izchislitelen centur s mashina ЕС ЭВМ i trakaq printer kum nejų i tam da se razpechata, primerno s programata DITTO.
- Dokolkoto v kartinkata beshe vkljychen i kalendar, tozi nachin na razprostranenie ne pokrivashe cehlata fynkcionalnost.
- Nova distribycia bi bila nyzhna za vsehka nova godina.
- Programata kato obekten modyl.
- Tova beshe "legitimniut variant" za distribycia, ako ne iskate da razprostranjavate izxodniut kod na programata.
- Programata, kojato otpechatva brodiranata kartinka na trakaq printer,
ili "generiranata programa", kakto qe bude narechena tja po-doly,
e programa na ezikut za programirane PL/1. - Kompilatorut ot PL/1 obrabotva tazi programa i rezyltatut ot rabotata my e mashinen kod vuv format obekten modyl za DOS/360.
- Tozi obekten modyl mozhe da se zapishe na magnitma lenta i da se zanese v dryg izchislitelen centur s mashina ЕС ЭВМ i trakaq printer kum nejų.
- Tam tozi obekten modyl se podava na programata LNKEDT (Linkage Editor),
i LNKEDT proizvegha gotovata za izpulnenie programa,
kojato qe otpechata kartinkata, kato se pysne. - Gotovata za izpulnenie programa, predi da otpechata kartinkata, trehbva da prochete ot vxodut si godinata za kalendarut.
- Zabelezhete, che na mestoto, kudeto programata e polychena chrez distribycia po tozi variant, ne e zadulzhitelno da ima instaliran kompilator ot ezikut PL/1.
- Programata v izxoden kod na PL/1
- Programata, kojato otpechatva brodiranata kartinka na trakaq printer,
ili "generiranata programa", kakto qe bude narechena tja po-doly,
e programa na ezikut za programirane PL/1. - Tja e polychena kato rezyltat - kato izxod - ot izpulnenieto na
"generiraqata programa", za kojato qe stane dyma po-doly. - Predi da se pysne "generiraqata programa" izxodut ih trehbva da se prenasochi kum magniten nositel (ponezhe ystrojstvata za punch na perfokarti nikude ne fynkcioniraxu).
- Ako tozi nositel e magnitna lenta, to tja mozhe da se otnese v dryg izchislitelen centur s mashina ЕС ЭВМ s trakaq printer i s kompilator ot PL/1.
- Programata, kojato otpechatva brodiranata kartinka na trakaq printer,
- (.. skrij gi opciite za distribycia ..) (.. skrij go softwerut za broderiata ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Chastite na programata (.. pokazhi gi ..)
-
▼▼
Chastite na programata
(.. skrij gi ..)
- Zadachata, s kojato se behx zael po vreme na stazhut mi v turnovskiut teritorialen izchislitelen centur prez lehtoto na 1977, beshe razvojna zadacha, zadacha za proizvodstvo na softwer, it was a software development task.
- Dejnostite po tazi zadacha behxu ot dva tipa: brodirane i programirane.
- I v dvata slychaja rezyltatite su testeta perfokarti.
- Pet testeta, vsehko v edin ekzempljar.
- Kalè-testè: teste perfokarti s programata za kalendarut.
- Tazi programa izvegha kalendar za zadadena godina.
- Obiknoven kalendar po meseci i dni v sedmicata.
- Tyka nehma da se spiram na nejų.
- Podgotvjam dryga pyblikacia po kalendarnite vuprosi.
- Tova teste trehbva da stane chast ot "generiranata programa".
- Pìksel-testè: sudurzha samata "broderia" na kartinkata.
- Naj-golehmoto teste.
- Za nego izpolvax perfokarti vtora ypotreba,
- samo srednite im pozicii.
- To trehbva da vleze v "generiranata programa" vuv fòrmata na tekstovi literali (konstanti).
- Prìnter-testè: teste perfokarti s pechataqata programa.
- Tja trehbva purvo da izvede na printerut kartinkata, sled koeto da pysne i podprogramata za kalendarut.
- Tova e nachalnata chast 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, kojato trehbva da se kompilira i da se izpulni.
- Predi da se pysne tja za izpulnenie, izxodut ih trehbva da se prenasochi kum magniten nositel,
- zashoto na izxodut ih qe se polychi "generiranata programa",
kojato ot svoja strana- ili vednaga qe se kompilira i qe se izpulni, za da razpechata kartinkata i kalendarut,
- ili vednaga qe se kompilira, kato polycheniut obekten modyl se izpolzva za distribycia,
- ili puk samata "generiranata programa" qe se izpolzva za distribycia.
- "Generiraqata programa" (generatorut), kato se pysne,
- purvo izchita prìnter-testèto i go izvegha na izxodut si,
- posle chete srednite pozicii na pìksel-testèto i preobrazyva prochetenite danni v programni literali, koito praqa kum izxodut si kato chast ot "generiranata programa",
- i nakraju izchita kalè-testèto i go izvegha na izxodut si.
- Na izxodut na generatorut se polychava "generiranata programa" na ezikut PL/1.
- Virtyalno testè JCL: Tova ne e teste, a nabor ot perfokarti.
- Tezi perfokarti sudurzhat komandi na ezikut JCL.
- Razpolagat se pravilno okolo i meghy gornite chetiri testeta.
- S takava perfokarta:
- Mozhe da se pysne kompilatorut ot PL/1.
- Toky-qo kompiliranata oprograma mozhe da se svurzhe (via LNKEDT) i da se pysne.
- Mozhe vxodut i izxodut na programa, predi pyskaneto ih, da se prenasochut.
- Mozhe da se oznachi krajut na teste perfokarti,
- Mozhe da se oznachi krajut na zadanieto kum kompjyturut.
- Blagodarjų na kompjytur ne se kazva.
- Kalè-testè: teste perfokarti s programata za kalendarut.
- (.. skrij gi chastite na programata ..) (.. skrij go softwerut za broderiata ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ◄► (.. skrij go softwerut za broderiata ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų tretata beseda po spomenite mi ot 1977 ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ◄► (.. skrij jų tretata beseda za broderiata na printer po spomenite mi ot 1977 ..) (.. svij jų ..) (.. posvij ili porazguni ..) (.. razguni jų suvsem ..) .. kum nachaloto ..
►► 5. EGN-to otvutre (.. pokazhi jų chetvurtata beseda ..) (.. razgunuto ..) .. kum nachaloto ..
- Ako Vi interesyva kak e sustaveno EGN-to i v chastnost kak se presmehta kontrolnata cifra. ::2021-10-30 11:13::
▼▼ 5. EGN-to otvutre (.. skrij jų chetvurtata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
::2021-10-30 11:13::- ►► EGN-to otvun (.. pokazhi ..)
-
▼▼ EGN-to otvun
(.. skrij go predgovorut na chetvurtata beseda ..)
- Kogato prez godinite 1993..98 rabotex v Bankserviz, znaex algoritumut za opredeljane na kontrolnata cifra na EGN-to. Moja beshe programata, kojato jų proverjavashe. Suqiut algoritum se izpolzvashe i za kontrolnata cifra na oqe dva togavashni bankovi identifikatora.
- Sega na stari godini celta mi e da si pripomnjų tozi algoritum.
- Otklonenie: Edinniut graghanski nomer (EGN) e vuveden prez 1977.
- Znaete li kak izgleghashe tochnata identifikacia na chovekut-podanik predi 1977?
- Eto taka izgleghashe:
- Zhitel na edi-koj si okrug i na edi-koja si obqina.
- [Zhitel na edi-koe si naseleno mehsto.]
- Zabelezhete: zhitel, ne prosto zhivyq ili prebivavaq.
- Ime, prezime, familia.
- Data na raghane.
- Tom i stranica - otbelehzvani v togavashnite pasporti.
- EGN-to be vuvedeno zaradi kompjyturnite texnologii.
- V SAQ roljata na EGN-to izpulnjava SSN (Social Securuty Number) - nomerut za socialno osigyrjavane.
- Ima pravilo ot teoriata za bazite danni, che
- 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 raghane, polut - muzhki ili zhenski, i - edva sega naychavam tova - okrugut.
- Google me nasochi kum programa s avtor Georgi Chorbaxhijski.
- Eto go izxodniut kod na tazi programa.
- Eto jų v dejstvie.
- Programata na Georgi Chorbaxhijski e napisana na php, koeto oznachava, che tja se izpulnjava na web-survur.
- Az si nehmam mehsto na web-survur, nastojaqiut moj tekst e na blogspot.com, no tova e samo sklad za tekstove i kartinki. Nehmam pravo da pishu programi, koito da se izpulnjavat na blogspot.com.
- Imam pravo obache vutre v nastojaqiut tekst da vmuknu programa, kojato da se izpulni na Vasheto ystrojstvo, na Vashiut laptop ili na Vashiut smartfon.
- Takava programa trehbva da bude napisana na JavaScript.
- Interpretator na JavaScript e vgraden vuv vseki suvremenen browser, i na Vasheto ystrojstvo sus sigyrnost ima browser, chrez kojto Vie rovite v mrezhata internet.
- I tuj, zanimavkata mi e da prepishu ot php na JavaScript tazi chast ot programata na Georgi Chorbaxhijski, kojato pravi analiz na EGN-to.
- Programata na Georgi Chorbaxhijski ima i dryga chast - generacia na EGN-ta, tja suqo bi mogla da se prepishe ot php na JavaScript, no qe si spestjų tazi trivialnost.
- .. skrij go EGN-to otvun .. (.. skrij jų besedata za EGN-to otvutre ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Izxoden kod na programata za izchisljavane na kontrolnata cifra (.. pokazhi ..)
-
▼▼ Izchisljavaneto na kontrolnata cifra v source na JavaScript
(.. skrij ..)
- Izchisljavaneto 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 jų fynkciata na JavaScript .. (.. skrij jų besedata za EGN-to otvutre ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- Izchisljavaneto na kontrolnata cifra po modyl 11.
-
►► Programata za izchisljavane na kontrolnata cifra v dejstvie
(.. pokazhi ..)
-
▼▼ Programata za izchisljavane na kontrolnata cifra v dejstvie
(.. skrij ..)
Vuvedete nehkolko cifri, naprimer purvite devet cifri na EGN:
Kato natisnete , qe polychite kontrolnata cifra. -
►► Analiz na vuvedeno EGN
(.. pokazhi ..)
-
▼▼ Analiz na vuvedeno EGN
(.. skrij ..)
Vuvedete desette cifri na EGN-to:
- ◄► (.. skrij jų chetvurtata beseda za EGN-to ..) (.. svij jų ..) (.. posvij ili porazguni ..) (.. razguni jų ..) .. kum nachaloto ..
►► 6. Diskovata pamet na System/360 (.. pokazhi jų petata beseda ..) (.. razgunuto ..) .. kum nachaloto ..
- Kak razvitieto na xardwerut kara softweristite da zabravjųt starite problemi i da se zaxvanut s novi.
▼▼ 6. Diskovata pamet na System/360 (.. skrij jų petata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Neqo kato predgovor, neqo kato vuvedenie (.. pokazhi go ..) (.. razgunuto ..)
-
▼▼
Neqo kato predgovor, neqo kato vuvedenie
(.. skrij go ..)
(.. svij go ..)
(.. razguni go ..)
- ►► Shapka na tojaga (.. pokazhi ..)
-
▼▼
Shapka na tojaga. Dozhivehx.
(.. skrij ..)
- Prez 2018 se pensionirax, sled kato pridobix izikvaqite se stazh i vuzrast za tova.
- Pensionirax se sled 40 godini rabota kato kompjyturen programist i softweren inzhener.
- V suqnost behx mnogo dobur kodirovchik.
- Mnogo dobre sum se razbiral s kompjytrite.
- Vlizal sum im pod tenekiite - pri bitovete.
- Zaqoto te samo ot bitove razbirat.
- S kompjytri sum se zanimaval ot 70-te:
- kato ychenik v nachaloto na 70-te;
- kato stydent v sredàta na 70-te; i
- profesionalno ot krajut na 70-te.
- Edva li ima dryga texnologichna oblast s tolkova mnogo promeni.
- Ako kazhu, che prez 70-te ili 80-te sum mozhel da predskazhu budeqeto, qe izluzhu.
- (.. skrij tova, che dochakax pensia ..) (.. skrij go vuvedenieto kum petata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Kakvo go nehma dnes pri kompjytrite. I dobre che go nehma. (.. pokazhi ..)
-
▼▼
Kakvo go nehma dnes pri kompjytrite - tova qe e tazi peta beseda.
(.. skrij ..)
- Nehma bezdiskovi kompjytri.
- Nehma kanalni programi.
- Nehma potrebitelsko formatirane na diskovite pisti.
- Nehma znachenie geometriata na diskovete.
- Nehma namestvane na fajlovete vurxy diskut ot potrebiteljut.
- Nehma spodeleni cilindri.
- Nehma osigyren ot xardwerut asociativen dostup do diskut.
- Nehma si predstava sistemniut softwer za vutreshnata stryktyra na fajlovete.
- Nehma magnitni glavi otdelno ot diskovete.
- To i istinski diskove nehma veche.
- SSD-tata diskove li su?
- Vurshut rabota kato diskove. Minavat za diskove.
- (.. skrij kakvo go nehma dnes ..) (.. skrij go vuvedenieto kum petata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ◄► (.. skrij jų petata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Bezdiskovi kompjytri (.. pokazhi gi ..)
-
▼▼
Bezdiskovi kompjytri
(.. skrij gi ..)
- Srednoshkolski spomeni.
- Zavurshil sum gimnazia (11-ti klas) prez 1972 sus specialnost "izchislitel-kodirovchik".
- V 9-ti klas za kompjytrite Minsk-2 se ychexme da kodirame na mashinen ezik.
- Sega tova go pravjųt programi, narecheni asembleri.
- V dejstvitelnost, ychebnata programa beshe ostarehla.
- Togava veche nikoj ne e pishel kompjyturni programi na mashinen ezik.
- Vse pak, tezi yprazhnenia behxu polezni za mene.
- V gimnaziata ne behx chyval za diskovi ystrojstva.
- Kompjytrite Minsk-2 i Minsk-22 nehmaxu diskovi ystrojstva.
- Te maj nehmaxu nikakvi magnitni ystrojstva.
- Poveche za kompjytrite Minsk-2 - v purvata beseda.
- Prez 70-te v Bulgaria se pojavixu teritorialni izchislitelni centrove.
- V nehkoi imashe kompjytri Minsk-32, koito imaxu magnitni lenti, no ne i diskove.
- Vodixu ni na ekskyrzia v Sofia i ni pokazaxu kompjytur FACOM - s magnitni lenti, bez diskove.
- Magnitnite lenti vpechatljavaqo se vurtehxu.
- Prez 80-te kolegi ot varnensko predpriatie mi razkazaxu.
- Imali star originalen kompjytur IBM/System-360. No bez diskove.
- Znaex, che purvite modeli na IBM/System-360 nehmat diskove.
- Rabotel stabilno i bezotkazno. Vurshel im rabota.
- Ne iskali da go zamenjat s nov model, kojto nehma kak da bude dryg osven ot nekachestvenoto proizvodstvo otsam zhelehznata zavesa.
- Dokato behx v kazarmata, sum propysnul dve vazhni subitia:
- ottegljaneto na Brigitte Bardot, i
- pojavata na kompjyturnite diskove.
- Kato stydent i kato profesionalist ne sum rabotil na bezdiskovi kompjytri.
- Razni terminalni ystrojstva mozhe vutreshno da su prilichali na kompjytur.
- Obache ystrojstvo, koeto ne predlaga programistki dostup, za mene ne e kompjytur.
- Zabelezhka_1. Suvremennite smartfoni su kompjytri. Te imat disk (makar i SSD). Predlagat i programistki dostup za tozi, kojto znae kak.
- Zabelezhka_2. Naj-raznoobrazni ystrojstva mogut da sudurzhat vgraden (embedded) softwer. Kompjytri se izpolzvat za suzdavaneto my i verojatno za samoto vgraghane.
- Spomenatite kompjytri - Minsk-2, Minsk-32, Facom-230–30 (ZIT-151), nehmat magnitno-diskovi ystrojstva.
- Nehmat energo-nezavisima vunshna pamet s prehk dostup.
- Bili su v eksploatacia y nas prez 60-te i 70-te.
- Veche nehma takiva kompjytri. Slava Bogy!
- (.. skrij gi bezdiskovite kompjytri ..) (.. skrij jų petata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- Srednoshkolski spomeni.
- ►► Kanali (periferni procesori) i kanalni programi (.. pokazhi gi ..)
-
▼▼
Kanali (periferni procesori) i kanalni programi
(.. skrij gi ..)
- Diskovete su doshli y nas sus sistemata IBM/360 (ES ЭVM).
- Zabelezhka_1. V predniut razdel na tazi beseda stanu dyma, che ..
- su suqestvyvali mladshi modeli na IBM/360 bez diskove.
- Predpolagam, che kogato su planirali sistemata ES ЭVM, ne su suznavali golehmoto znachenie i izkljychitelnata vazhnost na diskovete.
- "Socialisticheska" Bulgaria izvadila kusmet.
- Zavodut za diskove go postroili v Stara Zagora.
- I tozi zavod nehkolko posledovatelni godini beshe monopolist v proizvodstvoto na magnitno-diskovi ystrojstva v prostranstvoto ot Brandenbyrgskata vrata do Vladivostok.
- I realizirashe golemi pechalbi kato monopolist.
- Dokato drygite strani ot SIV (SЭV, Comecon) ne se ysetixu.
- Kum krajut na 80-te monopolut beshe zagyben.
- Zabelezhka_2. V
purvata beseda
stanu dyma za ..
- kompjyturut Vitosha, izraboten v edin ekzempljar ot bulgarski ycheni i inzheneri.
- Operativnata my pamet (RAMut my) e bil[a] realiziran[a] na magniten baraban.
- Da, verno e, che magnitniut baraban (drum) e vid disk
(disk s mnogo glavi i samo edin cilindur),
no v kompjyturut Vitosha tozi baraban (ili disk) se e polzval kato operativna pamet, a ne kato trajna vunshna pamet. - Puk i togava - prez 70-te, behx chyval za famozniut kompjytur Vitosha, no predstava si nehmax za stroezhut my.
- Zabelezhka_1. V predniut razdel na tazi beseda stanu dyma, che ..
- Sega chipovete "centralen procesor" su evtino masovo proizvodstvo
i se vlagat v naj-razlichni izdelia.
- Vuv vseki smartfon ima edin-dva.
- Vuv vseki avtomobil ima desetina.
- Togava obache centralniut procesor na IBM/System-360 zaemashe shkaf.
- Centralniut procesor beshe smehtan za skupa chast ot oborydvaneto.
- Chast, kojato trehbva da se qadi. I da se raztovarva.
- V susedstvo sus shkafut na centralniut procesor na IBM/System-360 behxu razpolozheni perifernite procesori.
- V "naychnata" literatyra te se narichaxu "periferni procesori".
- No v dikymentaciata na IBM se narichaxu kanali (channels).
- Znaexme gi kato kanali.
- Sigyrno e imalo razlichni konfigyracii na kanalite, no az sum vighal samo edna:
- Tri kanala: 2, 1 i 0.
- Kum 2-ri kanal se vkljychvaxu magnitno-lentovite ystrojstva.
- Kum 1-vi kanal se vkljychvaxu magnitno-diskovite ystrojstva.
- A nylev kanal beshe prednaznachen za bavnata periferia: konzola, printer, chetec na perfokarti (reader) i punch (punch).
- Oborydvaneto za punchut beshe nalichno i znachi zaplateno.
- No raboteq punch ne sum vighal.
- Vuv Varna, kudeto prez 80-te vse oqe eksploatirani star originalen bezdiskov model na IBM/System-360, za koeto stanu dyma v predishniut razdel, punchut si rabotel bezotkazno.
- Pri bezdiskova sistema imashe po-malko vuzmozhnosti da se eliminira neobxodimostta ot punch.
- 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, che kanalite su procesori i izpulnjavat programi.
- Kanalnite programi su na mashinniut ezik na kanalite,
kojto e mnogo razlichen ot mashinniut ezik na centralniut procesor.
- Te se sustojųt ot 8-bajtovi komandi.
- Edna takava komanda se narichashe CCW (Channel Command Word, CeCeVè).
- Pri pisane na kanalni programi ot potrebitel mnemonichnostta e minimalna.
- Pojavata na adresnata preadresacia (na virtyalnata pamet) vuv IBM/System-370 (vizh sledvaqata beseda) napravi pisaneto na kanalni programi ot potrebitel nevuzmozhno.
- Chrez kanalna programa mozhe da se razglobi vxoden zapis ili da se sglobi izxoden zapis.
- Primer. Neka na vxodut imame zapisi po 80 bajta (perfokarti) za vseki chovek ot predpriatieto.
- Purvite pet bajta - slyzheben nomer.
- Sledvaqite deset bajta - EGN.
- Sledvaqite trideset bajta - ime, prezime, familia.
- Do krajut na perfokartata - drygi danni: otdel. adres, i t. n.
- Interesyvat ni samo slyzhebniut nomer i poleto "ime, prezime, familia".
- Chrez kanalna programa kanalut mozhe da bude instryktiran da propyska dannite, koito ne su ot interes - da ne se zaema operativna pamet za tehx.
- Chrez kanalna programa kanalut mozhe da bude instryktiran dannite, koito su ot interes, da budut razpolozheni v pametta v ykazan red, a ne nepremenno kakto su vuv vxodniut potok.
- Chrez kanalna programa mozhe 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 izvurshvat s posrednichestvo na xardwerni ystrojstva, narecheni kontroleri.
- Kontrolerut znae osobenostite na suotvetnoto periferno ystrojstvo.
- Kontrolerut e nastroen i kum xardwernite interfejsi na suotvetniut kompjytur.
- Pri kompjytrite ot sistemata IBM/360 (kakto i pri IBM/370), vseki kontroler beshe svurzan s nehkoj kanal (s nehkoj periferen procesor).
- Pri vsichki po-moderni kompjytri kontrolerite su svurzani s centralniut procesor, a povecheto ot tehx imat dostup i do operativnata pamet (do RAMut).
- Nehma veche kanali (periferni procesori).
- Nehma veche i kanalni programi. Slava Bogy!
- Suvremennite procesori su tolkova burzi, che nehma zaqo da se qadjųt i da se raztovarvat.
- I ako trehbvat poveche ot edin, slagat se tolkova, kolkoto e nyzhno.
- Zaqo tezi procesori trehbva da imat tolkova razlichni arxitektyri i razlichni mashinni ezici?
- Sega suqestvyvat obosobeni chasti na sistemniut softwer, narecheni
drajveri (drivers).
- Vsehko periferno xardwerno ystrojstvo (drive) si vurvi v komplekt s drivers (drajveri) za vsehka kompjyturna 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 polychava otchet ot kontrolerut za izpulnenieto na zadachata.
- Drajverut polychava otchet ot kontrolerut za tekyqoto sustojanie na ystrojstvoto.
- Togava na nivoto na segashnite drajveri imashe sistemen softwer, narechen metodi na dostup (access method).
- Kanalnite programi behxu chasti ot metodite na dostup.
- Imaxme si rabota s tri metoda na dostup:
- posledovatelen (sequential),
- prehk (direct), i
- indeksno-posledovatelen (indexed sequential, ISAM).
- (.. skrij gi kanalnite programi ..) (.. skrij jų petata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- Diskovete su doshli y nas sus sistemata IBM/360 (ES ЭVM).
- ►► Potrebitelskoto formatirane (.. pokazhi 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 nalagashe da formatirat disketi, no togava se prilagashe fabrichno formatirane, standartno formatirane.
- Pri formatirane na disketa potrebiteljut ne ykazvashe kak tja da bude formatirana.
- Za da se razbere problemut s formatiraneto na diskovite pisti,
(.. pokazhi ..)
(.. pokazhi ..) purvo trehbva da imame predstava za magnitnite lenti. - Za da se razbere problemut s formatiraneto na diskovite pisti,
(.. skrij ..)
purvo trehbva da imame predstava za magnitnite lenti. (.. skrij ..)- Ponezhe edna neformatirana pista na magniten disk e kato magnitna lenta. E da, dosta po-kusa.
- Chovek mozhe da vidi i dazhe da prochete zapis vurxy perfolenta ili perfokarta.
Chovek mozhe da vidi barkod ili QR-kod.
No ne i magniten zapis. Chovek nehma setiva za tova. - Standartnite magnitni lenti ot 70-te i 80-te behxa devet-pistovi (devet-putechkovi, 9 tracks).
- Tova, koeto se vighashe kato magnitna glava na ystrojstvoto, v dejstvitelnost beshe byketche ot devet glavi za zapis i chetene.
- Otklonenie_1. Osem pljys edno e devet.
- Ili brojut na pistite pri standartnite magnitni lenti beshe devet, zaqoto v indystriata veche beshe ystanoveno ponjatieto bajt kato redica ot osem bita.
- Ili ponjatieto 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), mozhete da si predstavjate magnitnata lenta kato devet-putechkova perfolenta.
- Na vsehka pozicia - 0 ili 1 - ima ili nehma dypka.
- Na vseki red - devet pozicii, devet bita.
- Devetiut bit e za kontrol po nechetnost (odd parity).
- Ako na redut, kojto e sustaven ot devet bita, nehma 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 putechkata za kontrol po nechetnost.
- Brojut na edinicite (na dypkite) na edin red trehbva da e necheten.
- Redovete, kudeto ima neqo zapisano, trehbva da su grypirani v zapisi (records).
- Ponehkoga vmesto zapis (record) se kazvashe blok (block).
- Imashe ogranichenia za dulzhinata na edin zapis.
- Ystrojstvoto se surdeshe, ako zapisut e po-kus ot 18 bajta.
- Ne se priemaxu i tvurde dulgi zapisi, zaqoto lentata mozhe mnogo da se razpune na takova mehsto pri skorostta na chetene.
- Ystrojstvoto ne mozhe da si pochiva vutre v edin zapis (vutre v edin blok).
- Osven tova, na samiut kraj na blokut ima edin ili dva kontrolni bajta.
- Ystrojstvoto si pochiva meghy zapisite (meghy blokovete).
- Za celta meghy zapisite se ostavja praznina (gap), dostatuchno dulga, taka che da dade vuzmozhnost na ystrojstvoto da spre meghy dva zapisa i da mozhe sled tova da yskori do skorost za chetene predi dostigane na sledvaqiut blok.
- Otklonenie_2. Chist spirt za pochistvane na magnitnite glavi.
- Glavite na magnitno-diskovite ystrojstva suqo se zamursjavaxu, no pochistvaneto im iziskvashe specialna kvalifikacia i se praveshe pri redovna xardwerna profilaktika.
- A da chistjų glavite na magnitno-lentovite ystrojstva se e nalagalo i na mene.
- Chist spirt vinugi beshe na razpolozhenie za celta v nehkoj shkaf ili chekmexhe - znaeshe se kude, zaedno s chisto parcalche.
- Imashe edno bulgaro-suvetsko predpriatie na sofijskata ylica Aleksandur Stambolijski.
- Tam doshul na rabota novo-naznachen direktor - prjamo iz Moskvы ili prjamo iz Minska - ne znajy tochno.
- I purvata my rabota bila da proveri kak se suxranjava chistiut spirt, nyzhen za pochistvane na magnitnite glavi.
- Nalozhilo se da my objasnjavat, che nikoj v Bulgaria nehma da pie chist spirt pri nalichieto na tolkova mnogo spirtni napitki.
- Rolkite s magnitni lenti se proizveghaxu v tri standarni dulzhini: 600ft, 1200ft i 2400ft.
- Naj-golemite rolki ne se subiraxu v damska chanta.
- Arxiv na pulen 20-megabajtov diskov paket IBM/2314 (ES-5061) ne se subirashe na po-malka rolka.
- No mozheshe da se slozhi vtora rolka.
- Nachaloto i krajut na lentata se markirat sus svetlo-otrazitelni staniolcheta, koito datchikut na ystrojstvoto zasicha.
- Sled staniolcheto v krajut na lentata trehbva da ima mehsto za oqe nehkolko zapisa (do shest), za da zavurshi fajlut normalno.
- Magnitnata lenta e s posledovatelen dostup. Strogo posledovatelen.
- Ne mozhe da se zadade komanda "prevurti 100 ft (fyta) i pochni da chetesh (ili da pishesh) ottam!"
- Nehma zhalon za 100 ft (fyta).
- Obache mozhe da se zadade komanda "propysni 100 zapisa (100 bloka) i pochni da chetesh (ili da pishesh) ottam!"
- Ystrojstvoto ne mozhe da propysne 100 zapisa, bez posledovatelno da gi prochete.
- Da gi propysne - znachi prochetenite danni da ne se praqat kum operativnata pamet.
- Nared s obiknovenite zapisi, imashe i specialen osoben zapis vurxy magnitnata lenta, narechen TM (tape mark).
- Ystrojstvoto izpulnjavashe takiva komandi:
- Vzemi ot tozi adres na fizicheskata pamet tolkova posledovatelni bajta i gi zapishi vurxy lentata na tekyqata pozicia.
- Zapishi TM vurxy lentata na tekyqata pozicia.
- Propyskaj vsichki zapisi vurxy lentata, dokato stignesh TM.
- Propyskaj zapisi vurxy lentata, dokato stignesh TM, no naj-mnogo tolkova zapisa.
- Procheti ot tekyqata pozicia zapis, dokladvaj dali e TM, i ako ne e, dokladvaj dulzhinata my, a dannite zapishi po tozi adres na fizicheskata pamet.
- Milo ystrojstvo, znam, che toky-qo si prochelo TM. Vurni se, moljų, edna stupka nazad, taka che sledvaqiut zapis da pokrie tape-mark-erut.
- Rewind! Prevurti lentata i jų pozicioniraj v nachaloto, na nachalnoto staniolche.
- I tova su vsichki komandi, koito ystrojstvoto izpulnjava.
- Pri vsehka komanda, ako ystrojstvoto zaseche krajnoto staniolche, to e dluzhno da dokladva, che lentata e na privurshvane.
- Na purvo priblizhenie mozhe da se prieme, che fajlut vurxy magnitna lenta
predstavljava redicata ot zapisi meghy dva tape-mark-era.
- Dva posledovatelni tape-mark-era (bez drygi zapisi meghy tehx - prazen fajl) oznachava, che po-natatuk na lentata nehma niqo zapisano.
- (.. skrij gi magnitnite lenti ..) (.. skrij go potrebitelskoto formatirane ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- I tuj, magnitnata lenta e sus strogo posledovatelen dostup i bez predvaritelno formatirane.
- Pri vsehka operacia za zapis vurxy lentata mehstoto na zapisut "se formatira" nanovo.
- Magnitno-diskovite ystrojstva predostavjat prehk dostup do vseki zapis vurxy diskut.
- Za celta zapisite trehbva predvaritelno da su suzdadeni.
- Suzdavaneto na zapisite vurxy diskovata pista se naricha 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, vsichko, koeto e bilo zapisano na nejų predi tova, bezvuzvratno se gybi.
- Pri sistemite IBM/360 i IBM/370 vsehka diskova pista mozhe da se formatira otdelno ot drygite pisti,
i to po ykazan ot potrebiteljut nachin.
- Formatiraneto na edna pista ne zasehga drygite pisti.
- Razlichnite pisti mogut da imat razlichno formatirane.
- Razlichnite pisti mogut da imat razlichno formatirane, izvursheno po razlichno vreme.
- Razlichnite pisti mogut da imat razlichno formatirane, zajaveno ot razlichni potrebiteli.
- Potrebitelskite zajavki za formatirane se ykazvaxu chrez JCL (Job Control Language).
- Pri starite diskovi paketi se vighashe proceput, prez kojto se prokradva svetlinata, kojato ystrojstvoto zasicha.
- Tozi procep markira nachaloto i krajut na vsehka pista.
- Proceput e edin za celiut diskov paket.
- Pistata predstavljava okruzhnost. Tja zapochva i svurshva na mehstoto, markirano ot proceput.
- Tova e fabrichna markirovka.
- Formatiraneto si ima rabota s vutreshnostta na pistata.
- Kude tja pochva i kude svurshva - tova e fabrichno opredeleno.
- I tuj, vuv vutreshnostta na diskovata pista ima zapisi (records) ili blokove (blocks).
- Kolko zapisa i kolko bajta da e edin zapis - kakto e ykazano v zajavkata za formatirane na pistata.
- Edin zapis vurxy diskut se sustoi ot tri chasti - zhalon, indeks i danni.
- Meghy tezi chasti ima praznini.
- Celta im e da dadut vreme na "elektronikata" da reshi dali zapisut e ot interes v dadeniut moment.
- Zhalonut. Sudurzhanieto my e slednoto:
- nomerut na cilindurut (pri IBM-2311 i IBM-2314: chislo ot 0 do 199),
- nomerut na diskovata povurxnost (surface) ili nomerut na pistata vutre v cilindurut (pri IBM-2314: chislo ot 0 do 19), i
- nomerut na zapisut (na blokut) vurxy pistata.
- Gornite tri chisla sustavljavat diskoviut adres na blokut (na zapisut).
- Osven diskoviut adres, v zhalonut e ykazana dulzhinata na indeksut i dulzhinata na dannite.
- Ako dulzhinata na indeksut e nyla, indeks nehma.
- Dulzhinata na dannite ne mozhe 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 chast ot indeksno-posledovatelen fajl, v blokut nehma indeks.
- Dannite. Dulzhinata na blokut s danni se zadava pri formatirane.
- Blokovete danni vurxy edna pista obiknoveno su ednakvo dulgi.
- Zaqoto nehma lesen nachin da se ykazhe drygo.
- Ako magnitno-diskovoto ystrojstvo polychi komanda ..
- za pozicionirane (za chetene ili za pisane) na opredelen diskov adres,
- sustaven ot nomer na cilindur, nomer na povurxnost i nomer na blok,
- ystrojstvoto purvo pozicionira (s pridvizhvane)
- grebenut s magnitnite glavi na ykazaniut cilindur
- i vednaga identificira ykazanata pista.
- No ne chaka da mine fizicheskiut svetlinen marker za nachaloto na pistata.
- Vednaga chete vseki sreqnut zhalon i sravnjava diskoviut adres.
- Ako e tozi, kojto e ykazan v komandata,
- znachi ystrojstvoto e na tochnoto mehsto za chetene ili za pisane.
- Zabelezhka_1: Pri asociativniut dostup vmesto diskov adres v komandata se dava tursen indeks i ystrojstvoto po podoben nachin sravnjava indeksi, a ne adresi.
- Zabelezhka_2: Ako zhalon s turseniut adres ne se nameri vurxy identificiranata pista, ima vuzmozhnost pri formatirane da e bilo preceneno, che suotvetnata chast ot pistata e povredena i zapisut da e bil prenasochen kum rezervna pista. Tam - na rezervnata pista, zhalonut sudurzha originalniut diskov adres.
- Kak da e.
- Otdavna nehma potrebitelskoto formatirane. Slava Bogy!
- Nego go imashe samo v sistemite IBM/360 i IBM/370.
- Pri vsichki drygi kompjytri diskovite pisti se formatirat ednakvo i tova ne mozhe da bude promeneno ot potrebiteljut.
- Vinugi bez indeks i v blokove po 512 bajta (po polovin kilobajt).
- Za vseki tip disk brojut na blokovete vurxy edna pista e fiksiran i se znae.
- (.. skrij go potrebitelskoto formatirane ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų petata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- Potrebitelskoto formatirane na diskovite pisti sum go sreqal samo v sistemite IBM/360 i IBM/370.
- ►► Geometriata na diskut (.. pokazhi jų geometriata ..)
-
▼▼
Geometriata na diskut
(.. skrij jų geometriata ..)
- Stanu dyma, che osven v sistemite IBM/360 i IBM/370,
- pri drygite kompjytri vsichki pisti na edin disk sudurzhat
- 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 rabotjųt s kompjytur PDP-11 (SM-4),- imat po 10 (deset) bloka na vsehka 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, pochti 20 megabajta.
- Ako znaem brojut na cilindrite (v primerut 200),
- brojut na pistite na edin cilindur (brojut na diskovite povurxnosti, v primerut 20),
- i brojut na blokovete vurxy edna pista (v primerut 10),
- znachi znaem geometriata na diskut.
- V ysloviata na primerut, ako znaem adresut na blok vurxy diskut
- razpolozhen na cilindur nomer CylNo (chislo ot 0 do 199),
- povurxnost nomer SurfNo (chislo ot 0 do 19), i zapis nomer RecNo (chislo ot 0 do 9),
- to po formylata ( ( ( CylNo * 20 ) + SurfNo ) * 10 ) + RecNo
- qe polychim chislo ot 0 do 39999.
- Tova chislo se naricha nomer na diskov blok.
- Imenno to se polzva veche za adresirane na diskovata pamet.
- I obratno, pak v ysloviata na primerut, ako znaem
- nomerut na diskov blok - chislo ot 0 do 39999, koeto qe oznachim BlockNo,
- kato razdelim BlockNo na brojut na blokovete na pista (10),
- qe polychim ostatuk RecNo (chislo ot 0 do 9) i chastno TrackNo.
- Sled tova, kato razdelim TrackNo na brojut na diskovite povurxnosti (20),
- qe polychim ostatuk SurfNo (chislo ot 0 do 19) i chastno CylNo - nomerut na cilindurut.
- V ysloviata na primerut, kato izkljychim diskoviut drajver,
ostanulata chast 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 mozhe 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. - Vizhte predishniut razdel za formatiraneto.
- zaqoto xardwerut e vzet ot IBM/System-360 i
- Obache ako xardwerniut komponent "diskov kontroler"
e proektiran taka, che da znae geometriata na diskut, to na nikoj softweren komponent ne my trehbva da jų znae.
- Softwerut trehbva da znae obqiut broj na diskovite blokove, koito po razmer su standartni.
- Softwerut raboti samo s nomera na diskovi blokove, koito su chisla v pluten diapazon ot nyla nagore.
- Softwerut ne se interesyva veche ot geometriata na diskut. Slava Bogy!
- A puk pri ystrojstvata ot tip SSD geometriata na diskut veche nehma nikakuv smisul.
- (.. skrij jų geometriata na diskut ..) (.. skrij jų petata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- Stanu dyma, che osven v sistemite IBM/360 i IBM/370,
- ►► Razpolozhenieto na fajlovete vurxy diskut - zadacha na potrebiteljut (.. pokazhi go ..) (.. razgunuto ..)
-
▼▼
Razpolozhenieto na fajlovete vurxy diskut - zadacha na potrebiteljut
(.. skrij go ..)
(.. svij go ..)
(.. razguni go ..)
- Pri IBM/System-360 edna pista vinugi se naznachava na edin fajl cehlata.
- Ne e vuzmozhno chast ot edna pista da prinadlezhi kum edin fajl, a dryga chast ot suqata pista - kum dryg fajl.
- Pistata e naj-malkata edinica - naj-malkata chast ot diskut - kojato mozhe da bude naznachena kum fajl.
- Ot dryga strana, edin fajl mozhe da zaema nehkolko pisti.
- Dazhe mnogo pisti.
- I tezi pisti mozhe da ne su susedni.
- Neqo poveche: edin fajl mozhe da zaema pisti ot nehkolko diska.
- Takova neqo maj nehma v suvremennite fajlovi sistemi -
- ot kakuv zor edin fajl qe zaxapva i dryga fajlova sistema.
- Edin disk ot gledna tochka na fajlovoto si sudurzhanie se narichashe tom (volume).
- Toj si imashe tablica na sudurzhanieto VTOC (volume table of contents).
- Samo edna na tom - edna na disk - samo edna "direktoria".
- Tja donehkude e predshestvenik na setneshnite direktorii.
- Vseki fajl na diskut beshe 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 produlzhenie na dryg disk i dali tova tyka e produlzhenie.
- I oqe danni za fajlut - za vutreshnata my stryktyra,
- na koeto e posveten sledvaq razdel.
- S tomove i fajlove se operirashe na ezikut JCL (Job Control Language).
- Ako e nyzhen dostup do suqestvyvaq fajl, ykazva se imeto na fajlut i sudurzhaqia̋t go tom, i sistemniut softwer go namira.
- Obache kogato se suzdava nov fajl, sistemata DOS/360 ne mozheshe sama da go slozhi nehkude.
- Pri suzdavane na nov fajl pod DOS/360 potrebiteljut trehbvashe javno da ykazhe na koi pisti fajlut da bude razpolozhen.
- Slava Bogy! Takova neqo veche nehma.
Pri vsichki novi sistemi sistemniut softwer sam namira kude da razpolozhi nov fajl. - Da zabravim za sistemite IBM/360 i IBM/370.
- Tam potrebiteljut na fajlut, kum kojto fajl e naznachena diskova pista, otgovarja za formatiraneto ï - na kolko bloka po kolko bajta pistata da se razdeli.
- V po-novite kompjyturni sistemi nehma takova neqo kato potrebitelsko formatirane.
- V po-novite kompjyturni sistemi vsehka pista e bila podlozhena na standartno formatirane -
- fiksiran broj blokove po polovin kilobajt (512 bajta).
- V po-novite kompjyturni sistemi na fajlovete se naznachavat otdelni blokove,
- a ne nepremenno celi pisti.
- Geometriata na diskut veche nehma znachenie.
- Ima nachin - ima mexanizum, po kojto za vseki fajl da se ykazhe koi diskovi blokove toj zaema i v kakuv red.
- Tova opisanie na razpredelenieto na diskovite blokove po fajlove se sudurzha v specialen fajl - naj-vazhniut fajl na diskut, narechen indeksen fajl.
- Blokovete se identificirat ili vse edno se adresirat s nomerata si (BlockNo).
- Nomerut na blokut (ili vse edno adresut my) e chislo v pluten interval ot nyla nagore.
- V nehkoi diskovi fajlovi sistemi se razpredeljat ne standartni blokcheta po polovin kilobajt (512 bajta), a grypichki or susedni blokcheta (1024 bajta, 2048 bajta, 4096 bajta).
- Ponehkoga tova e suglasyvaneto sus sistemata na virtyalnata pamet (vizhte shestata beseda).
- Otklonenie.
Obqo opisanie na diskova fajlova sistema
(.. pokazhi go otklonenieto ..)
(.. pokazhi ..) s avtomatichno poblokovo naznachavane na diskovoto prostranstvo. - Otklonenie.
Obqo opisanie na diskova fajlova sistema
(.. skrij go otklonenieto ..)
s avtomatichno poblokovo naznachavane na diskovoto prostranstvo. (.. skrij ..)- wiki/List_of_file_systems Ne stava dyma za IBM/360 ili IBM/370.
- V osnovata e indeksniut fajl - naj-vazhniut fajl vurxy diskut.
- Ima i drygi fajlove - vazhni chasti 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 nehkakvo ime.
- Toest, vseki ot gorespomenatite fajlove si ima fiksiran nomer - nehkakvo malko chislo.
- Suzdavaneto na fajlovata sistema - suzdavaneto na tezi osnovni fajlove - se naricha inicializacia, a ne formatirane.
- Formatiraneto e standartno, fabrichno i ne e problem na softwerut.
- Indeksniut fajl se sustoi ot plutno razpolozheni elementi (entries)
s ednakva fiksirana dulzhina.
- Tezi elementi se nomerirat s posledovatelni chisla ot nyla nagore.
- Dostuput do element na indeksniut fajl e po nomer.
- Dostuput do element na indeksniut fajl e burz - mehstoto my se izchisljava lesno.
- Edin element na indeksniut fajl:
- mozhe da bude svoboden, ili
- mozhe da sudurzha opisanie na fajl, ili
- mozhe da sudurzha produlzhenie 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
sudurzha opisanie na fajl, togava:
- Nomerut na tozi element se polzva kato nomer na fajl.
- Ne samo za gore-spomenatite "vazhni" fajlove, no i za vseki fajl.
- Opisanieto na edin fajl,
sudurzhaqo se v element ot indeksniut fajl, se sustoi ot slednite chasti:
- Neformalna chast. Naprimer ime i razshirenie.
- Ne e ot interes v tozi kontekst.
- Zatova tazi informacia e neformalna.
- Tiput na fajlut. Vazhno.
- Obiknoven fajl (suzdaden ot potrebitel).
- Direktoria (directory, folder).
- "Vazhen" fajl izmeghy gorespomenatite, poddurzhan ot fajlovata sistema i skrit ot potrebitelite.
- Specifikacia na pravata za dostup. Vazhno.
- Koj ima pravo na dostup do fajlut.
- I kakuv vid dostup my se razreshava.
- Datirovki. Timestamps. Vazhno.
- Vremeto na suzdavane na fajlut.
- Vremeto na poslednoto my izmenenie.
- Razpolozhenieto na fajlut vurxy diskut. Naj-vazhnoto.
- Na koi diskovi blokove e razpolozhen fajlut.
- Posledovatelno se opisvat vsichki fragmenti na fajlut.
- Poreden fragment ot tolkova diskovi bloka, zapochvaq ot tozi diskov blok.
- Ako fajlut e silno fragmentiran, opisanieto my trehbva da produlzhi v dryg element na indeksniut fajl.
- Ako element na indeksniut fajl sudurzha produlzhenie na opisanieto na fajl, nomerut my ne se polzva kato nomer na fajl.
- Neformalna chast. Naprimer ime i razshirenie.
- Samiut indeksen fajl kato "vazhen" fajl si ima fiksiran nomer (nyla ili edno) i chrez svojut si element s tozi nomer sam opisva razpolozhenieto si.
- Na fiksirano mehsto v nachaloto na vseki element ot indeksniut fajl
ima chislo, narecheno posledovatelen kontrolen nomer.
- Vseki put, kogato tozi element biva naznachavan da sudurzha opisanieto na nehkoj fajl, tova chislo - posledovatelniut kontrolen nomer, se yvelichava s edinica.
- Kum samiut fajl, chieto opisanie se sudurzha v elementut, se obruqame ne prosto chrez nomerut na elementut, a chrez dvojka nomera: nomerut na elementut i posledovatelniut kontrolen nomer.
- Taka se pravi, za da se obezsiljųt obruqenia kum stari veche iztriti fajlove, koito su polzvali za opisanieto si suqiut element ot indeksniut fajl.
- Svobodnite diskovi blokove se oformjat kato otdelen "vazhen" fajl.
- "Razpolozhenieto" my se opisva chrez indeksniut fajl, podobno na vseki dryg fajl.
- Samo fajlovata sistema ima dostup do nego, i to po nomerut my.
- Ako nehkoj obiknoven fajl bude iztrit ot potrebiteljut, negovite blokove se dobavjat kum tozi fajl.
- Tozi fajl biva pretursvan ot razni programi za vuzstanovjavane na iztriti danni.
- Povredenite (loshite) diskovi blokove se oformjat kato dryg otdelen "vazhen" fajl.
- "Razpolozhenieto" my se opisva chrez 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 oformja kato "vazhen" fajl.
- No tova ne e zadulzhitelno za samata fajlova sistema.
- Pri nachalno zareghane (boot) purviut softwer e s minimalni ymenia.
- Za ne go karame da se rovi po direktorii, oformjame tova, koeto trehbva da se prochete pri nachalno zareghane ot diskut v operativnata pamet, kato fajl s maluk fiksiran nomer.
- Prosto za ylesnenie.
- Glavnata direktoria (master directory) e vtoriut po "vazhnost" fajl
sled indeksniut fajl.
- Ot "vazhnite" fajlove, samo toj se vigha ot potrebitelite.
- Drygite "vazhni" fajlove su izkljychitelno za "slyzhebno polzvane".
- Makar da e "vazhen" fajl, dostupen po fiksiran maluk nomer, glavnata direktoria se vigha ot potrebitelite, zaqoto e direktoria (directory, folder).
- Fajlovete, koito potrebitelite vighat 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 nehkoj element na indeksniut fajl.
- Nomerut na tozi element slyzhi za nomer na fajlut.
- Dvojkata chisla nomerut na elementut ot indeksniut fajl i posledovatelniut kontrolen nomer slyzhut za prepratka (za obruqenie) kum fajlut.
- Tova vazhi za vseki fajl: obiknoven fajl, direktoria ili puk "vazhen" fajl.
- Fajlovata sistema obiknoveno ne obruqa vnimanie na vutreshnoto sudurzhanie na
obiknovenite fajlove.
- S obiknovenite fajlove se zanimava potrebitelskiut softwer.
- Obache direktoriite se poddurzhat ot fajlovata sistema.
- Fajlovata sistema znae vutreshnata stryktyra na direktoriite.
- A tazi stryktyra e slednata:
- [tochka kato ime na fajl], prepratka kum samata direktoria, kojato si e fajl
- [dve tochki kato ime na fajl], prepratka kum direktoriata na po-gorno jerarxichno 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 obxoghane na jerarxiata ot direktorii.
- Za imeto na fajlut mozhe da ima nehkakvi ogranichenia, mozhe i da nehma.
- Prepratkata kum fajlut predstavljava dvojkata chisla nomerut na elementut ot indeksniut fajl i posledovatelniut kontrolen nomer.
- Direktoriite suzdavat jerarxichna stryktyra na fajlovata sistema.
- Potrebitelite imat predstava za nejų.
- Edin potrebitel ili suzdava nov obiknoven fajl, ili suzdava nova direktoria.
- Kakvoto i da suzdava, potrebiteljut trehbva da go slozhi v nehkoja suqestvyvaqa direktoria.
- Potrebiteljut ne mozhe da suzdava fajlove izvun suqestvyvaqite direktorii.
- (.. skrij go otklonenieto ..)
- (.. skrij go razpredeljaneto na diskovoto prostranstvo ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų petata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- Pri IBM/System-360 edna pista vinugi se naznachava na edin fajl cehlata.
- ►► Spodeleni cilindri (.. pokazhi gi ..)
-
▼▼
Spodeleni cilindri
(.. skrij gi ..)
- Diskovata pamet na System/360: tova e zaglavieto na tazi peta beseda.
- Pri tova polozhenie ne bi bilo redno da podminu takava texnika kato spodelenite cilindri (shared cylinders).
- Ako pri nehkoja obrabotka ychastvat dva fajla, naprimer vxoden i izxoden, i dvata na edin i suq disk, pri onova bedno byferirane zaradi onazi oskudica na operativna pamet, beshe vuzmozhno obrabotkata da se bavi zaradi dvizhenieto na diskovite magnitni glavi meghy cilindrite, kakto i da se prichini vurxovo natovarvane na mexanizmite na diskovoto ystrojstvo.
- V takiva slychai se nalagashe da se prilaga texnikata spodeleni cilindri.
- Kakto be kazano v predishniut razdel, potrebiteljut (programistut, texnologut na obrabotkata) trehbva da ykazva kude po diskut da se razpolagat fajlovete.
- Pri texnikata spodeleni cilindri dolnite pisti na nehkolko posledovatelni cilindura se naznachavat na ediniut fajl, a gornite pisti - na drygiut.
- Taka se namaljava dvizhenieto na grebenut s magnitnite glavi.
- Obrabotkata mozhe da mine nehkolko puti po-burzo, bez trehsuk i vibracii.
- Otdavna veche diskovoto prostranstvo se razpredelja avtomatichno.
Geometriata na diskut otdavna nehma znachenie.
Oskudicata na operativna pamet e preodolehna.
Osigyrjava se podxodjaqo byferirane na operaciite za vxod i izxod.
Nehma veche nygha ot texnikata sus spodelenite cilindri. Slava Bogy! - (.. skrij gi spodelenite cilindri ..) (.. skrij jų petata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Asociativen dostup do diskut (.. pokazhi 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 polozhenie ne bi bilo redno da podminu
- indeksno-posledovatelnite fajlove i
- indeksno-posledovatelniut metod na dostup (ISAM: indexed-sequential access method).
- Suvsem normalno e kompjytrite da predlagat i da osuqestvjavat asociativen dostup.
- Naprimer, da se namerjųt dannite za chovek sus zadadeno EGN.
- Ili da se nameri fajl na diskut sus zadadeno ime.
- No tova se osuqestvjava ot softwerut.
- Pri indeksno-posledovatelniut metod na dostup obache
asociativniut dostup e podpomognut ot xardwerut.
- Pri sistemite IBM/360 i IBM/370 diskovite pisti se formatirat spored iziskvaniata na potrebiteljut.
- Pistite na indeksno-posledovatelniut fajl, kojto qe sudurzha danni za xora i kojto qe ima EGN-to za kljych, qe budut formatirani taka, che meghy zhalonut i blokut s danni da ima indeks s dulzhina 10 bajta.
- Zapisite v indeksno-posledovatelniut fajl su sortirani (podredeni) po kljych, v slychajut po EGN.
- Ystrojstvoto mozhe da polychi komanda "tursi na tazi pista zapis s tova sudurzhanie na indeksut".
- Ystrojstvoto qe dokladva "indeks s tova sudurzhanie toky-qo minu pod mojata glava".
- I qe polychi nova komanda "procheti blokut s danni, kojto sledva".
- Kolkoto i burzo da se vurti diskut, komynikaciata ystrojstvo-kontroler-kanal e po-burza.
- Kogato blokut s danni stigne chetjaqata glava na ystrojstvoto, to veche qe znae, che trehbva da gi prochete dannite.
- Qe znae, che dannite za chovekut sus zadadenoto EGN su namereni.
- Mozhe i drygo da se slychi.
- Ystrojstvoto mozhe da dokladva "indeks sus sudurzhanie, po-golehmo ot tursenoto, preminu pod mojata glava".
- Togava kanalut i kanalnata my programa qe si napravjųt izvodut, che na tazi pista takuv zapis nehma.
- Kum edin indeksno-posledovatelen fajl e vuzmozhen i
posledovatelen dostup.
- Programata qe polychi posledovatelno edin sled dryg vsichki zapisi ot fajlut (naprimer za vsichki xora, za koito ima danni vuv fajlut), i to sortirani po kljych (podredeni po EGN).
- Vse edno, che programata chete sortiran fajl ot magnitna lenta.
- Obiknoveno, edin indeksno-posledovatelen fajl se pulni
pri posledovatelen dostup.
- Indeksno-posledovatelniut fajl trehbva predvaritelno da e suzdaden na diskut s nyzhnoto formatirane.
- Zapisite predvaritelno se podgotvjat kato posledovatelen fajl na magnitna lenta.
- Sortirani! Podredeni po kljych.
- Ako zapisite, koito qe zapulnjųt indeksno-posledovatelniut fajl, ne su predvaritelno sortirani, rezyltatut mozhe da e otchajvaq.
- Sled purvonachalnoto zapulvane na indeksno-posledovatelniut fajl, novopostupvaqite zapisi si namirat mehstoto v podredbata po kljych, no svaljat efektivnostta - i zaemat poveche mehsto, i se namirat po-trydno.
- Zatova ot vreme na vreme edin indeksno-posledovatelen fajl trehbva da se presuzdava.
- Ima i drygi slychai, kogato pri sistemite IBM/360 i IBM/370 se predostavja
asociativen dostup do diskut.
- Dali v tezi slychai se polzva specialna podkrepa ot xardwerut, kakto pri indeksno-posledovatelnite fajlove, ne znajų.
- Purviut takuv slychaj e samata tablica na sudurzhanieto na diskut, VTOC (Volume Table Of Contents).
- Sistemata namira suqestvyvaq diskov fajl po zadadeno ime na fajlut, preravjajki VTOC-ut.
- Vtoriut takuv slychaj (.. pokazhi go ..) su taka narechenite biblioteki (libraries).
- Vtoriut takuv slychaj
su taka narechenite biblioteki (libraries).
(.. skrij gi bibliotekite ..)
- Imashe programa bibliotekar (librarian), kojato poddurzhashe diskovi fajlove s bibliotechna stryktyra - biblioteki.
- Edna biblioteka sudurzha modyli, na koito mozhem da gledame kato na po-malki fajlcheta.
- Chrez bibliotekarjut, edin modyl ot biblioteka mozheshe da bude nameren po negovoto ime.
- Imeto na modyla ne mozheshe da e po-dulgo ot 8 bajta.
- Na potrebitelite se davashe samo CLI-dostup do bibliotekite - chrez ezikut JCL (Job Control Language).
- Sistemni programi - kompilatori, asembler, tekstov redaktor, LinkageEditor, Loader i drygi, polzvaxu API-ta kum bibliotekarjut - mozhexu da go izvikvat vutreshno, no tova ne beshe dokymentirano.
- Iz razni knigi sum sreqal da se obsugha bibliotechen metod na dostup, no ne i vuv firmenata dokymentacia.
- Mozhe bi zaqoto vuv firmenata dokymentacia ponjatieto metod na dostup oznachavashe kanalni programi, a bibliotekarjut mozhe da ne e polzval takiva.
- V sistemata DOS/360 suqestvyvaxu tri vida biblioteki:
- SLB: source code library: biblioteka ot izxodni programni kodove.
- Takava biblioteka imashe razdeli s ednobykveni oznachenia.
- Pri tursene na daden modyl trehbvashe da se ykazhe razdelut.
- Naprimer, razdel 'A' beshe prednaznachen za asemblerski programi (za makrodefinicii).
- A puk razdel 'P' - za programki na PL/I.
- Bibliotekarjut ne proverjavashe sintaksisut na tekstovete kato programen kod.
- Mozheshe da se slagat proizvolni tekstove, stiga da ne gi podavate na asembler ili na kompilator.
- Naprimer, mozhete da otvorite razdel 'L' i tam kato modyli da slagate tekstove na ljybovni pisma.
- Samata operacionna sistema DOS/360 se razprostranjavashe v source code vuv vid na SLB, sudurzhaqo makrodefinicii.
- RLB: relocatable library: biblioteka ot obektni modyli.
- Rezyltatut ot asembler ili kompilator se naricha 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 narichat modyli (ili obektni modyli).
- Fynkcionalnostta na nekogashnite RLB-ta i dosega se pazi edno kum edno vuv fajlove, narichani statichni biblioteki.
- V sistemata Windows statichnite biblioteki imat razshirenie na imeto ".LIB", a v Unix - ".a".
- Zaqo relocatable? Zaqoto sudurzhaqite se programi na mashinen ezik, rezyltat ot rabotata na nehkoj ezikov procesor, ne su obvurzani s mehsto v operativnata pamet, kudeto da budut zaredeni i izpulneni.
- Makar i na mashinen ezik, tezi programki vse oqe ne su izpulnimi.
- LinkageEditor-ut e programa, kojato ot predvaritelno asemblirani ili kompilirani obektni modyli (relocatables) qe suzdade gotova za izpulnenie programa vuv format core-image.
- I v pomoq na LinkageEditor-ut, bibliotekarjut mozhe da nameri modyl v RLB-to ne samo po ime, no i po dryg "vunshen simvol".
- Kogato obekten modyl (a relocatable) se puxa v RLB (v statichna biblioteka), bibliotekarjut go indeksira ne samo po imeto na modylut, no i po vseki dryg simvol, otbelehzan kato "vunshen" (external) ot ezikoviut procesor.
- Zabelezhka. Suvremenniut termin "statichna biblioteka" otrazjava faktut, che veche ima podobni biblioteki s razshirena fynkcionalnost, narichani "dinamichni 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 podlezhi na sledvaqa obrabotka.
- Toj mozhe samo da bude zareden v pametta i izpulnen.
- Obiknoveno takuv modyl e markiran s adres ot pametta, kudeto toj trehbva da bude zareden, za da mozhe da se izpulni pravilno.
- Imashe izpulnimi modyli, markirani kato samo-premestvaqi se (relocatable).
- Takava programa v nachaloto proverjava kude e zaredena i sama nastrojva mestata ot svojut 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 nachaloto ..
- Izpolzvaneto na indeksno-posledovatelnite fajlove i
indeksno-posledovatelniut metod na dostup mozhe da e bilo ymestno pri
paketniut rezhim na rabota (batch processing).
- No te nikak ne su podxodjaqi za realnata rabota na edin suvremenen survur.
- Segashnite raznoobrazni iziskvania se pokrivat ot jerarxichnata fajlova sistema i naj-veche ot bazite danni.
- Samo softwer mozhe da posreqne raznoobrazieto v suvremennata dejstvitelnost.
- Slava Bogy! Xardwerut veche ne se mesi pri predostavjaneto na asociativen dostup.
- (.. skrij go asociativniut dostup ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų petata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Sistemniut softwer se mesi vuv vutreshnata stryktyra na fajlovete (.. pokazhi ..) (.. razgunuto ..)
-
▼▼
Sistemniut softwer se mesi vuv vutreshnata stryktyra na fajlovete
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
- Sistemniut softwer se e chyvstval dluzhen da pravi tova, za da ylesnjava potrebitelite.
- Ne e suznaval, che tova ne my vliza v rabotata.
- Magnitnata lenta veche e otpadnula kato nositel na potrebitelski danni.
(.. pokazhi ..) A nehkoga tova beshe osnoven nositel. (.. pokazhi gi magnitnite lenti ..) - Magnitnata lenta veche e otpadnuka kato nositel na potrebitelski danni.
A nehkoga tova beshe osnoven nositel. (.. skrij ..) (.. skrij gi magnitnite lenti ..)- Sistemniut softwer se e chyvstval zadulzhen da markira fajlovete, razpolozheni na magnitna lenta,
- da slaga v nachaloto i v krajut 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 produlzhenie na dryga rolka,
- dali zapisite su s fiksirana ili s promenliva dulzhina,
- kolko e dulzhinata - fiksiramata ili maksimalnata - na edin fizicheski zapis,
- kolko e dulzhinata na edin logicheski zapis,
- kolko obqo zapisa ima v segmentut ili vuv fajlut.
- Kakto zaradi paketnata obrabotka pri mashinite IBM/360/370,
taka i zaradi magnitnite lenti kato osnoven nositel na potrebitelski danni,
taka i zaradi ystanovilata se kobolistka tradicia,- sistemniut softwer markirashe meta-danni za fajlovete
- kakto pri lentite, taka i pri diskovete.
- Paketnata obrabotka ostanu v minuloto.
Kompjytrite veche rabotjųt v realno vreme. (.. pokazhi kakvo donese sistemata Unix ..)
(.. pokazhi ..) Dojde i sistemata Unix. - Paketnata obrabotka ostanu v minuloto.
Kompjytrite veche rabotjųt v realno vreme.
Dojde i sistemata Unix. (.. skrij kakvo donese tja ..) (.. skrij ..)- Sistemata Unix e mnogo-potrebitelska (multi-user).
- Osnovnata ï grizha trehbva da e pravilnoto razpredelenie na resyrsite meghy potrebitelite.
- Magnitnata lenta e nedelim resyrs. Ne se spodelja meghy potrebitelite.
- Sistemata jų naznachava na potrebitel cehlata
- i ne se interesyva kakvo potrebiteljut qe pravi s lentata.
- Sistemata Unix ne poddurzha fajlove na magnitna lenta.
- Cehloto lentovo ystrojstvo se razglegha kato fajl.
- Softwerut, kojto po kobolistka tradicia chete i pishe etiketi i fajlove ot i na magnitna lenta, e izcehlo potrebitelski.
- Ot dryga strana, kobolistkata tradicia e vuzniknula v "bezdiskovo vreme".
- A puk sistemata Unix predpolaga disk,
- predpolaga vunshno zapomnjaqo ystrojstvo s prehk burz dostup i za spodeleno polzvane ot vsichki potrebiteli.
- Sistemata Unix poddurzha fajlova sistema na disk, i razpredelja diskovite resyrsi vuz osnova na fajlovete.
- Sistemata Unix trehbva da identificira i lokalizira fajl v jerarxichnata fajlova sistema po fajlova specifikacia (ime na fajl).
- Sistemata Unix trehbva da proveri dali tozi potrebitel ima pravo na dostup do tozi fajl.
- Tja mozhe da otkazhe dostup do fajlut.
- No ako tja razreshi iskaniut dostup, kakvo potrebiteljut qe pravi vutre vuv fajlut - tova si e rabota na potrebiteljut - sistemata Unix ne my se mesi.
- Sistemata Unix reshava vuprosut za kompetenciite v sloevete na softwerut.
- Nehma si veche predstava sistemniut softwer za vutreshnata stryktyra na fajlovete.
- Slava Bogy!
- (.. skrij go ottegljaneto na sistemniut softwer ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų petata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Magnitnite glavi veche su si chast ot diskovete (.. pokazhi gi diskovete Winchester ..)
-
IBM-2311
- Spira se diskovoto ystrojstvo i se chaka diskoviut paket da spre da se vurti.
- Nehma spirachki, spira bavno.
- Nehkude nablizo, obiknoveno vurxy ystrojstvoto, stoi praznata kytia na diskoviut paket, sustojaqa se ot duno i kapak s rukoxvatka.
- Sus silnata (dehsnata) ruka se vzema kapak za rukoxvatkata.
- S drygata ruka se otvarja gornata vrata na ystrojstvoto.
- Diskoviut paket s pomoqta na svojut kapak s vurtelivo dvizhenie se prixvaqa i izvagha se ot ystrojstvoto.
- S drygata ruka se zatvarja gornata vrata na ystrojstvoto.
- Slaga se vurxy dunoto, dunoto qrakva i se prikrepja za paketut otdoly.
- Diskoviut paket se pribira za suxranenie v shkaf.
- Drygiut diskov paket, kojto trehbva da se montira, se vadi ot shkafut.
- Sus silnata si ruka go xvaqame zdravo za rukoxvatkata na kapakut my.
- Zanasjame go do ystrojstvoto.
- S drygata ruka otkopchavame dunoto ot paketut i go slagame vurxy ystrojstvoto.
- Sus suqata slaba ruka otvarjame gornata vrata na ystrojstvoto.
- Sus silnata si ruka postavjame diskoviut paket vurxy shpindelut na ystrojstvoto
- i s vurtelivo dvizhenie zakrepvame paketut kum shpindelut i osvoboghavame kapakut na paketut.
- Sus slabata ruka zatvarjame gornata vrata na ystrojstvoto.
- Silnata ruka durzhi prazniut kapak i go postavja vurxy dunoto.
- S koja da e ruka se pyska diskut da se zavurti.
- Mozhe da mine minyta, dokato yskori do nyzhnata 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, vunshno izgleghaxu po suqiut nachin.
- Obache diskoviut paket imashe 11 plochi (vmesto 6) i tezheshe poveche.
- I plutnostta na magnitniut zapis be ydvoena.
- V rezyltat, IBM-2314 subirashe chetiri puti poveche informacia, otkolkoto IBM-2311.
- Ystrojstvoto na kartinkata e myzeen eksponat.
- Na mehstoto, kudeto e nadpisut s texnicheskite danni, stoeshe praznata kytia na montiraniut diskov paket.
- Takiva ystrojstva se proizveghaxu v Stara Zagora, a diskovi paketi - v Pazarxhik.
-
▼▼
Magnitnite glavi veche su si chast ot diskovete
(.. skrij gi diskovete Winchester ..)
- Nehkoga se e schitalo, che magnitnite glavi i mexanizmut za pridvizhvaneto im meghy cilindrite
su mnogo po-skupi ot magnitnite nositeli.
- Magnitniut nositel e metalna plocha s magnitno pokritie ot dvete strani.
-
(..Vizhte IBM-2311 na kartinka ..) (.. prochetete za nego ..) - Plochite obiknoveno se oformjaxu v paketi (disk packs).
- Paket ot shest plochi (IBM-2311) imashe deset povurxnosti i suotvetno deset pisti na cilindur.
- Paket ot edinadeset plochi (IBM-2314) imashe dvadeset povurxnosti i dvadeset pisti na cilindur.
- Vunshnite povurxnosti v paketut ne se polzvaxu.
- Diskovete i diskovite paketite behxu smenni.
- Te se montiraxu v ystrojstvoto ot chovek-operator.
- Mexanizmut, vurtjaq diskovete, magnitnte glavi i mexanizmut za pridvizhvaneto im behxu chast ot ystrojstvoto (chast ot drajvut, disk drive).
- Edno diskovo ystrojstvo beshe golehmo kolkoto avtomatichna peralnja ili avtomatichna mialna.
- Po nehkoe vreme imashe flopi-diskove ili disketi - plastmasa s magnitno pokritie.
- Tehx ne gi schitam za istinski diskove, ponezhe ne predostavjaxu dostatuchno burz dostup.
- Osnovniut eksploatacionen problem beshe zamursjavaneto.
- Pri smenni nositeli, praxut povreghashe i magnitnite glavi, i nositelite.
- Dryg eksploatacionen problem beshe nastrojkata na glavite kum standart za magniten zapis.
- Obiknoveno gi ostavjaxu nenastroeni.
- V rezyltat, za vseki diskov paket trehbvashe da se znae koe ot ystrojstvata mozhe da go chete.
- Operacionnata sistema OS/360 iziskvashe nastrojka na glavite kum standartut.
- DOS/360 ne postavjashe takova iziskvane.
- Texnologiite naprednuxu: miniatjyrizacia, masovo proizvodstvo, poevtinjavane.
- Magnitnite glavi i mexanizmut za pridvizhvaneto im meghy cilindrite ne se smehtat veche za mnogo po-skupi ot magnitnite nositeli.
- Ogromnata vmestimost pri novite texnologii namaljavat neobxodimostta ot smehna na nositelite.
- Vsichko veche se oformja kato edno edno ystrojstvo - glavi i magnitna povurxnost, kapsylirani i izolirani ot vunshnata sredà.
- Za purvite takiva modeli se izpolzvashe nazvanieto Winchester.
- Pri tehx zadvizhvaneto beshe vse oqe vunshno.
- Pri suvremennite HDD (hard disk drives) absoljytno vsichko e kapsylirano i izolirano -
i vurteneto na diskut, i postupatelnoto dvizhenie na grebenut s glavite. - (.. Iljystracia: edin terabajt HDD Toshiba, USB, 2.5 incha ..)
- Magnitnite glavi su fabrichno kapsylirani v edno diskovo ystrojstvo zaedno s magnitnata povurxnost.
- Slava Bogy!
- (.. skrij gi diskovete Winchester ..) (.. skrij jų petata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- Nehkoga se e schitalo, che magnitnite glavi i mexanizmut za pridvizhvaneto im meghy cilindrite
su mnogo po-skupi ot magnitnite nositeli.
- ►► Neqo kato zakljychenie (.. pokazhi go zakljychenieto na besedata ..) (.. razgunuto ..)
-
▼▼
Neqo kato zakljychenie
(.. skrij go zakljychenieto na besedata ..)
(.. svij go ..)
(.. razguni go ..)
- ►► A nehkoga System/360 beshe za primer .. (.. pokazhi ..)
-
▼▼
A nehkoga System/360 beshe za primer ..
(.. skrij ..)
- Nehkoga ot Moskva e doshla komanda vsichki proekti da se kancelirat i
cehlata inzhenerna 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, trehbva System/360 na IBM da e bila veche stanula za primer v celiut ostanul sveht.
- Oficialno se kazvashe, che razrabotvame ES ЭVM (Edinaja Sistema Эlektronnыx Vыchisliteljnыx Mashin).
- Profesionalnata mi istoria kato kompjyturxhia zapochnu ot System/360.
- Ne pretendiram za tochnost pri istoricheskite spravki.
- Ne znam v koj kompjytur su bili prilozheni 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 mehsto, softwerniut biznes. Kompjyturnata programa kato indystrialen prodykt.
- Sled tova, neqo neznachitelno: ponjatieto bajt. Nikoj veche ne smee da izneveri na tazi togavashna moda.
- Ponjatiata obekten modyl i biblioteka ot obektni modyli.
- Tyka popadat i LinkageEditor-ut, asemblerut, kompilatorite ..
- Kompilatorut ot FORTRAN be vpechatljavaq s burzinata si.
- Suzhalehvaxme jų mashinata, kato jų gledaxme kak se muchi da kompilira COBOL.
- I zaqo ne se seqam za drygo? Trajno ostanulo ot System/360?
Po mnogo prichini.- Zabravil sum mnogo neqa verojatno.
- 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-veche s tova, koeto go imashe nehkoga tam,
- a sega veche - Slava Bogy! - go nehma.
- Seqam se za nehkoi neqa, nesvurzani s diskovete, koito gi imashe v System/360, a sega veche gi nehma.
- Desetichni chisla s plavaqa tochka. Tova e neobjasnima strannost na System/360.
- Razni drygi stranni formati i kodirovki.
- EBCDIC vmesto ASCII.
- Paketirani desetichni chisla i mashinna aritmetika s takiva chisla.
- Zapisi s promenliva dulzhina s predshestvaq brojach.
Tova mozhe da e polezno, no e izostaveno.
- (.. skrij koga System/360 beshe za primer ..) (.. skrij go zakljychenieto na besedata ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Nehkoga ot Moskva e doshla komanda vsichki proekti da se kancelirat i
cehlata inzhenerna 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 (.. pokazhi ..)
-
▼▼
Ezikut COBOL stupkan v praxta ot ezikut C
(.. skrij ..)
- Na kakvo se dulzhi zashemetjavaqiut yspex na texnicheskoto razvitie?
Na tova, che ne se obruqashe vnimanie na tesnite mesta (bottle-necks: botulneci),
a na vazhnite neqa, koito izveghat texnologiata na novi ravniqa, na novi visoti.- Ne na mashinna desetichna aritmatika.
- Ne na xardwerno podpomagane na asociativniut dostup do diskut.
- Ne na slozhni mashinni instrykcii, koito taka se opitvat da vuvlekut xardwerut v botulnecite.
- Ne - botulnecite su si softweren problem.
- Da na ekstremnata miniatjyrizacia.
- Da na ekstremno golehmata kompjyturna pamet.
- Da na ekstremnoto burzodejstvie.
- Da na ekstremno niskata energozavisimost.
- Predi poveche ot 40 godini sum pochnul na kompjytur sus 120 kilobajta operativna pamet i sus sedem-megabajtovi diskove.
- Sega se naslaghavam:
- na 16 gigabajta operativna pamet (140000 puti poveche)
- i na terabajtov disk (25000 puti poveche),
- i to s razmerut na kytia shokoladovi bonboni, a ne v zala s klimatik, protivopozharna instalacia i povdignut pod.
- Samo se naslaghavam. Zaqoto zaslyga nehmam. Samo se vuzpolzvam.
- A koj ima zaslyga?
- Koj go dvizhi progresut?
- Ima za kakvo da im zavighat smòtanite zlobni levi pocepkovci "vsex stran".
- Kompjyturna arxitektyra ot tip RISC (Reduced Instruction Set Computers).
- Ne e vazhno, che xardwerut na centralniut procesor smehta samo dvoichno, a ne desetichno.
- Vazhnoto e da smehta ekstremno burzo.
- Softwerut lesno qe prevurne chislata ot desetichni v dvoichni, a posle obratno v desetichni.
- Ako desetichnata aritmetika beshe realizirana v "xardwerut", edva li qeshe da e po-razlichno.
- Ne e vazhno, che centralniut procesor ne priema instrykcia "premesti ottyk tam dvesta bajta".
- Vazhnoto e instrykciata "premesti ottyk tam edin bajt" da se izpulnjava ekstremno burzo.
- Puk softwerut qe jų zadava tazi instrykcia dvesta puti.
- Arxitektyrata RISC be navejana ot ezikut C i ot sistemata Unix.
- Za yzhas na kobolistite.
- Ne e vazhno, che xardwerut na centralniut procesor smehta samo dvoichno, a ne desetichno.
- Kobolistut mozhe da ceni texnikata "logicheski i fizicheski zapisi"
i da se radva na predostavenite ot sistemata ylesnenia v tazi vruzka.
- A puk programistut na C se podxilkva na tova.
- Che tova su elementarni neqa.
- Rodniut mi ezik za programirane beshe PL/I.
- Toj beshe neqo kato obedinenie na trite ezika ALGOL-60, FORTRAN-IV i COBOL,
- no bez "izvraqeniata", kakvito vseki ot tehx si imashe.
- Ezikut C, sistemata Unix i obektno-orientiranoto programirane stupkaxu i PL/I.
- Zavurshix profesionalnata si kariera kato programist na C i C++.
- Sega kato pensioner se yprazhnjavam na JavaScript.
- (.. skrij jų pobedata na ezikut C ..) (.. skrij go zakljychenieto na besedata ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Na kakvo se dulzhi zashemetjavaqiut yspex na texnicheskoto razvitie?
- ►► Diskut e dyshata na kompjyturut (.. pokazhi ..)
-
▼▼
Diskut e dyshata na kompjyturut
(.. skrij ..)
- Makar che zhabite i ribite su vse grubnachni zhivotni kato nas, az ne sum sposoben da im naznachavam individyalnost.
- Xorata naznachavat individyalnost na kychetata i kotkite.
- Dazhe dysha im naznachavat!
- Lichno az s pydelite imam spomeni!
- Za mene te su lichnosti s individyalnost i dysha.
- Ima li kompjyturut individyalnost i dysha?
- Stanu dyma, che nehkoga imashe bezdiskovi kompjytri.
- Te su kato ribite i zhabite.
- Bez individyalnost i bez dysha.
- Dokato polzvam daden kompjytur, az pulnjų diskut my sus spomeni.
- Diskut my pridava na kompjyturut individyalnost.
- Da ne se izsilvam da kazvam, che kompjyturut imal dysha.
- Znam my karantiite - tova e mashina.
- Bitove. Mnogo mnogo bitove, ama vse bitove.
- Kakva dysha.
- Na nov kompjytur se radvam.
- Mozhe da se pogrizhu da prexvurljų spomenite si ot stariut na noviut disk.
- Za stariut kompjytur nehma da plachu.
- A pri smurtta na dva pydela i az, i Tamara plakaxme.
- (.. skrij jų dyshata na kompjyturut ..) (.. skrij go zakljychenieto na besedata ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ◄► (.. skrij jų petata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ◄► (.. skrij jų petata beseda za diskovete na IBM/360 ..) (.. svij jų ..) (.. posvij ili porazguni ..) (.. razguni jų ..) .. kum nachaloto ..
►► 7. Virtyalnata pamet na kompjytrite (.. pokazhi jų shestata beseda ..) (.. razgunuto ..) .. kum nachaloto ..
- Virtyalnata pamet na kompjytrite se osuqestvjava chrez avtomatichna dinamichna preadresacia.
- Mozhete li da si predstavite kompjytur bez dinamichna preadresacia?
- Suvremennite kompjytri ne mogut bez nejų.
▼▼ 7. Virtyalnata pamet na kompjytrite (.. skrij jų shestata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ◄► Ne znam pri koj kompjytur se e pojavila virtyalnata pamet za pruv put.
- Ne pretendiram za tochnost pri istoricheskite spravki.
- Pisax, che do mene diskovete dostignuxu na bordut na System/360.
- Sega pishu, che do mene virtyalnata pamet dostignu na bordut na System/370.
- Neqo poveche.
- Samata dyma "virtyalno" do mene suqo taka dojde sus System/370.
- Kogato stavashe dyma za virtyalni adresi i virtyalna pamet.
- Sega veche ima virtyalna realnost, virtyalen sveht, virtyalni priateli, virtyalna ljybov.
- No tova veche e suvsem drygo.
- A mozhexu nehkoga vmesto dymata "virtyalna" (virtual) da ypotrebjųt dymata "simylirana" (simulated).
- ►► Neqo kato yvod (.. pokazhi go ..) (.. razgunuto ..)
-
▼▼
Neqo kato yvod
(.. skrij go ..)
(.. svij go ..)
(.. razguni go ..)
- ►► Mashinni instrykcii, operandi i adresite im (.. pokazhi gi ..)
-
▼▼
Mashinni instrykcii, operandi i adresite im
(.. skrij gi ..)
- Centralniut procesor (CPU: Central Processing Unit) e mozukut na kompjyturut -
tova, deto smehta, misli i vzema reshenia.
- Ot choveshka gledna tochka, toj izpulnjava programa.
- Samiut toj obache ne znae za nejų, za programata si.
- Centralniut procesor (CPU-to) vuv vseki moment izpulnjava nehkakva instrykcia, mashinna instrykcia.
- Susredotochil e vnimanieto si na nejų, na tekyqata instrykcia.
- Dokato jų izpulnjava tekyqata instrykcia, veche e zabravil predishnata i si nehma predstava koja qe e sledvaqata.
- A instrykciata idva ot operativnata pamet na kompjyturut.
- Operativnata pamet na kompjyturut (RAM-ut: Random Access Memory, main memory) e izvun CPU-to.
- Za da polychi instrykciata si za izpulnenie, CPU-to izdava zajavka do RAM-ut:
- Prati mi sudurzhanieto na tolkova bajta, kakto si gi zapomnil, zapochvajki ot tozi adres.
- Kolko tolkova? Dva, chetiri, osem naj-mnogo.
- RAM-ut vzema ot posocheniut adres poredica ot bitove (nehkolko bajta) i gi praqa na CPU-to.
- A puk CPU-to gi interpretira i gi izpulnjava kato mashinna instrykcia.
- Vutre v sebe si CPU-to poddurzha specialen registur, narechen PC (Program Counter).
- Chrez 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 susdurzhanieto na PC-registurut za adres kum RAM-ut i vednaga CPU-to yvelichava PC-registurut da bude gotov za po-sledvaqata instrykcia.
- Vutre v sebe si CPU-to poddurzha nehkolko registura, za koito qe stane dyma po-doly.
- PC-registurut e edin ot tehx.
- Povecheto registri su s obqo prednaznachenie (General Purpose Registers).
- Pri nehkoi kompjytri CPU-to vzema sudurzhanieto na PC-registurut i na registrite s obqo prednaznachenie po edin i suq nachin.
- Pri drygi kompjytri (naprimer pri IBM/360/370) CPU-to vzema sudurzhanieto na PC-registurut po specialen nachin, sus specialna instrykcia.
- Prakticheski pri vsichki kompjytri ima specialni mashinni instrykcii za ystanovjavane na novo sudurzhanie na PC-registurut.
- Tova su instrykciite za bezysloven ili ysloven prexod (branching, jumping).
- Te promenjat adresut na sledvaqata mashinna instrykcia.
- Vutre v sebe si CPU-to poddurzha registri.
- Tova su elementcheta pamet. Pamet na edna ruka razstojanie do CPU-to.
- RAM-ut e pamet na edin pogled razstojanie,
- a diskut e neobjatna pamet otvud xorizontut.
- Povecheto ot tezi registri su s obqo prednaznachenie.
- CPU-to ne znae prednaznachenieto im. Programata znae.
- CPU-to se obruqa kum takuv registur, samo ako tova e ykazano v izpulnjavanata mashinna instrykcia.
- Nehkoi ot registrite su sus specialno prednaznachenie.
- Takuv e PC-registurut, za kojto stanu dyma.
- CPU-to znae prednaznachenieto my i go izpolzva spored prednaznachenieto my.
- V suvremennite kompjytri (no ne i vuv IBM/360/370) ima i dryg registur sus specialno prednaznachenie - SP (Stack Pointer).
- Temata za stack-ut i za heap-ut mozhe bi zaslyzhava beseda ot tykashnata poredica besedi.
- Takava obache ne se predvigha.
- Dori ystanoveni termini na bulgarski nehma.
- Puk i tova ne e zagybilo aktyalnostta si - na tezi, koito se ychut da programirat na C ili C++, stack-ut i heap-ut trehbva da im budut objasneni.
- A az ne pishu ychebnik.
- Registrite na CPU-to naj-chesto sudurzhat adres.
- Naj-chesto v tehx se suxranjavat adresi na mesta ot RAM-ut, s koito CPU-to ili po-tochno programata raboti.
- Dvata registura sus specialno prednaznachenie, za koito stanu dyma - PC-registurut i SP-registurut, sudurzhat imenno adresi.
- Registrite na CPU-to s obqo prednaznachenie, koito ne sudurzhat adresi, ako programata gi polzva,
tja gi polzvat kato akymylatori, naprimer symatori.
- Akymylatorite sudurzhat danni, koito su rezyltat ot izchislenia i podlezhut na skoroshna obrabotka.
- Tova su elementcheta pamet. Pamet na edna ruka razstojanie do CPU-to.
- Dannite, s koito CPU-to boravi pri izpulnenieto na mashinna instrykcia, se narichat operandi na instrykciata.
- Edin operand:
- ili se sudurzha v samata instrykcia,
- ili se sudurzha v nehkoj registur,
- ili se sudurzha v RAM-ut po nehkoj adres.
- Ako operandut se sudurzha v RAM-ut, to adresut my:
- ili se sudurzha v samata instrykcia,
- ili se sudurzha v nehkoj registur,
- ili se sudurzha v RAM-ut po nehkoj adres.
- Tova poslednoto rehdko se sreqa, no se sreqa.
- Po-golehma dulbochina 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 mehsto v RAM-ut.
- CPU-to zadava tozi adres.
- CPU-to ili iska da polychi ot RAM-ut sudurzhanieto na tozi adres, kakvo e zapomneno tam,
- ili iska ot RAM-ut po ykazaniut adres da budut zapisani (i zapomneni) nehkakvi 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 prednaznachenie na mexanizmut na prekusvaniata e
CPU-to da bude yvedomeno za nastupilo izmenenie vuv vunshniut sveht.
- Zavurshila e operacia za vxod ili za izxod, natisnul sum klavish, mrudnul sum mishkata, barnul sum touch-screen-ut.
- Trydno mi e da go opishu mexanizmut na prekusvaniata obobqeno.
- Puk e i izvun temata na besedata.
- Osnovnoto prednaznachenie na mexanizmut na prekusvaniata e
CPU-to da bude yvedomeno za nastupilo izmenenie vuv vunshniut sveht.
- Pri kompjyturna arxitektyra, kojato pozvoljava mnogo-potrebitelska (multi-user) rabota,
CPU-to ima naj-malko dva rezhima na rabota: sistemen rezhim (kernel mode) i potrebitelski rezhim (user mode).
- V potrebitelskiut rezhim (user mode) mashinnite instrykcii, koito mogut da povliajųt na drygite potrebiteli, su zabraneni.
- Tova suqo e izvun temata na besedata i silno zavisi ot konkretnata kompjyturna arxitektyra.
- (.. skrij gi mashinnite instrykcii ..) (.. skrij go yvodut kum shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Centralniut procesor (CPU: Central Processing Unit) e mozukut na kompjyturut -
tova, deto smehta, misli i vzema reshenia.
- ►► Adresi, adresno prostranstvo, adresacia (.. pokazhi ..)
-
▼▼
Adresi, adresno prostranstvo, adresacia
(.. skrij ..)
- I tuj, CPU-to (centralniut procesor) na kompjyturut generira i izvegha kum vunshniut sveht adresi,
koito su chast ot dva vida zajavki:
- Zajavka za chetene:
- CPU-to iska da polychi dannite, zapisani na tozi adres,
kato predpolaga, che tova e adres na mehsto ot RAM-ut.
- CPU-to iska da polychi dannite, zapisani na tozi adres,
- Ili zajavka za pisane:
- CPU-to iska po tozi adres da se zapishut i zapomnjųt
nehkakvi danni, koito CPU-to predostavja zaedno s adresut,
kato pak predpolaga, che adresut e na mehsto ot RAM-ut.
- CPU-to iska po tozi adres da se zapishut i zapomnjųt
- Zajavka za chetene:
- Naprimer, kogato CPU-to iska da polychi sledvaqa mashinna instrykcia za izpulnenie, CPU-to izdava zajavka za chetene po adres, vzet ot PC-registurut.
- Pri suvremennite kompjytri adresut e adres na bajt - na poredica ot 8 bita, narechena 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 polychi adresut na sledvaqiut bajt.
- Zajavkata za chetene ili za pisane po adres, kojato CPU-to izdava kum vunshniut sveht,
mozhe da ima obxvat s razlichna shirina:
- edin bajt (8 bita),
- dva bajta (16 bita),
- chetiri bajta (32 bita - naj-chesto), ili
- osem bajta (64 bita)
- Ako zajavkata e za dva bajta, obiknoveno adresut e cheten (posledniut bit ot adresut e 0).
- Ako zajavkata e za chetiri bajta, obiknoveno adresut se deli na 4 (poslednite dva bita ot adresut su 00).
- Xardwerut mozhe da se surdi, ako ne e taka, a mozhe i da ne se surdi.
- CPU-to ne mozhe da izdava zajavki s proizvolna shirina.
- Ne mozhe 100 ili 200 bajta.
- CPU-to trehbva da izdade zajavki bajt po bajt, a ne navednuzh.
- Ne mozhe samo 5 bita.
- CPU-to trehbva da izdade zajavka za celiut 8-bitov bajt, a posle da si otdeli interesyvaqite go bitove.
- Ne mozhe 100 ili 200 bajta.
- Naj-chesto adresut predstavljava redica ot 32 bita, interpretirana kato 32-bitovo dvoichno cehlo chislo bez znak.
- No ima i drygi slychai.
- Pri drygi kompjytri adresut mozhe da e 16-bitovo dvoichno chislo bez znak.
- Pri IBM/360/370 adresut e 24-bitovo dvoichno chislo bez znak.
- Pri drygi kompjytri adresut mozhe da e 64-bitovo dvoichno chislo.
- Adresite sustavljavat adresno prostranstvo (address space).
- To se sustoi ot vsichki vuzmozhni adresi.
- Otsega qe go nareku fizichesko adresno prostranstvo (physical address space), makar zasega da ne e jasno za kakvo e dymata fizichesko.
- Ako adresut e 32-bitov, to vsichki adresi na broj su 4294967296.
- Tova chislo e v desetichen zapis i predstavljava 2 na stepen 32.
- Tolkova razlichni bajta mozhe da se adresirat s 32-bitovi adresi.
- Mozhe da se kazhe, che obemut na adresnoto prostranstvo pri 32-bitovi adresi e 4 gigabajta.
- Pri dryga razrjadnost na adresut (16-bitov, 24-bitov, 64-bitov) obemut na adresnoto prostranstvo mozhe da se presmetne po suqata formyla - chisloto 2 na tazi stepen.
- Naj-niskiut (naj-malkiut) adres e sustaven samo ot nylevi bitove (dvoichni nyli).
- Naj-visokiut adres e sustaven samo ot dvoichni edinici.
- Stojnostta na adres nehma smisul da se predstavja desetichno.
- Predstavja se v shestnadesetichen ili v osmichen zapis i obiknoveno se zapulvat vsichki razrjadi.
- Naprimer, naj-visokiut 32-bitov adres shestnadesetichno se predstavja taka: FFFFFFFF.
- A puk naj-niskiut, razbira se e 0 (nyla) ili 00000000.
- CPU-to se obruqa po adres kum vunshniut sveht -
CPU-to adresira fizichesko adresno prostranstvo -
- ili za da polychi sledvaqata mashinna instrykcia, kojato CPU-to trehbva da izpulni,
- togava tova e zajavka za chetene,
- ili v izpulnenie na mashinna instrykcia,
- togava tova mozhe da e zajavka za chetene ili za pisane spored mashinnata instrykcia.
- ili za da polychi sledvaqata mashinna instrykcia, kojato CPU-to trehbva da izpulni,
- (.. skrij gi adresite i adresaciata ..) (.. skrij go yvodut kum shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- I tuj, CPU-to (centralniut procesor) na kompjyturut generira i izvegha kum vunshniut sveht adresi,
koito su chast ot dva vida zajavki:
- ►► Operativna pamet i fizichesko adresno prostranstvo (.. pokazhi ..)
-
▼▼
Operativna pamet i fizichesko adresno prostranstvo
(.. skrij ..)
- Kogato CPU-to izdava kum vunshniut sveht - kum fizicheskoto adresno prostranstvo - zajavka za chetene ili za pisane, koj my otgovarja?
- Koj jų izpulnjava zajavkata?
- Koj e razpolozhen vuv fizicheskoto adresno prostranstvo?
- Naj-chesto tova e RAM-ut, operativnata pamet.
- RAM-ut - tova e pamet (memory).
- Zapisva (zapomnja) podadeni danni na mehsto, opredeleno chrez adresacia, opredeleno ot zadaden fizicheski adres.
- Podava obratno dannite, koito su bili zapisani (zapomeni) na mehsto, opredeleno chrez adresacia.
- RAM-ut e pasivno ystrojstvo.
- Izpulnjava zajavki i ne projavjava iniciativa.
- Chii zajavki izpulnjava pasivnoto ystrojstvo RAM?
- Na purvo mehsto na CPU-to (na centralniut procesor).
- V RAM-ut e zapisana negovata programa i CPU-to si jų chete programata ot RAM-ut.
- Pak kum RAM-ut se obruqa CPU-to i vuv vruzka s operandite na izpulnjavanata ot nego instrykcia, osven kogato operandut e v registur.
- No ne samo na CPU-to.
- Zajavki kum RAM-ut idvat i otkum diskoviut kontroler.
- Po-obqo kazano, zajavki kum RAM-ut idvat i otkum sistemata za vxod/izxod (I/O).
- Dannite, koito diskut ili lentata zapisvat na magnitnata si povurxnost, s posrednichestvoto na kontrolerut idvat ot RAM-ut, kato kontrolerut izpolzva suqata fizicheska adresacia, kakto CPU-to.
- CPU-to gi e slozhilo na tova mehsto v RAM-ut, predi da se startira operaciata za zapis vurxy magniten nositel.
- I suqo taka, dannite, koito diskut ili lentata chetut ot magnitnata si povurxnost, s posrednichestvoto na kontrolerut bivat praqani kum RAM-ut.
- CPU-to, pri startirane na operaciata za chetene ot magniten nositel, e kazalo na kontrolerut kude tochno v RAM-ut - na koj fizicheski adres - da budut zapisani tezi danni.
- Posle CPU-to qe si gi nameri tam.
- Po-obqo kazano, zajavki kum RAM-ut idvat i otkum sistemata za vxod/izxod (I/O).
- Naprimer, ot kontrolerut na displejut (na ekranut).
- Displejut na mojut laptop (pikseli 1920 na 1080) iziskva pone 8-megabajtovo mehsto v pametta.
- A realno verojatno dosta poveche.
- Cehlata RAM-pamet na laptoput mi e 16 gigabajta, koeto e 2000 puti poveche ot 8 megabajta.
- Za sravnenie: prez 1979 zapochnux rabota na kompjytur IBM/360 (ES ЭVM) s RAM 120 kilobajta.
- CPU-to podgotvja v tazi oblast ot RAM-ut dannite, vkljychitelno kartinkite, koito displejut trehbva da mi pokazhe.
- Oblastite ot RAM-ut, koito slyzhut na CPU-to za obmen na danni s kontrolerite na periferiata, se narichat byferi.
- I CPU-to, i kontrolerite se obruqat kum byferite chrez fizicheska adresacia na RAM-ut.
- Kontrolerite na periferiata naychavat fizicheskite adresi na byferite ot CPU-to, ot komandata za startirane na vxodno-izxodnata (I/O) operacia.
- Na purvo mehsto na CPU-to (na centralniut procesor).
- Naj-mnogo mehsto vuv fizicheskoto adresno prostranstvo zaema RAM-ut.
- Obache RAM-ut ne zaema vsichkoto fizichesko adresno prostranstvo.
- Mozhe kompjyturut da e oborydvan s po-malko RAM, otkolkoto fizicheskoto adresno prostranstvo pozvoljava.
- Mozhe segmenti ot RAM-ut da su bili otstraneni zaradi povreda.
- A mozhe i chast ot fizicheskoto adresno prostranstvo da e bila zadelena ot kompjyturnata arxitektyra za kontrolerite na periferiata.
- Kakuv e rezyltatut, sled kato CPU-to izdade zajavka za chetene ili pisane po fizicheski adres kum vunshniut sveht?
- Zajavkata qe bude izpulnena bez problemi.
- CPU-to mozhe da bude yvedomeno, che adresut ne e dostupen zaradi zaqita po kljych.
- CPU-to mozhe da bude yvedomeno, che adresut ne e dostupen, zaqoto lipsva.
- CPU-to mozhe samò da se yseti, che adresut lipsva, ako otgovorut na zajavkata zakusnjava.
- (.. skrij go fizicheskoto adresno prostranstvo ..) (.. skrij go yvodut kum shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Mnogo-potrebitelska rabota na kompjyturut (.. pokazhi ..)
-
▼▼
Mnogo-potrebitelska rabota na kompjyturut
(.. skrij ..)
- Tazi shesta beseda e za virtyalnata pamet. Napredvame natam stupka po stupka.
- Predishnata peta beseda beshe za diskovete.
- Tam stanu dyma, che operacionnata sistema Unix ne mozhe bez diskove.
- V dejstvitelnost, vsichki suvremenni kompjytri imat diskove i zatova vsichki suvremenni operacionni sistemi razchitat na diskova pamet.
- Vsichki suvremenni kompjytri imat i virtyalna pamet.
- Suvremennite operacionni sistemi jų izpolzvat virtyalnata pamet, za da organizirat mnogo-potrebitelskata rabota (multi-user) na kompjyturut, i to do stepenta kompjyturut da mozhe da se polzva kato survur - bez formalno zalozheno ogranichenie za ednovremenno obslyzhvanite potrebiteli.
- Natatuk v nastojaqiut podrazdel qe se opitam da pokazhu kak e organizirana mnogo-potrebitelskata rabota
v IBM/System-360 bez virtyalna pamet.
- Kakvo znachi da se organizira mnogo-potrebitelska rabota?
- Da e vuzmozhno kompjyturut da ima mnogo (pone poveche ot edin) potrebiteli ednovremenno,
- kato sistemata chrez xardwerut i chrez sistemniut softwer ne pozvoljava edin potrebitel nevolno (chrez greshka v potrebitelskata programa) ili ymishleno da naryshi rabotata na drygite potrebiteli ili na kompjyturnata sistema kato cehlo.
- I tuj, v IBM/System-360 ..
- Nalichnata operativna pamet e razdelena na blokove (narichani oqe stranici) po 2 kilobajta (2048 bajta).
- Na vseki takuv blok se naznachava 4-bitov kljych za zaqita.
- 4-bitov kljych: tova znachi chislo ot 0 do 15.
- Centralniut procesor (CPU-to) suqo ima svoja tekyqa stojnost na tozi 4-bitov kljych.
- CPU-to go polzva svojut tekyq 4-bitov kljych pri adresiraneto na operativnata pamet (RAM-ut) po kakuvto i da e povod.
- Kogato CPU-to startira kanalna programa, dava suotvetniut 4-bitov kljych za polzvane ot kanalut (ot periferniut procesor) pri izpulnenieto na tazi kanalna programa.
- Vsehka zajavka za dostup do fizicheski adres
(a takava zajavka mozhe da idva ot CPU-to ili ot nehkoj kanal)
trehbva da bude pridryzhena ot 4-bitov kljych za dostup. - Ako kljychut za dostup e nyla, dostuput se razreshava.
- Ako kljychut za dostup ne e nyla, dostuput se razreshava,
samo ako kljychut za dostup suvpada s kljychut na zaqita na 2K-blokut, v kojto popada adresut. - Kogato se izpulnjava potrebitelska programa, CPU-to raboti v potrebitelski rezhim.
- V potrebitelski rezhim na CPU-to my e zabraneno da izpulnjava priviligirovani instrykcii.
- V chastnost, na CPU-to v potrebitelski rezhim my e zabraneno da promenja svojut 4-bitov kljych za dostup, da promenja 4-bitovite kljychove za zaqita na blokovete RAM, kakto i da startira kanalni programi.
- Gornoto oznachava, che arxitektyrata na IBM/System-360 (bez virtyalna pamet) pozvoljava ednovremenno obslyzhvane na 15 potrebitelja naj-mnogo.
- Imashe versia na operacionnata sistema - OS/360-MVT,
kojato avtomatichno razkrojavashe nalichnata 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 nalichnata za polzvane operativna pamet bivashe razkrojavana
na potrebitelski razdeli (partitions) ot chovek.
- Naj-mnogo 15 razdela, vseki s kljych za zaqita ot 1 do 15.
- Sistemata OS/360-MFT sama izbirashe koga da pysne dadeno potrebitelsko zadanie i v koj ot nalichnite razdeli na pametta da go pysne.
- Pri sistemata DOS/360 chovek ykazvashe tova (programist, texnolog, operator).
- (.. skrij jų mnogo-potrebitelskata rabota ..) (.. skrij go yvodut kum shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Obektni modyli, sekcii, segmenti (.. pokazhi gi ..)
-
▼▼
Obektni modyli, sekcii, segmenti
(.. skrij gi ..)
- V tozi podrazdel qe se pomuchu da pokazhu kak edno vreme bez virtyalna pamet se stroehxu
golemi programi za izpulnenie ot kompjytur.
- Tolkova golemi, che ne se subirat v nalichnata operativna pamet.
- Povecheto 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 rabotjųt neposredstveno na kompjyturut,
- a ne za programi, koito dokato se izpulnjavat, 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 pishe na chasti, narecheni izxodni modyli (source modules).
- Programata mozhe da se pishe ot kolektiv programisti
- i razlichnite izxodni modyli mozhe da su napisani ot razlichni programisti.
- No dori da e samo edin programistut, estestveno e programata da se pishe na chasti.
- Razlichnite izxodni modyli mozhe da su napisani na razlichni 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 polychava obekten modyl (object module).
- Za obektni modyli (object modules) stavashe dyma i v prednata beseda.
- Pri vsehko pyskane na asemblerut ili na kompilatorut se polychava edin obekten modyl.
- Obektniut modyl ima dvoichen format, nechetliv za xora.
- Edno vreme za vsehka kompjyturna platforma suqestvyvashe specifichen format na obektnite modyli.
- Naprimer, pri IBM/System-360 obektnite modyli imaxu format ydoben za punch, makar che otdavna te ne se punchvaxu, a se zapisvaxu na magniten nositel (disk ili lenta).
- Sega ima nehkakvi standartni obqi formati za obektni modyli. (.. Naprimer, COFF .. ili .. ELF ..)
- Edin obekten modyl sudurzha mashinni instrykcii i danni,
- kato dannite mogut da budut inicializirani (s objaveni nachalni stojnosti) ili ne.
- Ako dannite ne su inicializirani, te ne zaemat mehsto v samiut obekten modyl, no toj pak naznachava mehsto za tezi danni v operativnata pamet po vreme na izpulnenie na programata.
- Pametta za vremeto na izpulnenie na programata mozhem da jų narechem obektna pamet.
- I tuj, edin obekten modyl naznachava i pulni parcheta ot obektnata pamet.
- Kogato gi pulni, pulni gi s mashinni instrykcii ili inicializiraqi danni.
- No da ne zabravjame, che obektniut modyl po nachalo e razyltat ot rabotata na kompilatorut ili asemblerut.
- Kak obektniut modyl doprinasja za obektnata pamet - kompilatorut ili asemblerut su opredelili tova.
- Parchetata, s koito obektniut modyl doprinasja za obektnata pamet, se narichat programni sekcii.
- Edno vreme pri IBM/System-360 vmesto programni sekcii se kazvashe kontrolni sekcii.
- Obektnata pamet - operativnata pamet, naznachena za izpulnjavanata programa - se deli na programni sekcii.
- Ako obektniut modyl e rezyltat ot rabotata na asemblerut, to asemblerut e sledval tochno ykazaniata na programistut kak da se razkroi modylut na sekcii.
- Ako obektniut modyl e rezyltat ot rabotata na kompilator, kompilatorut sam mozhe da reshi da otdeli mashinnite instrykcii, inicializiranite danni i neinicializiranite danni v razlichni sekcii.
- No i v tozi slychaj programistut trehbva da mozhe da ykazhe specifika v oformjaneto na programnite sekcii.
- Ima dve programi, koito ymejųt da boravjųt s obektni modyli:
- programa-bibliotekar (librarian), narichana v sistemata Unix arxivar (ar), i
- linker (Linker ili LinkageEditor), narichan oqe svurzvaq redaktor.
- Bibliotekarjut (arxivarjut) poddurzha
- biblioteki ot obektni modyli, narichani oqe statichni biblioteki.
- Kato fajlove v IBM/System-360 bibliotekite ot obektni modyli se narichaxu
RLB-ta,
v sistemata Unix fajlovete sus statichni biblioteki imat razshirenie na imeto .a, a vuv Windows - .lib. - Edin obekten modyl e rezyltat ot rabotata na asemblerut ili na kompilatorut.
- Toj mozhe da si ostane otdelen fajl (s razshirenie .o v Unix ili .obj vuv Windows),
- no mozhe s pomoqta na bibliotekarjut da se puxne v nehkoja statichna biblioteka.
- Bibliotekarjut i formatut na statichnite biblioteki su proektirani taka, che da slyzhut na linkerut.
- Bibliotekarjut ne mozhe da razdeli obekten modyl na sudurzhaqite se v modylut programni sekcii - tova go mozhe linkerut.
- Linkerut - sam ili s vutreshna nevidima pomoq ot bibliotekarjut, trehbva da mozhe:
- Da izvleche ot statichna biblioteka obekten modyl po imeto na modylut.
- Da izvleche ot statichna biblioteka tozi obekten modyl, sudurzhaq se v nejų, kojto definira daden vunshen simvol.
- Vunshnite simvoli naj-chesto su imena na podprogrami (fynkcii), no mozhe i da su oznachenia na blokove s danni.
- Linkerut e edna ot naj-vazhnite programi.
- Rezyltatut (izxodut) ot edno pyskane na linkerut e izpulnima programa - executable.
- Zabelezhka v avans. V novite sistemi sus virtyalna pamet rezyltatut ot linkerut mozhe da bude ili executable, ili dinamichna biblioteka. No zasega qe zabravim za tova.
- Pametta na executable-ut se deli na segmenti (segments).
- Po svoja iniciativa - ako ne my e ykazano ot programistut, linkerut nehma da napravi poveche ot edin segment.
- Zabelezhka v avans. Po svoja iniciativa linkerut nehma da napravi dinamichna biblioteka.
- Zabelezhka v avans. Dinamichnata 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 nalichnata operativna pamet,
- to nehma smisul executable-ut da se deli na segmenti - dostatuchen e edin segment.
- V tozi slychaj programistut ne misli i za programni sekcii.
- Za vseki izxoden modyl kompilatorut qe suzdade obekten modyl s naj-mnogo tri programni sekcii: za mashinni instrykcii, za inicializirani danni i za neinicializirani danni.
- Dali tja sudurzha mashinni 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 razlichnite obektni modyli.
- Taka v polycheniut edinstven segment ima samo edna programna sekcia, sudurzhaqa mashinni instrykcii, i imeto ï se podrazbira.
- Po podoben nachin se tretirat i sekciite s danni, no te ne se subirat, a se prepokrivat.
- Ot razlichnite izxodni modyli prez razlichnite obektni modyli se obruqame kum obqi danni - tova e smisulut na prepokrivaneto.
- Kogato takava programa se pyska za izpulnenie, edinstveniut ï segment se zaregha v operativnata pamet i ypravlenieto na CPU-to se predava na ykazana vxodna tochka.
- Smisulut na tozi podrazdel obache e da objasnjų kak se strojųt golemi programi
- takiva, koito ne se pobirat v nalichnata operativna pamet.
- Programistut proektira i razkrojava golehmata programa na segmenti.
- Vseki segment se zaregha v operativnata pamet otdelno.
- Ne e vuzmozhno vsichki segmenti da se zaredjųt ednovremenno, zaqoto programata e golehma.
- Edin ot segmentite e bazov - root segment.
- Toj se zaregha, kogato programata se pysne da se izpulnjava, i toj zaregha drygite segmenti.
- Nekoi ot segmentite se prepokrivat - te se zareghat na edin i suq adres (na edno i suqo mehsto) i ne mogut da su zaredeni ednovremenno.
- Nikoj ot drygite segmenti ne prepokriva bazoviut segment.
- Mozhe da ima nehkolko 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 vkljychva v bazoviut segment podprogramki za zamestvane na edin segment s dryg po vreme na izpulnenie.
- Dori da idvat ot edin i suq obekten modyl, razlichnite programni sekcii mogut da otidut v razlichni segmenti.
- Programistut proektira i razkrojava edna golehma programa na segmenti, taka che zamestvaniata na edin segment s dryg da se slychvat maksimalno rehdko.
- Pri nedobro razpredelenie na programnite sekcii i obektnite modyli po segmentite, proizvoditelnostta na programata mozhe da padne drastichno.
- (.. skrij gi sekciite i segmentite ..) (.. skrij go yvodut kum shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- V tozi podrazdel qe se pomuchu da pokazhu kak edno vreme bez virtyalna pamet se stroehxu
golemi programi za izpulnenie ot kompjytur.
- ◄► (.. skrij go yvodut ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų shestata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Neqo po sredata (.. pokazhi go ..) (.. razgunuto ..)
-
▼▼
Neqo po sredata
(.. skrij go ..)
(.. svij go ..)
(.. razguni go ..)
- ◄► Za da razberete tova neqo po sredata, trehbva da ste procheli neqoto kato yvod.
- ►► Dinamichnata preadresacia (.. pokazhi ..)
-
▼▼
Dinamichnata preadresacia
(.. skrij ..)
- Tova, koeto se slaga po sredata meghy CPU-to (centralniut procesor) i vunshniut za nego sveht, e MMU-to.
(.. Poveche za MMU-tata mozhete da prochetete tyka ..)- Vunshniut sveht za CPU-to se sustoi ot fizicheskata operativna pamet i ot periferiata.
- MMU-to stoi na izxodut ot CPU-to kum vunshniut sveht.
- Vseki adres, kojto CPU-to generira i praqa kum vunshniut sveht v zajavki za chetene ili za pisane, minava prez MMU-to.
- Kogato MMU-to ne raboti (ne e vkljycheno, izkljycheno e), adresite minavat prez MMU-to bez promehna.
- Mozhe da se smehta, che kogato MMU-to e izkljycheno, adresite ne minavat prez nego.
- Kogato obache MMU-to raboti (vkljycheno e), to promenja adresite i pyska kum vunshniut sveht drygi adresi.
- MMU-to izvurshva dinamichna preadresacia
- Adresite, koito vazhut vuv vunshniut sveht, se narichat fizicheski adresi.
- Te obrazyvat fizichesko adresno prostranstvo.
- Adresite, koito CPU-to generira i koito stigat samo do MMU-to, se narichat virtyalni adresi.
- Te obrazyvat virtyalno adresno prostranstvo.
- MMU-to izvurshva dinamichna preadresacia:
preobrazyva virtyalnite adresi vuv fizicheski. - CPU-to mozhe da vkljychva i da izkljychva MMU-to,
no samo kogato CPU-to e v sistemen (privilegirovan) rezhim (kernel mode, privileged mode),
ne i v potrebitelski rezhim (user mode).
- Bitovete na virtyalniut adres se deljųt na dve grypi - mladshi i starshi.
- Starshite bitove opredeljat "sudbata" na virtyalniut adres.
Pri "qastlivo" stechenie na obstojatelstvata,
te opredeljat bazoviut fizicheski adres,
kum kojto se dobavjat mladshite bitove,
za da se polychi fizicheskiut adres.
- Starshite bitove opredeljat "sudbata" na virtyalniut adres.
- Virtyalnite adresi sus suvpadaqi starshi bitove obrazyvat virtyalna stranica (virtual page).
- Virtyalnite adresi ot edna virtyalna stranica obiknoveno imat edna i suqa "sudba". (Izkljychenie: PDP-11)
- Kolko na broj su mladshite bitove na virtyalniut adres?
- Kolko e golehma edna virtyalna stranica?
- Tezi dva vuprosa, razbira se, su svurzani:
brojut na mladshite bitove na adresut opredelja razmerut na edna virtyalna stranica. - Zavisi ot arxitektyrata na kompjyturut i ot modelut na MMU-to.
- Pri nehkoi MMU-ta brojut na mladshite bitove na adresut e chast ot nastrojkata na tova ystrojstvo, i to raboti spored tekyqata si nastrojka.
- Pri IBM/System-370 ..
- brojut na mladshite bitove e 11, i suotvetno edna virtyalna stranica e 2048 bajta (2 kilobajta, 2K bajta, 2 na stepen 11 bajta).
- Spomnete si, che v IBM/360/370 tolkova e i razmerut na blokut pamet s obq 4-bitov kljych za zaqita.
- Adresut v sistemata IBM/370 e 24-bitov.
- Mladshite 11 bita na virtyalniut adres davat adresut vutre vuv virtyalnata stranica, a starshite 13 bita opredeljat koja e samata virtyalna stranica.
- Pri VAX brojut na mladshite bitove e 9, i suotvetno edna virtyalna stranica e 512 bajta (2 na stepen 9 bajta, polovin kilobajt).
- Pri po-novite kompjyturni 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..
- (.. pokazhi ..) MMU-to na PDP-11 ne e pokazatelno za drygite kompjytri, no tozi slychaj e obozrim. (.. pokazhi podrobnosti za MMU-to na PDP-11 tam ..)
-
MMU-to na PDP-11 ne e pokazatelno za drygite kompjytri, no tozi slychaj e obozrim.
(.. pokazhi podrobnosti za MMU-to na PDP-11 tam ..)
(.. skrij go PDP-11 ..)
- PDP-11 e 16-bitov kompjytur, i virtyalniut adres e 16-bitov.
- Brojut na mladshite bitove vuv virtyalniut adres e 13, a na starshite - 3.
- Tova oznachava, che:
- 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 sudurzha 8 (osem na broj: 2 na stepen 3) virtyalni stranici.
- Za da izvurshva dinamichnata preadresacia, MMU-to na PDP-11 polzva tablica s osem reda - tablica na virtyalnite stranici, po edin red za vsehka virtyalna stranica.
- V dejstvitelnost, MMU-to na PDP-11 ima dostup do dve takiva tablici: edna za sistemniut rezhim (kernel mode) na CPU-to, i dryga za potrebitelskiut rezhim (user mode).
- S drygi dymi, vuv vseki moment ima dve virtyalni adresni prostranstva - edno za "kernel mode" i drygo za "user mode".
- S prevkljychvaneto ot "kernel mode" vuv "user mode", CPU-to smenja vidimoto za nego virtyalno adresno prostranstvo.
- A kolko e golehmo fizicheskoto adresno prostranstvo pri kompjytrite PDP-11?
- Mladshite modeli nehmat MMU i fizicheskoto adresno prostranstvo e suqoto kato virtyalnoto.
- Mladshite modeli na PDP-11 su edno-potrebitelski kompjytri.
- Pri srednite modeli fizicheskite adresi su 18-bitovi i razmerut na fizicheskoto adresno prostranstvo e 256 K bajta (2 na stepen 18 bajta).
- Pri starshite modeli fizicheskite adresi su 22-bitovi i razmerut na fizicheskoto adresno prostranstvo e 4 M bajta (4 megabajta, 2 na stepen 22 bajta).
- Pri vsichki modeli gornite 8 K bajta ot fizicheskoto adresno prostranstvo su zadeleni za vxodno-izxodnata stranica.
- Ostanulata chast na fizicheskoto adresno prostranstvo e svobodna za razpolagane na fizicheska operativna pamet tam.
- Pri srednite modeli 248 K bajta e maksimalniut razmer na nalichnata fizicheska operativna pamet.
- Xarakterno za arxitektyrata na PDP-11 e tova, che razmerut na fizicheskoto adresno prostranstvo (to e 18-bitovo ili po-golehmo) nadvishava razmerut na virtyalnoto adresno prostranstvo.
- Pri PDP-11, MMU-to (dinamichnata preadresacia) dava na CPU-to vuzmozhnost da gleda po cehloto fizichesko adresno prostranstvo, kato prenastrojva i promenja virtyalnoto adresno prostranstvo.
- Virtyalnata stranica e dosta golehma po razmer - 8 K bajta.
- A puk nalichnata fizicheska operativna pamet pri PDP-11 e cènen resyrs,
- pri polozhenie, che srednite i starshite modeli se reklamirat kato mnogo-potrebitelski kompjytri.
- Fizicheskata operativna pamet se razpredelja za polzvane pò na drebno - na parcheta po 128 bajta.
- Edno takova parche se opredelja ot suvpadaqi starshi bitove na fizicheskiut adres, sled kato otrezhem mladshite 7 bita.
- Edna virtyalna stranica (8 K bajta) mozhe da sudurzha 64 na broj 128-bajtovi parcheta.
- Kolko tochno takiva parcheta su naznacheni za virtyalnata stranica - tova mozhe da se ykazhe sus 6 bita.
- Sxema na 16-bitov virtylen adres pri PDP-11:
P P P L L L L L L Λ Λ Λ Λ Λ Λ Λ ................. Λ Λ Λ Λ Λ Λ Λ => 7 naj-mladshi bita ..... L L L L L L ............. => 6 sredno mladshi bita P P P ......................... => 3 starshi bita
- P: trite starshi bita opredeljat edna ot 8-te virtyalni stranici na virtyalnoto adresno prostranstvo.
- Λ: 7-te naj-mladshi bita se zapazvat bez promehna vuv fizicheskiut adres sled dinamichnata preadresacia.
- L: 6-te sredni bita opredeljat 128-bajtovoto parche ot fizicheskata pamet. Ako takova parche ne e naznacheno, adresut e nevaliden.
- L: tezi 6 bita, razgleghani kato dvoichno chislo bez znak, se pribavjat kum bazovoto chislo ot specialniut registur PAR za suotvetnata virtyalna stranica.
- Sxema na 18- ili 22-bitov fizicheski adres pri PDP-11:
b b b b B B B B B B B B B B B Λ Λ Λ Λ Λ Λ Λ ............................. Λ Λ Λ Λ Λ Λ Λ => 7 naj-mladshi bita b b b b B B B B B B B B B B B ............. => 11 ili 15 starshi bita
- Λ: 7-te naj-mladshi bita su kopirani ot virtyalniut adres.
- bB: starshite bitove na fizicheskiut adres se polychavat, kato kum bazovoto chislo ot specialniut registur PAP se pribavi 6-bitovoto chislo LLLLLL ot virtylniut adres.
- I tuj, MMU-to na PDP-11 vuv vseki moment predostavja dve virtyalni adresni prostranstva:
- edno za sistemen rezhim (kernel mode) i drygo za potrebitelski rezhim (user mode).
- Vsehko ot dvete virtyalni adresni prostranstva se sustoi ot osem virtyalni stranici.
- Za vsehka virtyalna stranica vuv MMU-to ima po dva specialna registura:
- PAR (Page Address Register). Sudurzha starshite bitove na fizicheskiut adres na nachaloto na stranicata, sled kato mladshite sedem bita su otsecheni.
- PDR (Page Descriptor Register). Opisva virtyalnata stranica.
- CPU-to kazva na MMU-to dali dostuput do virtyalnata stranica izobqo e razreshen.
- CPU-to kazva na MMU-to dali vuv virtyalnata stranica e razresheno pisane (e razreshena promehna).
- CPU-to kazva na MMU-to kolko 128-bajtovi parcheta fizicheska pamet su zadeleni za virtyalnata stranica.
- CPU-to kazva na MMU-to dali tezi 128-bajtovi parcheta fizicheska pamet su razpolozheni v nachaloto ili v krajut na virtyalnata stranica.
Ydobno e virtyalna stranica, izpolzvana za stek (stack), da zapochva ot krajut na adresniut diapazon. - MMU-to kazva na CPU-to dali virtyalnata stranica e bila promenjana.
- Osven tova, ima nehkolko specialni registura obqo za MMU-to, taka che:
- CPU-to da mozhe da go pyska MMU-to i da go spira,
- MMU-to da mozhe da kazhe na CPU-to zaqo virtyalen adres e nevaliden i kak da se izleze ot sityaciata.
- Rezjymé: Kakvo pozvoljava MMU-to na PDP-11? Za kakvo se polzva to?
- Fizicheskoto adresno prostranstvo da e po-golehmo ot virtyalnoto adresno prostranstvo, koeto e ogranicheno do 64 K bajta.
- Izolirane na potrebitelite edin ot dryg.
- Bazoviut segment i stekut mozhe da zapochvat ot edni i suqi virtyalni adresi za koj da e potrebitel.
- Sled dinamichnata preadresacia polychenite fizicheski adresi qe su razlichni za razlichnite potrebiteli.
- Edin konkreten potrebitel izobqo ne mozhe da vigha fizicheskata pamet izvun pokazanoto v negovoto virtyalno adresno prostranstvo.
- V ramkite na obslyzhvaneto na edin potrebitel.
- Na edin potrebitel pri nygha mozhe da my bude zadelena fizicheska operativna pamet,
poveche otkolkoto toj mozhe v daden moment da vigha prez virtyalnoto si adresno prostranstvo.
- Virtyalnoto adresno prostranstvo e 64 K bajta.
- A mozhe da ima i 100 K bajta nalichna fizicheska operativna pamet, svobodna za razpredelenie.
- MMU-to na PDP-11 pozvoljava prezareghane na virtyalni stranici, taka che v razlichni momenti edna virtyalna stranica da gleda kum razlichni segmenti na fizicheskata operativna pamet.
- Na edin potrebitel pri nygha mozhe da my bude zadelena fizicheska operativna pamet,
poveche otkolkoto toj mozhe v daden moment da vigha prez virtyalnoto si adresno prostranstvo.
- Obslyzhvane na poveche potrebiteli, otkolkoto nalichnata fizicheska operativna pamet bez MMU bi pozvolila.
- Fizicheska operativna pamet e cènen resyrs, podlezhaq na razpredelenie meghy potrebitelite suobrazno texnite nyghi i prioriteti.
- Parche fizicheska operativna pamet, obiknoveno s razmer na virtyalna stranica, koeto e naznacheno na potrebitel v sustojanie na ochakvane na neqo ili na potrebitel s nisuk prioritet, mozhe da bude zapisano na diskut v specialen fajl (swap file), bez tozi "oqeten" potrebitel da "suznava" kakvo stava, i mehstoto vuv fizicheskata operativna pamet da se dade na dryg potrebitel.
- V momentut, kogato "oqeteniut" potrebitel otnovo se "subydi" za rabota, negovoto virtyalno adresno prostranstvo se zaregha v MMU-to, no onova parche pamet, koeto e bilo zapisano na diskut v specialniut fajl, ne se vruqa vuv fizicheskata pamet.
- Virtyalniut adres, kojto sochi kum nego, qe bude nevaliden.
- Mozhe da ne se slychut obruqenia kum tazi nevalidna virtyalna stranica, kojato otdavna e bila izgonena ot fizicheskata operativna pamet na diskut. Tja qe si ostane na diskut.
- No ako ima obruqenie kum nejų, MMU-to qe raportyva nevaliden adres,
a operacionnata sistema qe se seti kakvo da napravi.
- Potrebiteljut qe mine v sustojanie na ochakvane.
- Qe my bude zadelena nyzhnata fizicheska operativna pamet.
- Na tova novo mehsto qe bude prochetena ot diskut iskanata virtyalna stranica.
- Virtyalnata tablica qe bude promenena, taka che tazi virtyalna stranica da gleda kum tova novo mehsto.
- Potrebiteljut qe mine v sustojanie na gotovnost.
- Ako nastane moment tozi potrebitel pak da otstupi nazad i da dade predimstvo na drygi, i ako pri tova fizicheska operativna pamet, zadelena za tazi virtyalna stranica, trehbva pak da bude osvobodena za drygi nyghi, operacionnata sistema qe proveri dali tazi virtyalna stranica e bila promenjana, dokato e prebivavala vuv fizicheskata operativna pamet.
- Ako ne e bila, parcheto fizicheska pamet prosto se osvoboghava.
- No ako e bila promenjana, parcheto fizicheska pamet se osvoboghava, edva sled kato zapisut vurxy diskut se opresni.
- (.. skrij go PDP-11 ..) (.. skrij go PDP-11 ..)
- (.. skrij jų dinamichnata preadresacia ..) (.. skrij go tova po sredata na shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Tova, koeto se slaga po sredata meghy CPU-to (centralniut procesor) i vunshniut za nego sveht, e MMU-to.
- ►► Obqo virtyalno adresno prostranstvo za cehlata sistema (.. pokazhi ..)
-
▼▼
Obqo virtyalno adresno prostranstvo za cehlata sistema
(.. skrij ..)
- V predishniut podrazdel navlehzox v nehkoi 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 sravnjų nakratko.
- MMU-to na PDP-11 izobrazjava malko virtyalno adresno prostranstvo vurxy po-golehmo fizichesko adresno prostranstvo.
- Pri IBM/370 fizicheskoto adresno prostranstvo realno e po-malko ot virtyalnoto.
- MMU-to na PDP-11, kakto i vsichki po-novi MMU-ta, predostavjat otdelni virtyalni adresni prostranstva za razlichnite rezhimi na CPU-to - sistemniut i potrebitelskiut (kernel-user mode).
- MMU-to na IBM/370 predostavja samo edno virtyalno adresno prostranstvo.
- MMU-to na IBM/System-370 e trehbvalo da poddurzha zaqitata po 4-bitov kljych, nasledena ot IBM/System-360.
- MMU-to na PDP-11 pozvoljava razresheniut diapazon na adresite v edna virtyalna stranica da e po-maluk ot samata virtyalna stranica.
Fizicheskata pamet se razpredelja na parcheta po 128 bajta. - Pri IBM/360/370 pametta se razpredelja samo po celi stranici, 2 K bajta vsehka.
- Pri PDP-11, MMU-to e chast ot arxitektyrata na kompjyturut ot samoto nachalo.
- Pri IBM/360/370, MMU-to idva kato kusno dopulnenie na veche ystanovila se suqestvyvaqa arxitektyra.
- Zatova, pri vuveghaneto na razshirenata arxitektyra IBM/370, purvata rabota na razrabotchicite na sistemniut softwer e da se pysne natrypaniut za IBM/360 softwer, sistemen i prilozhen, i to s minimalni promeni.
- Ysiliata su bili nasocheni kum virtyalizacia.
- Fizicheskata operativna pamet e da kazhem 512 K bajta (polovin megabajt).
Modeli na IBM/370 s pamet poveche ot edin megabajt maj ne su pyskali. - Vuv diskov fajl (page file) se modelira virtyalna pamet da kazhem dva megabajta.
To i diskovoto prostranstvo e kut.
Maksimalniut razmer e 16 M bajta. - Starata sistema - tazi, kojato e rabotila godini nared na IBM/System-360 i kojato ne podozira za takiva neqa kato MMU, dinamichna preadresacia i virtyalni adresi, se pyska da raboti pri pamet dva megabajta.
- Samo deto tazi pamet e virtyalna.
- Cehlata virtyalna pamet jų ima na diskut.
- Virtyalnite stranici, koito se polzvat v momentut, su zaredeni vuv fizicheskata operativna pamet, i MMU-to dinamichno preobrazyva virtyalnite adresi v realni fizicheski adresi.
- V nehkakuv moment se slychva obruqenie kum virtyalna stranica, kojato ne e zaredena vuv fizicheskata operativna pamet,
- MMU-to qe suobqi za tova subitie na CPU-to chrez prekusvane.
- V slychajut 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 reshi koja virtyalna stranica izmeghy zaredenite v pametta da bude izgonena ottam, za da se osvobodi mehsto za novo-poiskanata virtyalna stranica.
- Qe bude izgonena tazi, kum kojato ne e imalo obruqenie naj-otdavna.
- MMU-to qe kazhe dali tazi stranica e bila promenjana po vreme na prestojut si vuv fizicheskata operativna pamet.
- Ako e bila promenjana, nejniut zapis vurxy diskut qe se opresni.
- Sled tova iskanata virtyalna stranica - tazi, kojato e predizvikala prekusvaneto, qe bude zaredena ot diskut na osvobodenoto mehsto vuv fizicheskata operativna pamet, i izpulnenieto qe produlzhi ot mehstoto na prekusvane.
- Prekusnutata programa nehma da zabelezhi prekusvaneto.
- Novo-napisaniut sistemen softwer trehbva da prixvaqa i drygi neqa ot starata sistema.
- Komandite za rabota s 4-bitovite kljychove za zaqita trehbva da budut prixvaqani.
- Tezi kljychove vazhut za virtyalnite stranici, suqestvyvaqi samo kato kopie v diskoviut fajl.
- Komandite za start na vxod-izxod i prekusvaniata otkum sistemata za vxod-izxod trehbva da budut prixvaqani,
- zaqoto byferite za vxod-izxod trebva da ostanut vuv fizicheskata operativna pamet.
- Oqe neqo. Tezi byferi imat razlichni virtyalni i fizicheski adresi, a sistemata za vxod-izxod trehbva da znae samo fizicheskite adresi.
- Fizicheskata operativna pamet e da kazhem 512 K bajta (polovin megabajt).
- Osven IBM/370, ne znajų dryg slychaj, kogato pri virtyalna pamet i "istinsko" MMU
da se poddurzha obqo virtyalno adresno prostranstvo za cehlata sistema.
- Pri IBM/370 tova se e nalozhilo, za da mozhe 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 shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Vseki potrebitel s otdelno virtyalno adresno prostranstvo (.. pokazhi ..)
-
▼▼
Vseki potrebitel s otdelno virtyalno adresno prostranstvo
(.. skrij ..)
- V predishniut podrazdel pokazax koe e bilo naj-malkoto, koeto razrabotchicite na sistemniut softwer na IBM/System/360/370 e trehbvalo da napravjųt, za da izpolzvat noviut xardwer - MMU-to.
- Osigyrili su golehmo virtyalno adresno prostranstvo.
- Na purvo vreme - edno za cehlata 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 nehkolko virtyalni adresni prostranstva - po edno za potrebitel.
- Vsehka virtyalna stranica, zapisana v specialniut fajl, se identificira ne samo s virtyalniut si adres, no i s identifikatorut na potrebiteljut.
- Vseki potrebitel polychava svoe virtyalno adresno prostranstvo.
- No, razbira se, ne s maksimalniut razmer (16 M bajta pri IBM/370), a samo tolkova, kolkoto my e nyzhno.
- Staroto ogranichenie - 15 - za brojut na ednovremenno obslyzhvanite potrebiteli, nalozheno ot 4-bitoviut kljych za zaqita pri IBM/360, otpada.
- Specialniut diskov fajl mozhe da sudurzha stranicite na poveche ot 15 virtyalni adresni prostranstva.
- Potrebitelite su izolirani edin ot dryg - vseki vigha samo svoeto virtyalno adresno prostranstvo.
- Vuv vsehka 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 trehbva da se suobrazjava s 4-bitoviut kljych za zaqita, nasleden ot IBM/370.
- Razvitieto na sistemniut softwer pri IBM/370 e vurvehlo v dve posoki:
- Starite operacionni sistemi, koito potrebitelite dobre poznavat ot IBM/360, se modificirat taka, che vseki potrebitel v terminite na starata sistema da polychi svoe virtyalno adresno prostranstvo.
- Razrabotena e nova operacionna sistema VM/370, kojato mozhe da obslyzhva mnogo potrebiteli.
- Razbira se, programi mogut da se izpulnjavat neposredstveno na operacionnata sistema VM/370.
- VM e sukraqenie na Virtual Machines.
- Sistemata VM/370 mozhe da igrae roljata na domakin, kato potrebitelite ï su ï gosti.
- Kato domakin tja mozhe da predostavi na vseki svoj gost otdelna virtyalna mashina - otdelen virtyalen kompjytur.
- Arxitektyrata na predostavenata na gostut virtyalna mashina - IBM/360 ili IBM/370, kakto i konfigyraciata, e po izbor.
- Sistemata VM/370 kato domakin simylira za gostut izbranata ot nego virtyalna mashina.
- Za domakinut VM/370 edin gost e edin potrebitel.
- No gostut mozhe da pysne na svojata si virtyalna mashina 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 nehkolko takiva.
- Taka na svojata si virtyalna mashina gostut mozhe da obslyzhva svoi potrebiteli.
- Nakratko, novata operacionna sistema VM/370 predostavja na vseki svoj potrebitel, kogoto az tyka naricham gost, ne samo i ne tolkova otdelno virtyalno adresno prostranstvo, a otdelna virtyalna mashina.
- Osnovna grizha na razrabotchicite 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 shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Potrebiteli, sesii, procesi i nishki (.. pokazhi ..)
-
▼▼
Potrebiteli, sesii, procesi i nishki
(.. skrij ..)
- Edno vreme - pri IBM/System/360/370, pri paketnata obrabotka i predi sistemata Unix - tezi ponjatia ne behxu dobre opredeleni.
- V predishnite razdeli i podrazdeli na tazi beseda ypotrebjavax nehkakvo nedobre definirano ponjatie potrebitel.
- Pri paketnata obrabotka (batch procesisng) tochnata dyma beshe job, no ne mogu da namerjų podxodjaqa bulgarska dyma za job.
- Nehkoga dymata job jų preveghaxme na bulgarski i na ryski s dymata zadanie.
- Dymata zadanie ne se vpisva dobre v kontekstut na nastojaqata beseda.
- Zatova dosega pishex potrebitel.
- No nastanu vreme ponjatiata da se ytochnjųt.
- Ytochnenieto dojde sus sistemata Unix.
- Da napomnjų, che virtyalna pamet bez diskova pamet nema.
- Na virtyalnata pamet e posvetena nastojaqata beseda, a na diskovata pamet - predishnata.
- V predishnata beseda maj behx napisal, che bez diskovata pamet i sistemata Unix jų nehma.
- Potrebitelite (users).
- Opisanieto na potrebitelite se namira v "zorko oxranjavan" fajl na sistemniut disk.
- V nashite moderni vremena opisanieto na potrebitelite mozhe da se namira v nehkoj oblak tumen.
- Tova znachi da se namira na disk na nehkoj survur, razpolozhen v nehkoja tochka ot globysut ili ot kosmosut.
- Survurut e moqen kompjytur.
- Oblachnostta na globalnata mrezha se sustoi ot survuri, koito menjųt lokaciata si kato strategicheski jadreni raketi.
- V nastojaqata si beseda oblachnostta qe jų ignoriram.
- Vse pak, az pishu predimno za minuloto.
- Edin potrebitel se identificira s imeto si (username).
- Potrebiteljut si ima i parola.
- Potrebiteljut e sobstvenik na nehkoi fajlove na diskut, i kum tehx toj ima pulen dostup.
- Kum drygi fajlove edin potrebitel mozhe da ima ogranichen dostup, ili puk mozhe da nehma nikakuv dostup.
- Tozi vazhen aspekt - dostuput na potrebitelite do diskovite fajlove, nehma otnoshenie kum virtyalnata pamet.
- Mozhe bi trehbvashe da bude razgledan v predishnata beseda.
- Kak da e. Za dostuut na potrebitelite do diskovite fajlove - tolkova.
- Opisanieto na potrebitelite se namira v "zorko oxranjavan" fajl na sistemniut disk.
- Sesiite.
- Potrebiteljut otvarja i zatvarja sesii.
- Otvarjaneto na sesia se naricha LogIn ili SignIn,
- a zatvarjaneto - LogOut ili SignOut.
- Ot gledna tochka na potrebiteljut v ramkite na sesiata toj izpulnjava programi - potrebitelski programi, prilozhni programi, prilozhenia, applications.
- Naprimer az sega kato pensioner na laptoput si naj-chesto izpulnjavam dve prilozhenia - brawzerut (the internet browser), s kojto rovjų iz internet, i redaktorut, s kojto vuvegham tekstovete na html.
- Procesite.
- Za izpulnenieto na vsehka kompjyturna programa (vkljychitelno na vsehko prilozhenie), operacionnata sistema pyska proces.
- Edin proces mozhe da pyska drygi procesi.
- V povecheto slychai, samata operacionna sistema raboti kato vzaimodejstvaqi si procesi.
- Edin proces mozhe sam da si zavurshi (to terminate).
- Mozhe i privilegirovan proces da go terminira (to be terminated).
- Ponjatieto proces e naj-vazhnoto vuv vruzka s MMU-tata. toest v kontekstut na nastojaqata beseda.
- Procesut e tova neqo, koeto ima svoe otdelno virtyalno adresno prostranstvo.
- Procesite, raboteqi ednovremenno, se konkyrirat edin dryg za resyrsite na kompjyturut.
- Obache procesite su izolirani edin ot dryg v operativnata pamet.
- Kogato CPU-to prevkljychva ot edin proces na dryg, CPU-to prevkljychva ot edno virtyalno adresno prostranstvo na drygo.
- Vsehka sesia se predstavja sus svojut bazov proces.
- Kogato potrebiteljut otvori sesia, za nejų se pyska proces - bazov proces za sesiata.
- Za izpulnenieto na razni prilozhenia v ramkite na sesiata, tozi bazov proces pyska drygi procesi.
- Ignorirajki detajli, bazoviut proces na sesia mozhete da si go mislite kato interpretator na komandi ili kato manager na ekranut.
- Nishkite (threads).
(.. advanced topic .. za naprednuli ..)
- Dymata nishka idva kato sukraqenie na izrazut nishka na izpulnenie (execution thread).
- Nishkite su tezi, koito se konkyrirat za "vnimanieto" na CPU-to.
- Ponehkoga slozhni programi se nyghajųt ot nehkolko nishki, koito se izpulnjavat ednovremenno na CPU-to.
- Ako dve nishki su chast ot edin i suq proces, to te rabotjųt v edno i suqo virtyalno adresno prostranstvo.
- Procesut mozhe da si go mislite kato nishka, no ne kakva da e, a nishka sus sobstveno virtyalno adresno prostranstvo.
- Edin proces mozhe da pysne dryg proces - dryg otdelen proces s otdelno virtyalno adresno prostranstvo.
- No suqo taka, edin proces mozhe da pysne dryga nishka vuv svoeto virtyalno adresno prostranstvo.
- Novata nishka qe e chast ot procesut, kojto jų e pysnul.
- Tja suqo taka mozhe da pysne dryga nishka v suqoto virtyalno adresno prostranstvo, toest dryga nishka kum suqiut proces.
- Nishkite, prinadlezhaqi kum edin i suq proces, ne su izolirani edna ot dryga, ponezhe polzvat obqo virtyalno adresno prostranstvo.
- Zabelezhka. Korektnoto vzaimodejstvie meghy nishkite v edin proces iziskva specialni ymenia y programistut.
- Vladeeneto na multi-threading-ut (mnogo-nishkovoto programirane) sledva izrichno da se objavi v CV-to.
- Ako rabotata iziskva multi-threading, tova ymenie se proverjava na intervjytata za rabota.
- Disclaimer. Razpredelenieto na rabotata vurxy mnogo kompjytri, razpolozheni blizo ili dalech edin ot dryg, e otvud predmetut na besedata.
- (.. skrij gi procesite i nishkite ..) (.. skrij go tova po sredata na shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Edno vreme - pri IBM/System/360/370, pri paketnata obrabotka i predi sistemata Unix - tezi ponjatia ne behxu dobre opredeleni.
- ◄► (.. skrij go tova po sredata ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų shestata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ►► Neqo kato zakljychenie (.. pokazhi go zakljychenieto ..) (.. razgunuto ..)
-
▼▼
Neqo kato zakljychenie
(.. skrij go ..)
(.. svij go ..)
(.. razguni go ..)
- ◄► Kato zakljychenie: Za kakvo slyzhi virtyalnata pamet.
- ►► Fizicheskoto adresno prostranstvo da e po-golehmo ot virtyalnoto (.. pokazhi ..)
-
▼▼
Fizicheskoto adresno prostranstvo da e po-golehmo ot virtyalnoto
(.. skrij ..)
- Takuv e slychajut pri 16-bitovite kompjytri.
- Pri tehx virtyalnoto adresno prostranstvo e tvurde malko - samo 64 K bajta.
- Dinamichnata preadresacia kum fizicheski adresi mozhe da predostavi dostup do operativna pamet s po-golehm razmer.
- V tazi beseda veche be razgledano MMU-to na PDP-11.
- Tyka trehbva da spomenu Intel 8086/8088 - procesorite, izpolzvani v purvite personalni kompjytri na IBM.
- Za razlika ot PDP-11, MMU-to pri 8086/8088 ne si postavja drygi celi osven razshirenieto na fizicheskoto adresno prostranstvo.
- Mnogo-potrebitelska rabota ne se osigyrjava.
- (.. skrij go golehmoto fizichesko adresno prostranstvo ..) (.. skrij go zakljychenieto kum shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Golehmo virtyalno adresno prostranstvo (.. pokazhi ..)
-
▼▼
Golehmo virtyalno adresno prostranstvo
(.. skrij ..)
- Oburnete vnimanie na dve kljychovi dymi: golehmo i virtyalno.
- Golehmoto adresno prostranstvo e virtyalno.
- Da, to mozhe da e virtyalna pamet s ogromen razmer.
- Mozhe da subere danni za obrabotka, mnogo poveche ot predi.
- Predi dinamichnata preadresacia i MMU-tata tolkova danni ne mozhexu da se poberut v operativnata pamet.
- Programistut trehbvashe da se pogrizhi da gi organizira dannite v diskov fajl.
- Sega na programistut qe my e po-lesno. Qe razpolozhi dannite vuv virtyalnata pamet i te "nagled" postojanno qe su my pod ruka.
- Obache tova e samo ylesnenie za programite i za programistite.
- Prirodata ne mozhe da bude izlugana.
- Sistemniut softwer s pomoqta na MMU-to qe modelira golehmata virtyalna pamet vurxy diskut.
- Qe go pravi skrito ot programistut, kojto nehma da ima grizhata.
- Virtyalno adresno prostranstvo e golehmo.
- Da, to mozhe da e virtyalna pamet s ogromen razmer.
- Programata mozhe da e tolkova golehma, che predi dinamichnata preadresacia i MMU-tata da ne e mozhela da se pobere v operativnata pamet.
- Programistite su razdeljali golemite programi na pripokrivaqi se segmenti.
- Vurnete se da prochetete tozi podrazdel.
- Sega programata verojatno qe se subere v golehmata virtyalna pamet i programistut nehma da ima grizhata da jų segmentira.
- Obache tova e samo ylesnenie za programistite.
- Prirodata ne mozhe da bude izlugana.
- Sistemniut softwer s pomoqta na MMU-to qe modelira golehmata virtyalna pamet vurxy diskut.
- Vmesto prezareghane na programni segmenti, opredeleni ot programistut, qe se slychva avtomatichno prezareghane na virtyalni sranici.
- Vseki proces si ima svoe virtyalno adresno prostranstvo, i to e virtyalno.
- Procesut raboti ne s realni fizicheski adresi, a s virtyalni adresi, koito podlezhut na avtomatichno dinamichno preobrazyvane v realni fizicheski adresi ot MMU-to.
- Predi, bez dinamichna preadresacia, linkerut trehbva da nastroi proizveghanata ot nego izpulnima programa (executable) kum adresut na razdelut v operativnata pamet, v kojto razdel executable-ut qe se pysne da se izpulnjava.
- Sega, linkerut mozhe da nastroi proizveghaniut ot nego executable kum ygovoren fiksiran adres (obiknoveno nad mehstoto, zadeleno za stack).
- Tozi predvaritelno ygovoren adres e virtyalen.
- Toj e adres vuv virtyalnoto adresno prostranstvo za tozi proces.
- Na kakuv fizicheski adres otgovarja - za tova ne trehbva da se grizhim.
- Tova qe stane jasno edva pri pyskane na programata.
- Pri razlichni pyskania na programata fizicheskiut adres mozhe da e razlichen.
- Fiksiran e virtyalniut adres.
- (.. skrij go golehmoto virtyalno adresno prostranstvo ..) (.. skrij go zakljychenieto kum shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Izolacia na procesite edin ot dryg (.. pokazhi ..)
-
▼▼
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 mozhe da pishe iz pametta na drygite procesi ili na operacionnata sistema, zaqoto nehma dostup.
- Procesut vigha samo tova, koeto my se pokazva v negovoto virtyalno adresno prostranstvo.
- Kum vsehka stranica ot virtyalnoto adresno prostranstvo na procesut dostuput mozhe da e razreshen, da e napulno zabranen, ili da e samo za chetene.
- Procesut nehma vuzmozhnost da navredi na drygite.
- Da ne mozhe da se navredi na drygite - tova e osnovnoto v mnogo-potrebitelskata rabota na kompjyturut.
- (.. skrij jų izolaciata na procesite ..) (.. skrij go zakljychenieto kum shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- Vseki proces raboti vuv svoe virtyalno adresno prostranstvo i taka e izoliran ot drygite procesi.
- ►► Dinamichni biblioteki (.. pokazhi gi ..)
-
▼▼
Dinamichni biblioteki
(.. skrij gi ..)
- Vurnete se da prochetete tozi podrazdel.
- Dinamichni biblioteki. Celiut izraz e biblioteki s dinamichno svurzvane.
- DLLs: Dynamically Linked Libraries.
- Narichani oqe: shared objects, shared libraries ili razdeljaemi biblioteki.
- Za fynkcionalnostta na DLL-ite doprinasja ne samo dinamichnata preadresacia (MMU-tata), no i vuzmozhnostta, kojato suvremennite kompjyturni arxitektyri predostavjat, kompilatorite da generirat samo pozicionno nezavisim kod (PIC: position independent code).
- Edna dinamichna biblioteka i edin executable si prilichat mnogo.
- Rezyltat su ot rabotata na linkerut.
- Sudurzhat ili kod (mashinni instrykcii - kod, izpulnim ot CPU-to), ili danni.
- Mogut da se zareghat v operativnata pamet za izpulnenie.
- Obache ot executable mozhe da se startira proces, a ot dinamichna biblioteka ne mozhe.
- Edin executable objavjava na operacionnata sistema ot koja vxodna tochka da se startira procesut.
- Edna dinamichna biblioteka nehma specialna vxodna tochka.
- Obruqeniata kum sudurzhaqite se v nejų podprogrami i danni trehbva da dojdut ot drygi programi, a ne ot operacionnata sistema.
- Tezi obruqenia se svurzvat i nastrojvat po vreme na zareghaneto na dinamichnata biblioteka vuv virtyalnoto adresno prostranstvo na procesut.
- Kogato edna dinamichna biblioteka se zaregha vuv virtyalnoto adresno prostranstvo na proces, nyghaeq se ot nejų, namira ï se tam mehsto.
- Ako suqata dinamichna biblioteka se zaredi vuv virtyalnoto adresno prostranstvo na dryg proces, tja mozhe da bude namestena na dryg virtyalen adres.
- Dvata procesa izpolzvat edno i suqo kopie na dinamichnata biblioteka vuv fizicheskata operativna pamet.
- Zatova e vazhno podprogramite ot dinamichnata biblioteka da su v pozicionno nezavisim kod.
- (.. skrij gi dinamichnite biblioteki ..) (.. skrij go zakljychenieto kum shvstata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ►► Virtyalni mashini (.. pokazhi ..)
-
▼▼
Virtyalni mashini
(.. skrij ..)
- Dymata virtyalen oznachava simyliran ili modeliran, a virtyalizacia - simylacia ili modelirane.
- A dymata mashina oznachava kompjytur, razbira se.
- Za sistemata VM/370, kojato predostavja gostyvaqi virtyalni mashini s arxitektyra, podobna na arxitektyrata na kompjyturut-domakin, stanu dyma tyka.
- Idejata za virtyalizacia na operativnata pamet - idejata za virtyalna pamet, se prenasja kum celiut kompjytur - kum cehlata mashina.
- Pojavjava se idejata za virtyalna mashina.
- Na pruv pogled - otsam xorizontut, trehbva da se spomenut
virtyalnite mashini, koito simylirat-modelirat realni mashini.
- Realna mashina - oznachava mashina, suqestvyvaqa v xardwerno izpulnenie.
- Sled sistemata VM/370, veche ima mnogo prilozhen softwer za virtyalni mashini.
- Ima dazhe softwer, kojto simylira mashina sus suvsem dryga arxitektyra.
- Naprimer, virtyalna mashina s arxitektyra VAX, raboteqa na mashina-domakin, kojato ne e VAX.
- Virtyalnite mashini imat shiroko prilozhenie
- kakto za testvane na programi, kogato celeviut xardwer ne e nalichen,
- taka i za myltiplicirane, kogato edin nov moqen model idva da zameni stari mashini v nehkolko obrabotki.
- A ottatuk xorizontut, na sledvaqo nivo na abstrakcia, su
virtyalnite mashini, suqestvyvaqi izcehlo kato softwerna ideja, bez vruzka v nikakuv xardwer.
(.. Tova izliza ot temata na nastojaqata beseda ..)
- Na purvo mehsto sledva da se spomene virtyalnata mashina na ezikut Java - JVM: Java Virtual Machine.
- Tja izpulnjava programi na ezikut Java.
- Programite na ezikut Java se izpulnjavat na takava mashina.
- Za vseki ot ezicite za programirane, koito ne se kompilirat, a se interpretirat, mozhe da se izgradi suotvetna ideja za virtyalna mashina.
- Osven Java, takiva ezici su PERL, Python, PHP, LISP i drygi.
- Na purvo mehsto sledva da se spomene virtyalnata mashina na ezikut Java - JVM: Java Virtual Machine.
- (.. skrij gi virtyalnite mashini ..) (.. skrij go zakljychenieto kum shestata beseda ..) (.. svij go ..) (.. razguni go ..) .. kum nachaloto ..
- ◄► (.. skrij go zakljychenieto ..) (.. svij go ..) (.. razguni go ..) (.. skrij jų shestata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
- ◄► (.. skrij jų shestata beseda za dinamichnata preadresacia ..) (.. svij jų ..) (.. posvij ili porazguni ..) (.. razguni jų ..) .. kum nachaloto ..
►► 8. [Draft] Xymannata aritmetika na kompjytur (.. pokazhi jų sedmata beseda ..) (.. razgunuto ..) .. kum nachaloto ..
- Kolkoto pò ostarehvam, tolkova pò se vdetinehvam.
- S tova qe se yprazhnjavam na JavaScript.
- Qe ychu kompjyturut na suqata aritmetika, kakto decata v nachalnoto ychiliqe.
- May appear in the future: Ne e napisano oqe. Jà dozhivejų da go napishu, jà ne.
▼▼ 8. [Draft] Xymannata aritmetika na kompjytur (.. skrij jų sedmata beseda ..) (.. svij jų ..) (.. razguni jų ..) .. kum nachaloto ..
-
In development: Ne e napisano oqe.
- ◄►
- ◄►
- ◄► (.. skrij jų sedmata beseda za xymannata aritmetika ..) (.. svij jų ..) (.. posvij ili porazguni ..) (.. razguni jų ..) .. kum nachaloto ..
►► 9. Prepratki (references) (.. pokazhi gi ..) .. kum nachaloto ..
▼▼ 9. Prepratki (references) (.. skrij gi ..)
- christotamarin.blog: Zhitejska programa
- christotamarin.blog: XT Keyboard Layouts Reference: Klaviatyri s razshirena 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) (.. pokazhi gi komentarite ..) (.. razgunuti ..) .. kum nachaloto ..
▼▼ 10. Komentari, vuprosi i otgovori (comments, Q&As) (.. skrij gi ..) (.. svij gi ..) (.. razguni gi ..) .. kum nachaloto ..
Ako ima vupros ili komentar, na kojto trehbva da otgovorjų, qe prepishu vuprosut ili komentarut tyka i qe otgovorjų tyka.
- ►► ::christo.tamarin, 2023-04-13 20:34:: The history of IT at a glance (.. pokazhi tyka ..) (.. razgunuto ..) (.. pokazhi vuv facebook: .. tam .. ili tam ..) .. kum nachaloto ..
-
▼▼
::christo.tamarin, 2023-04-13 20:34:: The history of IT at a glance
(.. skrij ..)
(.. svij ..)
(.. razguni ..)
(.. pokazhi vuv facebook: ..
tam .. ili
tam ..)
.. kum nachaloto ..
- ◄► Istoriata na informacionnite texnologii nakratko Tozi tekst ne e zavurshen. Jà go zavurshu, jà ne.
- ►► Programisti (.. pokazhi ..)
-
▼▼
Programisti
(.. skrij ..)
- Smehta se, che purvata programistka e bila Ada Luvlejs (Ada Lovelace), duqerja na poetut Bajron i sutrydnichka na Charlz Babixh (Charles Babbage).
- Obache prez zhivotut si izpulnenie na svoja programa tja ne e vighala, ponezhe kompjyturut na Charlz Babixh ne e vlehzul v dejstvie.
- Realno purvite na svetut programisti su nastrojchicite na zhakardovite tukachni stanove.
- ►► Bazi danni (.. pokazhi ..)
-
▼▼
Bazi danni
(.. skrij ..)
- Arxivi i biblioteki su purvite bazi danni.
- Sledvaqiut suqestven moment v razvitieto e xoleritovata texnika na firmata IBM ot krajut na 19-ti i prez 20-ti vek.
- Bazi danni v kompjyturnata era.
- Purvo qe spomenu bazite danni po jerarxichniut ili po mrezhoviut model.
- Kobolistite (programistite na COBOL) behxu nalozhili ezikut CODASYL.
- Nehma maj takiva neqa veche.
- Sega vsehka fajlova sistema mozhe da se smehta za jerarxichna baza danni.
- Nalozhi se relacionniut model na bazite danni i ezikut SQL.
- ►► Kalkylatori (.. pokazhi ..)
-
▼▼
Kalkylatori
(.. skrij ..)
- Smetalà.
- Edno vreme vuv vsehka klasna staja v nachalnoto ychiliqe (v otdeleniata) imashe golehmo smetalo,
- a vseki vtoroklasnik imashe malko smetalo kato ychebno posobie.
- Imashe i yroci za rabota s takiva smetalà.
- Vupreki tova bulgarskoto obrazovanie se provaljashe pri ysvojavaneto na ymeniata za rabota sus smetalata.
- Magazinerite v Bulgaria smehtaxu s ximicheski moliv vurxy ambalazhna xartia.
- Ambalazhnata xartia, s kojato magazinerut qe ti yvie bycata sirene, obiknoveno sudurzhashe smetkata na predishniut klient.
- Ne taka beshe v Rysia.
- Kogato prez 80-te xodex v komandirovka v Moskva, tamoshnite magazineri rabotexu sruchno sus smetalà.
- Logaritmichna linijka i logaritmichni tablici.
- Edno vreme v gimnaziite se ychexme da smehtame s logaritmichna linijka i logaritmichni tablici.
- Togava tova beshe neobxodimo za inzhenernoto delo.
- Na srednoshkolskite olimpiadi po matematika i fizika razreshavaxu da si nosim logaritmichni linijki.
- Sega vsichko tova e out-of-date, ostarehlo, izmesteno ot kompjytrite i elektronnite kalkylatori.
- Mexanichni kalkylatori.
- Pri takuv kalkylator se natiskat klavishi i se vurti ruchka.
- Chesto su snabdeni i sus zvuncheta.
- V mnogo filmi za staroto amerikansko vreme mozhe da se vidi, che vuv vseki amerikanski magazin ili bar ima takuv kalkylator kato kasov aparat.
- Baqa mi beshe schetovoditel i imashe na razpolozhenie takuv kalkylator.
- Edno zavurtane na ruchkata napred - subirane.
- Zavurtane nazad - izvaghane.
- Pet zavurtania napred - ymnozhavane na pet.
- Imashe brojach na zavurtaniata.
- Ako iskash da ymnozhish po pet, no si se zasilil i si zavurtehl ruchkata shest puti, zavurtash vednuzh nazad.
- Imashe i nachin za izvurshvane na delenie, no v nasheto selo nikoj ne znaeshe kak stava tova.
- Elektro-mexanichni kalkylatori.
- Za razlika ot chisto mexanichnite, tezi si nehmat ruchka, a samo klavishi.
- Imat si i elektromotorche[ta] za vurtene na registrite.
- Izpolval sum takuv - nemsko proizvodstvo. Mnogo ydoben beshe za rabota.
- Elektronni kalkylatori.
- Tyka ima veche bulgarska sleda, dazhe dve takiva sledi.
- Inache v oblastta na ΙΤ dryga bulgarska sleda ima samo pri kompjyturnite virysi.
- No za tehx izobqo nehma da pishu, che me e sram.
- Purvata bulgarska sleda ne e suvsem bulgarska, ama vse pak.
- Na Xhon Atanasov baqa my oqe kato dete rodnini go otveli v Qatite.
- Tam toj se izychil za inzhener i se ozhenil za amerikanka ot irlandski proizxod, ychitelka po matematika.
- A samiut Xhon bil profesor po fizika v qatskiut yniversitet na Ajova.
- Po vreme na WW2 toj reshil da suzdade kalkylator za nasochvane na artilerijskiut ogun, izgraden vurxy materialnata baza na radiotexnikata, t.e. elektronen kalkylator.
- Narechen bil ABC - Atanassoff-Berry Computer (Berry bil sutrydnik na Atanassoff).
- Vojnata svurshila i rabotata po kalkylatorut bila zarehzana, predi toj da bude zavurshen.
- 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 slychajut 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 kompjytur, zaqoto ABC ne e bil programiryem.
- ABC e bil kalkylator sus specialno prednaznachenie.
- Vtorata bulgarska sleda v elektronnite kalkylatori.
- Proxoghaqata 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 mozhela da sledva progresut kum kalkylatorite xhoben format.
- Tyka ima veche bulgarska sleda, dazhe dve takiva sledi.
- (.. skrij gi smetalata i kalkylatorite ..)
- Smetalà.
- ►► Elektronika (.. pokazhi ..)
-
▼▼
Elektronika
(.. skrij ..)
- Elektronikata e sledvaqa faza v razvitieto na radiotexnikata, prilozhenie na radio-texnikata ne samo v radioto.
- Radio-texnikata (elektronikata) se obosobila ot elektro-texnikata sled izobretjavaneto na elektronnata lampa (1904).
- Texnologichniut 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 miniatjyrizacia.
- Pojavili se integralni sxemi - LSI (Large Scale Integration), posle X-LSI (Extra-Large Scale Integration), posle XX-LSI, ..
- Sega nano-texnologii i XXXX..XX-LSI.
- ►► Kompjytri (.. pokazhi ..)
-
▼▼
Kompjytri
(.. skrij ..)
- Konrad Cyze.
- Konrad Cyze.
- ◄► (.. skrij go komentarut ..) (.. svij go ..) (.. razguni go ..) (.. skrij gi komentarite ..) (.. svij gi ..) (.. razguni gi ..) .. kum nachaloto ..
- ►► ::author.unknown, 2023-10-25 09:45:: Istoricheska spravka za nasheto pokolenie (.. pokazhi jų tyka ..) (.. pokazhi jų vuv facebook: .. Nezhna e noqta .. Bulgaria ..) .. kum nachaloto ..
-
▼▼
::author.unknown, 2023-10-25 09:45:: Istoricheska spravka za nasheto pokolenie
(.. skrij jų ..)
(.. pokazhi jų vuv facebook: ..
Nezhna e noqta ..
Bulgaria ..)
.. kum nachaloto ..
- Ima xora, koito su rodeni prez 50-te i 60-te godini.
Otgledani su prez 60-te godini.
Ychili su prez 70-te godini.
Te su se zhenili prez 80-te godini.
Rabotili su prez 80-te i 90-te,
mnogo rabotjųt i dnes ... - Te si promenixu mirogledut prez 90-te.
«Vighaxu svetlinata» prez 2000-ta.
Behxu iznenadani prez 2010.
I neotkazali se prez 2020! - Prezhiveli pochti
sedem razlichni desetiletia...
dva razlichni veka...
dve razlichni xiljadoletia... - Ot telefon na dulgi razstojania do video-razgovori navsehkude po svetut,
ot filmovi lenti i slide-show-ta do Youtube,
ot vinilovi plochi do online-myzika,
ot rukopisni pisma do email, WhatsApp i socialni mrezhi.
Ot slyshane na machove po radioto, gledane na cherno-behla televizia i sled tova televizia s visoka razdelitelna sposobnost.
Te xodexu vuv videotekata, a sega gledat Netflix.
Znaexu kak da otpechatat fotokarta,
imaxu purvite kompjytri, perfokarti, flopi diskove,
a sega imat gigabajti i terabajti na mobilni telefoni ili iPad.
Prez cehloto si detstvo te nosjų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% elektricheski skyteri, velosipedi, skyteri i koli.
Te izbegnuxu detski paralich, meningit, edra sharka, grip H1N1 i zapadnonilska treska. - Da! Takiva xora su minuli prez mnogo, no kakuv prekrasen i interesen zhivot imat!
- Tova pokolenie spokojno mozhe da se nareche «bivshi pensioneri»,
koito su rodeni v onzi sveht na 50-te i 60-te godini,
imali su analogovo detstvo
i digitalen zhivot na zrehla vuzrast.
Te su edin vid «Abrakadabra». V bykvalniut smisul na dymata. - Tova pokolenie e zhivehlo i prezhivehlo poveche ot vsehko drygo v istoriata na chovechestvoto vuv vsehko izmerenie na zhivotut.
- Imenno tova pokolenie se adaptira kum vsehkakvi promeni!
- 👏 Aplodismenti 👏!
Za vsichki predstaviteli na osobenoto pokolenie,
koeto beshe i si ostava ynikalno, nezavismo ot vsichko!
Zdrave, Radost, Kusmet, Dobrota i Qastie!💛🍀💜 - ◄►
::christo.tamarin, 2023-10-25 11:05::
dva razlichni veka...
Koe e nasheto xiljadoletie?
dve razlichni xiljadoletia...- Dali tova, prez koeto evropejcite su otkrili Amerika?
- Ili tova, prez koeto amerikancite qe zaseljųt Lynata?
- (.. skrij jų istoricheskata spravka za nasheto pokolenie ..) (.. skrij gi komentarite ..) (.. svij gi ..) (.. razguni gi ..) .. kum nachaloto ..
- Ima xora, koito su rodeni prez 50-te i 60-te godini.
- ►► ::christo.tamarin, 2024-04-01 15:34:: Ne e bila Brigitte Bardot (.. pokazhi go komentarut ..) .. kum nachaloto ..
-
▼▼
::author.unknown, 2023-10-25 09:45:: Ne e bila Brigitte Bardot
(.. skrij go komentarut ..)
.. kum nachaloto ..
- V tretata si beseda razkazax kak prez lehtoto na 1977, dokato karax stazh v Turnovo, izbrodirax kartinka za trakaq printer.
- Iskashe mi se Brigitte Bardot da e pozirala na xydozhnikut.
- No se okaza, che tova nehma kak da e vuzmozhno.
- Litografiata e risyvana okolo 1935 ot suvetskiut xydozhnik E.A.Kibrik.
- (.. skrij go komentarut ..) (.. skrij gi komentarite ..) (.. svij gi ..) (.. razguni gi ..) .. kum nachaloto ..
- ◄► (.. skrij gi komentarite ..) (.. svij gi ..) (.. razguni gi ..) .. kum nachaloto ..
(.. развернуть все̇ ..) (.. свернуть все̇ ..) .. 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