Внесение данных в компьютер как называется

Обновлено: 30.06.2024

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

И так, чтобы понять организацию памяти от вас потребуется знания некоторых базовых понятий, таких как регистры, стек и тд. Я по ходу попробую объяснить и это на пальцах, но очень кратко потому что это не тема для этой статьи. Итак начнем.

Как известно программист, когда пишет программы работает не с физическим адресом, а только с логическим. И то если он программирует на ассемблере. В том же Си ячейки памяти от программиста уже скрыты указателями, для его же удобства, но если грубо говорить указатель это другое представление логического адреса памяти, а в Java и указателей нет, совсем плохой язык. Однако грамотному программисту не помешают знания о том как организована память хотя бы на общем уровне. Меня вообще очень огорчают программисты, которые не знают как работает машина, обычно это программисты Java и прочие php-парни, с квалификацией ниже плинтуса.

Так ладно, хватит о печальном, переходим к делу.
Рассмотрим адресное пространство программного режима 32 битного процессора (для 64 бит все по аналогии)
Адресное пространство этого режима будет состоять из 2^32 ячеек памяти пронумерованных от 0 и до 2^32-1.
Программист работает с этой памятью, если ему нужно определить переменную, он просто говорит ячейка памяти с адресом таким-то будет содержать такой-то тип данных, при этом сам програмист может и не знать какой номер у этой ячейки он просто напишет что-то вроде:
int data = 10;
компьютер поймет это так: нужно взять какую-то ячейку с номером стопицот и поместить в нее цело число 10. При том про адрес ячейки 18894 вы и не узнаете, он от вас будет скрыт.

Все бы хорошо, но возникает вопрос, а как компьютер ищет эту ячейку памяти, ведь память у нас может быть разная:
3 уровень кэша
2 уровень кэша
1 уровень кэша
основная память
жесткий диск

Это все разные памяти, но компьютер легко находит в какой из них лежит наша переменная int data.
Этот вопрос решается операционной системой совместно с процессором.
Вся дальнейшая статья будет посвящена разбору этого метода.

Архитектура х86 поддерживает стек.

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

push operand
помещает операнд в стек

pop operand
изымает из вершины стека значение и помещает его в свой операнд

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

Теперь кратко рассмотрим что такое регистры.
Это ячейки памяти в самом процессоре. Это самый быстрый и самый дорогой тип памяти, когда процессор совершает какие-то операции со значением или с памятью, он берет эти значения непосредственно из регистров.
В процессоре есть несколько наборов логик, каждая из которых имеет свои машинные коды и свои наборы регистров.
Basic program registers (Основные программные регистры) Эти регистры используются всеми программами с их помощью выполняется обработка целочисленных данных.
Floating Point Unit registers (FPU) Эти регистры работают с данными представленными в формате с плавающей точкой.
Еще есть MMX и XMM registers эти регистры используются тогда, когда вам надо выполнить одну инструкцию над большим количеством операндов.

Рассмотрим подробнее основные программные регистры. К ним относятся восемь 32 битных регистров общего назначения: EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP
Для того чтобы поместить в регистр данные, или для того чтобы изъять из регистра в ячейку памяти данные используется команда mov:

mov eax, 10
загружает число 10 в регистр eax.

mov data, ebx
копирует число, содержащееся в регистре ebx в ячейку памяти data.

Регистр ESP содержит адрес вершины стека.
Кроме регистров общего назначения, к основным программным регистрам относят шесть 16битных сегментных регистров: CS, DS, SS, ES, FS, GS, EFLAGS, EIP
EFLAGS показывает биты, так называемые флаги, которые отражают состояние процессора или характеризуют ход выполнения предыдущих команд.
В регистре EIP содержится адрес следующей команды, которая будет выполнятся процессором.
Я не буду расписывать регистры FPU, так как они нам не понадобятся. Итак наше небольшое отступление про регистры и стек закончилось переходим обратно к организации памяти.

Как вы помните целью статьи является рассказ про преобразование логической памяти в физическую, на самом деле есть еще промежуточный этап и полная цепочка выглядит так:

Логический адрес --> Линейный (виртуальный)--> Физический

image


