Другие языки программирования и технологии

Объясните как происходит запись информации в двоичном коде. Специально распишу как я это понимаю, чтобы объяснитель

понимал, что мне нужно не написать два слова, а именно объяснить, чтобы это было ясно понято.

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

Пишу с самого начала пошагово:

1. Создаю тхт-шный файл и на клавиатуре нажимаю "1"
2. Одновременно эта цифра преобразовывается процессором в "0001", что означает, что один из транзисторов микропроцессора три сигнала обрубил, а четвертый - пропустил и вышло "0001"
3. Код 0001 направляется от микропроцессора к оперативной памяти и там записывается в ячейку и хранится.

4. Выбираю в меню Блокнота "Сохранить" и сохраняю.
5. Теперь этот код "0001" дублируется на жесткий диск, где выделяется для него постоянное место.
6. Конец.

Вопрос: Всё так и происходит или здесь много неточностей? Прошу объяснить понятно или направить, где доступно всё разложено по полочкам. Спасибо за понимание.
Это все намного сложнее. Предположим, что мы уже запустили Блокнот и отслеживаем изменения от нажатия на клавиатуре кнопки "1". Тогда, очень приблизительно, это будет выглядеть так:
1. Замыкается пара контактов под кнопкой "1". Процессор клавиатуры (простенький, ненамного сложнее обычного дешифратора) генерирует код события (скан-код) "нажата кнопка "1" (что-то вроде 10110001) и отправляет по кабелю.
2. Контроллер клавиатуры запоминает полученный код и передает процессору сообщение "пришли данные".
3. Процессор сохраняет информацию о состоянии текущей задачи и загружает супервизор.
4. Супервизор проверяет состояние запросов от контроллеров (а так же другие параметры системы) и передает управление драйверу соответствующего устройства.
5. Процессор сохраняет информацию о состоянии супервизора и загружает драйвер.
6. Драйвер обрабатывает информацию на контроллере и сохраняет в память информацию о нажатой клавише (совсем не обязательно точно соответствующую коду события на клавиатуре) .
7. Драйвер передает управление супервизору (дальше не буду писать, что процессор что-то загружает, и так понятно) .
8. Супервизор определяет, какому приложению предназначалось нажатие клавиши, и добавляет событие "нажата клавиша "1" в очередь событий этого приложения.
9. Супервизор определяет, какому приложению следует передать управление (аналогично п. 4). Если это Блокнот, и первое событие в очереди - именно это нажатие, то:
10. В Блокноте запускается обработчик события "нажата клавиша" и заносит значение этой клавиши в память, соответствующую содержимому блокнота, а также добавляет в конец очереди событий событие "перерисовка".

Сохранение - где-то так же, но еще страшнее.
АГ
Алексей Григорьев
75 808
Лучший ответ
Очень много неточностей. И даже в самом первом приближении - совершенно не так.. . :(
Тимур Кадыров
Тимур Кадыров
74 067
неправилен пункт 2. Процессор понимает только двоичный код. И не может преобразовывать "клавишу".
Это если не знать истины, а видеть внешнюю сторону процесса.
В твоих рассуждениях кроме процессора и жесткого диска и оперативной памяти ничего нет.
На самом деле есть процессор с множеством устройств внутри (включая собственную кэш- память, АЛУ, регистры.. . ).клавиатура с со своим микро контроллером, оперативная память, шина данных, сигналы на ней, синхронизация считвывания данных, цикл микропрограммы процессора, операционная система, драйвера, контроллеры дисководов, коды ASCII,представление информации в двоичном виде - биты и байты и еще многое другое, что задействано в данном процессе.
Кстати, 1 кодируется кодом 0011 0001 в 16 битной системе.
Там используется связка транзисторов называемая "триггер", которая хранит один бит и они объединяются в ячейку памяти "регистр". При нажатие на клавишу "1" ничего не преобразовывается, просто ты замыкаешь цепь и сигнал в шине меняется, на что реагируют (прерывания) другие устройства и программы.

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