Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Технический флейм »   Окончание производства 286-х
RSS

Окончание производства 286-х

<<Назад  Вперед>> Страницы: 1 2 3 4 * 5
Печать
 
ua1osm
Гость

Ссылка

Сейчас на форуме
madmaks
Full Member


Откуда: Россия, Ярославская обл., г. Углич
Всего сообщений: 204
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
23 сен. 2008
madmaks написал:
[q]
borisfox написал:
[q]
одним из разработчиков BSD/OS (Paul Borman) ... using a separate TSS per process or thread
[/q]
Парень, видать, путает процессы и нити.
[/q]
Ну, я тут разразился общеобразовательной статьей про многозадачность, из которой понятно почему "парень путает их".

Различия между нитями и процессами
[q]
Многозадачность требует специальных приемов создания аппаратуры и написания программ. Она не была ранее активно использована и затребована только потому, что не было пользователей с аппаратурой способной работать в режиме многозадачности в реальном режиме времени.

Преломной точкой (появление массовых пользователей многозадачности) я считаю PC класса пентиум-1, аппаратные возможности которых реально позволяют запускать несколько реально полезных вычислительных задач одновременно по доступной цене.

Начиная с машин такого класса требуются новые языки и аппаратные решения, старые уже не способны реализовать возможности и необходимости.

Глядя на обычный процессор, который выполняет программы, можно увидеть, что в каждый момент времени у него есть точка выполнения, выполняемая команда. Точка выполнения перемещается во времени и образует поток выполнения.

Можно представить, что есть несколько таких потоков, они заранее выбраны (для них написана программа) и есть возможность попеременно их ставить на выполнение.

С каждым потоком можно связать программный контекст, т.е. то, что нужно сохранить при снятии потока с выполнения и восстановить при его постановке на выполнение.

Есть потоки, которые представляют из себя цельные самообеспеченные объекты, все их связи с внешним миром полностью определены и ограничены. Если несколько таких потоков одновременно выполняется в одной системе (например, текстовый редактор, эксплорер и т.п.), то необходимо их полностью изолировать друг от друга, т.е. они имеют разный программный контекст. Потоки выполнения с таким контекстом называют "процессами".

Часто "процессы" обильно появлялись в многозадачных системах переходя из однозадачных систем, где они были отдельными монопольными задачами. Однако в многопроцессорных системах появлялись и свои родные (native) "процессы", т.е. возникали ситуации, когда одна логическая задача реализовывалась в виде нескольких "процессов", в этом случае родственные процессы нуждались в некоторой коммуникации, и такая коммуникация у них появилась и была названа "IPC".

"IPC процессов" также поддерживает сеть, т.е. при желании программиста "IPC", позволяет скрывать машину, на которой выполняется каждый процесс.

Однако, с ростом мощности аппаратуры и сложности задач появилась возможность и необходимость аппаратно и программно многопроцессорной обработки одного "потока выполнения", который ранее был легко представим как "процесс".

Оказалось, что для достижения нужного эффекта программист должен сам явно разбивать поток выполнения на несколько независимых, имеющих возможнось выполняться одновременно. Здесь контекст потока разбит на части, главная часть контекста одна, общая, а потоков ее использующих много. Каждый из этих потоков имеет и небольшой персональный контекст. Потоки выполнения с таким двойным контекстом называют "нитями".

При внешней схожести "нитей" и "процессов", у них вполне разная природа и задачи, "нить" это не просто "легкий процесс", она нуждается в особой поддержке как от программиста, так и от аппаратуры, точно также как и "процесс" нуждается в своей специальной поддержке. Обычно считают, что "процесс" состоит из "нитей".

Ясно, что названия "нить" и "процесс" в чем-то условны, т.е. каждый человек может иметь свое собственное определение "нити" и "процесса", но при рассмотрении аппаратных возможностей процессора (использование TSS) имеет смысл их различать "по виду контекста".