Все линейное адресное пространство разбито на сегменты. Адресное пространство каждого процесса имеет по крайней мере три сегмента:
Сегмент кода. (содержит команды из нашей программы, которые будут исполнятся.)
Сегмент данных. (Содержит данные, то бишь переменные)
Сегмент стека, про который я писал выше.

Линейный адрес вычисляется по формуле:
линейный адрес=Базовый адрес сегмента(на картинке это начало сегмента) + смещение
Сегмент кода

Базовый адрес сегмента кода берется из регистра CS. Значение смещения для сегмента кода берется из регистра EIP, в котором хранится адрес инструкции, после исполнения которой, значение EIP увеличивается на размер этой команды. Если команда занимает 4 байта, то значение EIP увеличивается на 4 байта и будет указывать уже на следующую инструкцию. Все это делается автоматически без участия программиста.
Сегментов кода может быть несколько в нашей памяти. В нашем случае он один.
Сегмент данных

Данные загружаются в регистры DS, ES, FS, GS
Это значит что сегментов данных может быть до 4х. На нашей картинке он один.
Смещение внутри сегмента данных задается как операнд команды. По дефолту используется сегмент на который указывает регистр DS. Для того чтобы войти в другой сегмент надо это непосредственно указать в команде префикса замены сегмента.
Сегмент стека

Используемый сегмент стека задается значением регистра SS.
Смещение внутри этого сегмента представлено регистром ESP, который указывает на вершину стека, как вы помните.
Сегменты в памяти могут друг друга перекрывать, мало того базовый адрес всех сегментов может совпадать например в нуле. Такой вырожденный случай называется линейным представлением памяти. В современных системах, память как правило так организована.

Теперь рассмотрим определение базовых адресов сегмента, я писал что они содержаться в регистрах SS, DS, CS, но это не совсем так, в них содержится некий 16 битный селектор, который указывает на некий дескриптор сегментов, в котором уже хранится необходимый адрес.

Так выглядит селектор, в тринадцати его битах содержится индекс дескриптора в таблице дескрипторов. Не хитро посчитать будет что 2^13 = 8192 это максимальное количество дескрипторов в таблице.
Вообще дескрипторных таблиц бывает два вида GDT и LDT Первая называется глобальная таблица дескрипторов, она в системе всегда только одна, ее начальный адрес, точнее адрес ее нулевого дескриптора хранится в 48 битном системном регистре GDTR. И с момента старта системы не меняется и в свопе не принимает участия.
А вот значения дескрипторов могут меняться. Если в селекторе бит TI равен нулю, тогда процессор просто идет в GDT ищет по индексу нужный дескриптор с помощью которого осуществляет доступ к этому сегменту.
Пока все просто было, но если TI равен 1 тогда это означает что использоваться будет LDT. Таблиц этих много, но использоваться в данный момент будет та селектор которой загружен в системный регистр LDTR, который в отличии от GDTR может меняться.
Индекс селектора указывает на дескриптор, который указывает уже не на базовый адрес сегмента, а на память в котором хранится локальная таблица дескрипторов, точнее ее нулевой элемент. Ну а дальше все так же как и с GDT. Таким образом во время работы локальные таблицы могут создаваться и уничтожаться по мере необходимости. LDT не могут содержать дескрипторы на другие LDT.
Итак мы знаем как процессор добирается до дескриптора, а что содержится в этом дескрипторе посмотрим на картинке:
Дескрипторы состоит из 8 байт.
Биты с 15-39 и 56-63 содержат линейный базовый адрес описываемым данным дескриптором сегмента. Напомню нашу формулу для нахождения линейного адреса:

линейный адрес = базовый адрес + смещение
[база; база+предел)

В зависимости от 55 G-бита(гранулярити), предел может измеряться в байтах при нулевом значении бита и тогда максимальный предел составит 1 мб, или в значении 1, предел измеряется страницами, каждая из которых равна 4кб. и максимальный размер такого сегмента будет 4Гб.
Для сегмента стека предел будет в интервале:
(база+предел; вершина]

Кстати интересно почему база и предел так рвано располагаются в дескрипторе. Дело в том что процессоры х86 развивались эволюционно и во времена 286х дескрипторы были по 8 бит всего, при этом старшие 2 байта были зарезервированы, ну а в последующих моделях процессоров с увеличением разрядности дескрипторы тоже выросли, но для сохранения обратной совместимости пришлось оставить структуру как есть.
Значение адреса «вершина» зависит от 54го D бита, если он равен 0, тогда вершина равна 0xFFF(64кб-1), если D бит равен 1, тогда вершина равна 0xFFFFFFFF (4Гб-1)
С 41-43 бит кодируется тип сегмента.
000 — сегмент данных, только считывание
001 — сегмент данных, считывание и запись
010 — сегмент стека, только считывание
011 — сегмент стека, считывание и запись
100 — сегмент кода, только выполнение
101- сегмент кода, считывание и выполнение
110 — подчиненный сегмент кода, только выполнение
111 — подчиненный сегмент кода, только выполнение и считывание

44 S бит если равен 1 тогда дескриптор описывает реальный сегмент оперативной памяти, иначе значение S бита равно 0.

Самым важным битом является 47-й P бит присутствия. Если бит равен 1 значит, что сегмент или локальная таблица дескрипторов загружена в оперативку, если этот бит равен 0, тогда это означает что данного сегмента в оперативке нет, он находится на жестком диске, случается прерывание, особый случай работы процессора запускается обработчик особого случая, который загружает нужный сегмент с жесткого диска в память, если P бит равен 0, тогда все поля дескриптора теряют смысл, и становятся свободными для сохранения в них служебной информации. После завершения работы обработчика, P бит устанавливается в значение 1, и производится повторное обращение к дескриптору, сегмент которого находится уже в памяти.

На этом заканчивается преобразование логического адреса в линейный, и я думаю на этом стоит прерваться. В следующий раз я расскажу вторую часть преобразования из линейного в физический.
А так же думаю стоит немного поговорить о передачи аргументов функции, и о размещении переменных в памяти, чтобы была какая-то связь с реальностью, потому размещение переменных в памяти это уже непосредственно, то с чем вам приходится сталкиваться в работе, а не просто какие-то теоретические измышления для системного программиста. Но без понимания, как устроена память невозможно понять как эти самые переменные хранятся в памяти.
В общем надеюсь было интересно и до новых встреч.

Как называется запись данных в компьютер (4 буквы кроссворд)?

Ну смотря как сформулирован вопрос. Спорный немного термин - запись данных. Обычно данные не записывают, а вводят. Думаю это всем известно не первый день. Поэтому вероятно правильный ответ будет звучать как Ввод.

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

Сейв. От английского save и означает сохранить.

1) Несколько видеофайлов (фильмов) в формате .avi, .mkv и т.д. можно записать на DVD-диск, перед записью выбрать вид будущего диска - data disc. Получится хранилище файлов, которое потом можно считать на компьютере или на более-менее современном проигрывателе DVD или Blue Ray.

2) Если нужен именно DVD-формат, с меню выбора фильмов, сцен и т.д., то для этого существуют специальные программы-"студии". Пользовался (в хронологическом порядке) - Cyberlink DVD Solution, Ulead Video Studio, Pinnacle Video Studio v10, потом ещё какой-то версией - 12 что ли. Подробные инструкции есть прямо внутри программ, если на английском - перевод найти не проблема.

Посмотрите здесь. Достаточно большой выбор.

Virtual Piano — программа для обучения игры на фортепиано.

Чтобы записать звук на компьютер нужно как минимум две вещи: звуковая карта, с входом для микрофона, ну и естественно сам микрофон. Это то, что нужно из «железа». На программном уровне нужна программа для записи звука. В Windows присутствует стандартная программа для записи аудио, но она бедна настройками и годится разве что для обыкновенной записи голосовых заметок. Для нормальной записи звука в хорошем качестве нужно использовать профессиональные программы для записи звука. Неплохая программа для данных целей это Adobe Audition, она позволяет не только записать звук, но и обработать его, добавить разные эффекты и т.д.

С компьютера-с помощью USB-кабеля. Порядок действий: 1) Подключить смартфон к компьютеру; 2) Если будет запрос,то установить программу тех.поддержки своего смартфона в систему комп-ра; 3) Скопировать нужные аудио-файлы(в формате mp3) со своего комп-ра в папку с файлами своего смартфона,которую можно будет найти,если она автоматически не появится при подключении, в меню "Пуск"-> "Мой компьютер("Этот компьютер")"-> "Устройства и диски".

А с телевизора самый популярный способ- записать либо на диктофон, либо на видео-камеру. Единственный мне известный способ.

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

Задачи урока:

Обучающая – привитие учащимся техники создания изображений с помощью инструментов рисования: кисть и карандаш; ластики; инструменты рисования геометрических фигур; распылитель; заливка; палитра цветов ,

Развивающая – развивать логическое мышление, графического умения.

Воспитательная – развивать познавательный интерес, воспитывать коммуникативную культуру

1. Организационный момент.

Здравствуйте. Сегодня темой нашего урока будет представление данных в компьютере. Данные – это информация, представленная в форме, пригодной для передачи, хранения или обработки компьютером.

Конечно же, вы слышали, что абсолютно вся информация в компьютере хранится в виде единиц и нулей.

2. Проверка домашнего задания.

Компьютеры, программа (виды программ), пользователь, программист, данные, состав ПК (устройства ввода, вывода, процессор, память).

3.Изучение нового материала.

Квантование и дискретизация

Компьютер работает с цифровой информацией, в то время как мы, люди, взаимодействуем с аналоговой информацией. Чем же отличается аналоговая информация от цифровой? Для ответа на этот вопрос будем использовать понятие сигнала. Под сигналом будем понимать зависимость одной величины от другой , например, зависимость температуры от времени.

Аналоговая информация

Аналоговая информация – это непрерывная информация. Значение аналогового сигнала может принимать любую величину, и аналоговый сигнал является непрерывным во времени. В качестве примера аналогового сигнала можно привести изменение температуры воздуха на вашем любимом пляже в течение дня. Этот параметр – температура воздуха – во-первых, может принимать любую, не обязательно целую, величину (естественно, в определённых пределах), а во-вторых, температура непрерывно изменяется во времени.

Квантование

Представьте себе, что теперь мы будем измерять не температуру воздуха, а количество учеников, находящихся в вашем классе во время урока, причём будем делать это также непрерывно во времени. Возможно, кто-то опоздает на урок, кто-то отпросится на несколько минут, а кто-то и вовсе настолько захочет на обед, что уйдёт без разрешения учителя на минуту раньше звонка. Вспоминая замечательный советский мультфильм под названием «В стране невыученных уроков», полутора землекопов быть не может. Количество людей (а в нашем примере это число учеников в классе) – это всегда целое число, и если построить график зависимости количества учеников в классе от времени, то мы сможем увидеть ступеньки на этом графике благодаря самой природе этой задачи, благодаря отсутствию дробных значений по вертикальной оси ординат. При этом по горизонтальной оси времени, по оси абсцисс, график будет непрерывным.

Так можно представить любой сигнал, даже сигнал температуры на вашем любимом пляже, округляя значения температуры. Так, если температура на пляже примерно равна 27,7 градусов, то будем округлять это значение до 28 градусов, согласно тем правилам, которые вы изучили на математике. Процесс превращения, или, как говорят математики, отображения непрерывных значений в ограниченное количество определённых значений называется квантованием. Значения, которые может принимать сигнал, называются уровнями квантования. Разница между двумя соседними уровнями квантования – это шаг квантования. За весь этот процесс отвечает устройство, называемое квантователем.

Дискретизация

А теперь представьте себе, что значения температуры измеряются не постоянно, а лишь раз в полчаса. В этом случае принято говорить, что измерения происходят с определённой частотой, которую измеряют в Герцах. 1 Гц – это 1 раз в секунду, 2 Герца – это 2 раза в секунду. Если измерения происходят раз в полчаса, то частота равна всего лишь 1/1800 Гц! (В знаменателе 30 минут мы умножили на количество секунд в одной минуте.) На самом деле, есть ли необходимость измерять температуру на пляже чаще? Из непрерывного наш график превратился в дискретный, состоящий только из отдельных точек. Процесс получения данных с определённой частотой называется дискретизацией. А разница во времени между соседними измерениями называется шагом дискретизации , в нашем примере он равен 30 минутам. По дискретному графику мы можем видеть значения температуры в отдельные моменты времени, но о её значениях в другие моменты времени мы можем только догадываться. Если произвести дискретизацию предыдущего графика, то получим результат, который вы видите на экране.

Цифровая информация

Аналоговая информация превращается в удобную для обработки компьютером цифровую путём применения двух изученных процессов – квантования и дискретизации. Если квантование подразумевает выделение ограниченного количества уровней квантования, то в процессе дискретизации данные измеряются с определённой частотой. За преобразование информации из аналоговой формы в цифровую отвечает устройство, называемое аналогово-цифровым преобразователем .

Кодирование числовой информации

Представители философской школы Пифагора, а в Древней Греции он считался философом, а не математиком, говорили: «Всё есть число». Чтобы понять, каким образом в компьютере представлены данные, нужно понять, как в компьютере представлены числа. Процесс изменения формы представления информации называют кодированием. В современных компьютерах используют двоичное кодирование, поскольку в процессе кодирования используется только два знака – 0 и 1. При этом закодировать числа с помощью только этих двух знаков можно по-разному. Для кодирования чаще всего используется двоичная система счисления, хотя могут использоваться и другие способы кодирования.

Поскольку нами используется 10 цифр для записи чисел, от 0 до 9, то говорят, что мы используем десятичную систему счисления. В компьютере используется только две цифры, 0 и 1, а это значит, что мы можем использовать двоичную систему счисления, чтобы записать число в компьютер. Под системой счисления будем понимать совокупность приёмов и правил, по которым числа записываются и читаются.

В нашей, десятичной системе счисления, крайняя справа цифра, крайний справа разряд – это разряд единиц, если смотреть справа налево, то за ним следует разряд десятков, за ним – разряд сотен, далее идёт разряд тысяч. Например, число 123 можно представить как 1*100 + 2*10 + 3*1. В двоичной системе счисления, поскольку используются только две цифры, крайний справа разряд – также разряд единиц, но следующий – разряд двоек, далее – разряд четвёрок. Посмотрите на приведённую таблицу, в которой привычные десятичные числа записаны в двоичной системе счисления:

Почепский Олег

Даже если нам кажется, что ПК намного умнее нас, он остается безжизненным «железом», пока в него не установят программы. Именно благодаря им техника начинает считать, думать и помогать в работе с любыми массивами данных. В статье мы кратко перечислим основные виды системного программного обеспечения для компьютеров и дадим каждому типу характеристику.

виды программного обеспечения

Понятие

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

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

Программисты — это люди, которые разрабатывают и настраивают ПО. Они могут управлять ПК с помощью одной строчки, в которую вводят части закодированной информации. Несколько символов в определенной последовательности включают музыку, отправляют документ на печать или открывают конкретную страницу интернет-ресурса.

Оборудование

Какие бывают типы программного обеспечения: характеристика программ

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

Однако ничего не активизируется просто так. Все действует под влиянием операционной системы. Кажется, что ОС совершенно не нужна — можно ведь запускать все напрямую. Иногда этот метод тоже применяется. Так работают станки ЧПУ, крупные автоматы производств, ЭВМ, другие серьезные механизмы, когда нужно постоянно повторять один и тот же алгоритм.

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

Со стороны программистов типы ПО обоснованы практической значимостью. Если бы не было операционной системы, пришлось бы все функции и алгоритмы вносить в один огромный код. Затраты времени на это были бы колоссальными.

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

Какие основные виды ПО бывают по назначению

Программное обеспечение, установленное на ПК, делится на 3 разновидности:

  • прикладное;
  • системное;
  • инструментальное.

виды программного обеспечения компьютеров

Системное

Это часть системы, которая помогает следить за аппаратной стороной ПК и управлять ею. Сюда входят программы, контролирующие работу оперативной памяти, центрального процессора, видеокарты, устройств ввода и вывода информации, сетевые подпрограммы.

Таким ПО считается:

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

Основное отличие системной разновидности считается то, что она не рассчитана на выполнение конкретной поставленной задачи. Она необходима, чтобы обеспечивать бесперебойную работу остальных частей компьютера. Ее можно назвать посредником между оборудованием — «железом» и программным кодом.

Прикладное

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

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

Инструментальное

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

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

Постоянно пользоваться этим кодом базовым пользователям довольно сложно, поэтому были разработаны системы, которые позволяют переводить обычную речь в двоичную, привычную для ПК.

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

Читайте также: