МТ состоит из управляющего устройства (УВ), работающего с бесконечной лентой, и никаких других способов ввода/вывода не предусмотрено. Такая модель прекрасно моделирует вычислительный процесс, но для моделирования системы автоматического управления (САУ) в реальном времени ощущается недостаток "железа" у МТ.
Мне когда-то давно попадались на глаза записки самого Алана Тьюринга про то, как он придумывал свою машину. Он там просто моделировал поведение человека, который сидит на скамейке и делает вычисления в блокноте. Страница блокнота - ячейка ленты МТ, человек вооружён ластиком и карандашом, то есть он может какие-то из записей подтирать и переписывать заново. Перед тем, как приступить к выкладкам, человек слушает условие задачи и записывает его в тот же блокнот. В этом же блокноте он получает и результат вычилений
Я читал что-то подобное, но скорее не Самого, а в пересказе
Если человек на скамейке будет глухим и получит блокнот с условиями по почте или с курьером на эту самую скамейку, суть не изменится. Но если человеку с блокнотом кто-то будет раз в единицу времени (1 сек, 1 мин, 1 час, 100 дней, 385 мкс) диктовать очередное условие задачи и этот человек на скамейке с блокнотом должен будет решить и передать ответ, и далее по циклу - суть будет другой, т.е. возникнет куча доп. условий (свойственных системам реального времени): 1) нужен ли результат предыдущей задачи для того, чтобы сформулировать следующую? 2) если человек на скамейке не успеет сосчитать - фатально ли это? и т.д.
Про потоки я тоже не понял, но современная ОС может обрабатывать, теоретически сколь угодно длительное время, а в реальности пока не зависнет, поток данных с видеокамеры (охрана банка, нпр.). М.б. о таких потоках речь?
Непонятно, при чём здесь именно ОС. Любая программа может работать теоретически сколь угодно длительное время.
По сути ОС ничем не отличается от любой другой программы, ... ну, за исключением, что современные ОС - это целый пакет программ, при этом 1) не все из них интегрированы; 2) в зависимости от параметров установки достигаются очень разные конфигурации.
НО! Если мы говорим в терминах реальной практики, то нужно учитывать факторы не только теоретические, но и, нпр., организационные. В частности, фактор специализации/разделения труда: вряд ли кому из практиков-экспериментаторов (не будем забывать, что computer sci., в отличие от математики, экспериментальная наука) захочется изобретать велосипед с нуля, т.е. писать загрузчик программы, утилиты для общения с файловой системой и т.д. и т.д. (денег на десятки тысяч человеко-часов им точно никто для этого не даст). Поэтому исторически сформировался некий набор стандартных функций, который требуется большинству программ для работы. Эти функции проще и лучше передать ОС, тогда сильно легче решать кучу проблем, как по программированию прикладных программ, так и по совместимости.
Далее. Если у нас есть внешнее устройство - нпр., видеокамера, то теоретически возможно написать программу, которая будет работать с потоком данных с этой камеры напрямую, как говорят, "на физическом уровне". Тогда никаких других программ не требуется, и такая программа будет специализированной ОС, предназначенной для работы с камерой. Но прогресс не стоит на месте, и через некоторое время появятся более удобные камеры с лучшим разрешением, с лучшим показателем цена-качество и т.д. И что делать? Переписывать программу (нашу спец. ОС) под новую камеру? А если нашу прогу хотят купить клиенты, кто предпочитает камеру фирмы Х, и клиенты, кто предпочитает камеру фирмы У? А камеры несовместимы. Современные концепции ОС
организационно разрешают подобные проблемы: часть наиболее распространенных программ-драйверов для камер входит в дистрибутив, производители всех камер делают драйверы с учетом требовний - протокола обмена с ОС. И разрабу остается только запрограммировать какие-то спец. функции для любой камеры. А в простых случаях наблюдения будет достаточно только ОС и никаких прикладных программ. Это только один из факторов, отвечающих на вопрос "при чём здесь именно ОС", список можно продолжить, но ИМХО и так понятно "при чем".
Understand?
Это я understand. Я не understand другое: почему работу с такими бесконечными потоками Вы выдаёте за отличительную характеристику именно операционной системы. По моему, к ОС такая способность никакого отношения не имеет. Но вижу, что теперь Вы и сами это признали.
Обычная же программа (та же машина Тьюринга), хоть и может миллион лет решать задачу, но результат будет получен только когда она остановится.
Я не согласен с этим. У меня комп вообще из розетки не выключается, и на нём много разных программ работает. Например, торрент-клиент, который раздаёт в сеть скачанные мною файлы, даже если я сам ничего не качаю. И, поскольку я что-то раздаю, мне на торрент-трекерах за это идёт бонус, на который я гляжу и радуюсь. Результат бесконечной работы налицо, хотя торрент-клиент вряд ли можно считать частью операционной системы
Я согласен, что работу с такими бесконечными потоками может делать любая прога, входит или не входит она в состав ОС - вопрос конвенции - кто поставщик этой проги (нпр., можно пофантазировать, что в Винды войдет торрент-клиент - Ой! Какой будет ужас
). Однако, ИМХО, тут недоразумение в андерстендинге из-за разных определений МТ. Если МТ состоит только из ленты и устройства управления, которому
и только которому доступна эта лента до остановки МТ, то ИМХО
_hum_ прав (по меньшей мере частично)