Недавно я узнал, что концепция "чистой нити" не всегда удачна, из существующего опыта "эксплуатации нитей" стало ясно, что бывает нужна не просто "нить", а "нить с IPC", т.е. нужна "нить", общий контекст которой еще раз разделен и одна часть скрыта за "легким IPC - ITC :)", т.к. "число доступных процессоров" стало таким же ресурсом, как "количество доступной памяти" и постановка нитей на выполнение нуждается в особом управлении (например, надо правильно распределиться по имеющимся ресурсам).

Стало невозможно написать эффективную программу не обращая внимание на присутствующие в системе процессоры, память и т.д. При всем этом "нить с IPC" не стала "процессом", т.к. "нить с IPC" это "нить", которая использует некоторые общие ресурсы особым образом.

Некоторая проблема заключается в том, что старые процессоры аппаратно не поддерживают "нити", нет в них такой концепции.

Например, "нити" нуждаются в "сериализации" доступа (в выполнении строго последовательного доступа) к некоторым общим ресурсам. Для этого процессор должен обеспечивать аппаратную поддержку такого управления, иначе "нити" просто не смогут выполняться, они будут вызывать для своего выполнения "процессы" и станут бесполезными, как станет бесполезной многопроцессность, для реализации которой надо нажимать на reset и менять дискетку с программой.

Важно видеть, что если вам нужна нить, задача которой скрыть свой контекст, то такая "нить" станет "процессом", т.е. они заметно отличаются "типами контекста".

Один из видов контроля общего ресурса - "семафор". "Семафор" может быть поддержан процессором прямо, при наличии операций для управления им, или косвенно, при наличии операций вида "атомарные", "чтение-модификация-запись" и т.д.

см. далее "Апаратная поддержка семафоров уровня задачи (нитей) на 286/386".
[/q]
madmaks
Full Member


Откуда: Россия, Ярославская обл., г. Углич
Всего сообщений: 204
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
23 сен. 2008
Собственно, про нити в 286/386.

Аппаратная поддержка семафоров уровня задачи (нитей) на 286/386
[q]
Команда "xchg регистр, память" начиная с 286 блокирует шину и исполняется на любом уровне привилегий, может быть использована для сериализации доступа к ресурсу с помощью семафора

  mov   al, 1
  xchg  al, byte ptr sem
  or    al, al
  jz    locked_and_ready_to_use
busy:
        ...
unlock:
  mov   byte ptr sem, 0


если мы в al получили 0, значит
- семафор был свободен
- семафор стал помечен нами как занятый с помощью атомарной операции

если мы в al получили не 0, значит
- семафор был занят
- состояние семафора осталось "занятый" корректно из-за атомарной операции

Достоинства
- xchg не зависит от IOPL
Проблемы
- в этом примере под семафор отводится не бит, а байт, что плохо


***
Для работы с семафорами-битами, начиная c 386

  lock
  bts  dword ptr sem_base, sem_num
  jnc  locked_and_ready_to_use
busy:
        ...
unlock:
  btr  dword ptr sem_base, sem_num


если мы в cf получили 0, значит
- семафор был свободен
- семафор стал помечен нами как занятый с помощью атомартной операции

если мы в cf получили не 0, значит
- семафор был занят
- состояние семафора осталось "занятый" корректно из-за атомартной операции

Достоинства
- в этом примере под семафор отводится бит, что хорошо
Проблемы
- использование lock зависит от IOPL, но между общими ресурсами приложения и портами ввода-вывода системы лежит логическая пропасть

Проблемы обоих примеров говорят о том, что что аппаратура 286/386 не создавалась для того, чтобы поддерживать нити

     26                                          tlock286 sem00
1    27
1    28 00000000  B0 01                          mov   al, 1
1    29 00000002  86 05 00000000e                xchg  al, byte ptr sem00
1    30 00000008  0A C0                          or    al, al
1    31                                          ;jz    locked_and_ready_to_use
1    32
     33
     34                                          tlock386 sem00, 1
1    35
1    36 0000000A  F0>                            lock
1    37 0000000B  0F BA 2D 00000000e  +          bts  dword ptr sem00, 1
     38           01
1    39                                          ;jnc  locked_and_ready_to_use
1    40
[/q]
ua1osm
Гость

Ссылка

Сейчас на форуме
Teodor
Гость
Старый опытный камикадзе

Откуда: Николаев, Украина
Всего сообщений: 4022
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2006
ua1osm, второй кварц, IMHO, для асинхронного тактования сопроцессора.
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
А никто не ковырял OS/2 версий 1.x ? Там полностью используются возможности i286 и даже можно запускать одну DOS задачу. Городская легенда утверждает, что когда в Intel увидели извращенческий код IBM в OS/2, то заплакали и сделали VM86 режим в i386.
Katran-777
Newbie


Всего сообщений: 3
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
29 дек. 2008
Я в таких случаях феном снимаю чип и потом очень аккуратно лезвием правлю ноги (прикладывая чип к плате и смотря правильно ли все совпадают) и запаиваю обратно. Кстати мне нужна прошивка биоса который шьется в эту мамку TD60C (27C512). У кого есть поделитесь пожалуйста прошивочкой под нее. Отдали мне такую мать без микрухи биоса, а запустить ее охота... Есть еще мамки без биосов и буду признателен всем кто сможет мне скинуть прошивки биосов на данные мамки:
1. 286 model TD60C
2. 386sx16 model PPM-1631DS (основной чип фирмы DTK M60049-0116FP, второй CHIPS P82C206)
3. 386sx33 model PPM-0035W (тоже от фирмы DTK на чипсете Winbond W83C320WF)

Если у кого есть прошивки биосов под эти матери - киньте мне пожалуйста их на sirius05e@gmail.com
Заранее всем благодарен!
Katran-777
Newbie


Всего сообщений: 3
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
29 дек. 2008
Сегодня подарили аналогичную (TD60C), всё то же, но процессор Harris 286-25.
Правда, у предыдущего хозяина она, похоже, валялась где-то в хламе, и с одной стороны выводы у чипсета cмяты чем-то острым.
Один, а может и несколько, оторваны от платы. Они настолько мелкие, что совершенно не представляю, как выправить и припаять, не поломав ещё больше...
Поэтому ищу указанный чипсет, вдруг у кого-нибудь завалялся? Запаять новую немятую микросхему будет проще...


Я в таких случаях феном снимаю чип и потом очень аккуратно лезвием правлю ноги (прикладывая чип к плате и смотря правильно ли все совпадают) и запаиваю обратно. Кстати мне нужна прошивка биоса который шьется в эту мамку TD60C (27C512). У кого есть поделитесь пожалуйста прошивочкой под нее. Отдали мне такую мать без микрухи биоса, а запустить ее охота... Есть еще мамки без биосов и буду признателен всем кто сможет мне скинуть прошивки биосов на данные мамки:
1. 286 model TD60C
2. 386sx16 model PPM-1631DS (основной чип фирмы DTK M60049-0116FP, второй CHIPS P82C206)
3. 386sx33 model PPM-0035W (тоже от фирмы DTK на чипсете Winbond W83C320WF)

Если у кого есть прошивки биосов под эти матери - киньте мне пожалуйста их на sirius05e@gmail.com
Заранее всем благодарен!
0leg
Advanced Member


Откуда: Город-герой Тула
Всего сообщений: 1991
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 окт. 2007
Katran-777,
> всем кто сможет мне скинуть прошивки биосов на данные мамки
1) См. на этом сайте в разделе "файловый архив".
2) Около полсотни прошивок выложено у меня. (И десятка два готовятся к выкладыванию.)
3) Где-то тут пробегала ссылка на огромную коллекцию прошивок (подробностей не помню).

> Они настолько мелкие, что совершенно не представляю, как выправить и припаять,
> не поломав ещё больше...
Микроскоп — твой друг. Желательно бинокулярный, стереоскопический.
ua1osm
Гость

Ссылка

Сейчас на форуме
<<Назад  Вперед>> Страницы: 1 2 3 4 * 5
Печать
Полигон-2 »   Технический флейм »   Окончание производства 286-х
RSS

0 посетителей просмотрели эту тему за последние 15 минут
В том числе: 0 гостей, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS