4 для чего предназначены системные программы хранящиеся в постоянной памяти

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

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

Важными классами системных программ являются также программы вспомогательного назначения — утилиты (лат. utilitas — польза). Они либо расширяют и дополняют соответствующие возможности операционной системы, либо решают самостоятельные важные задачи. Кратко опишем некоторые разновидности утилит:

  • программы контроля, тестирования и диагностики, которые используются для проверки правильности функционирования устройств компьютера и для обнаружения неисправностей в процессе эксплуатации; указывают причину и место неисправности;
  • программы-драйверы, которые расширяют возможности операционной системы по управлению устройствами ввода-вывода, оперативной памятью и т.д.; с помощью драйверов возможно подключение к компьютеру новых устройств или нестандартное использование имеющихся;
  • программы-упаковщики (архиваторы), которые позволяют записывать информацию на дисках более плотно, а также объединять копии нескольких файлов в один архивный файл;
  • антивирусные программы, предназначенные для предотвращения заражения компьютерными вирусами и ликвидации последствий заражения вирусами;
  • программы оптимизации и контроля качества дискового пространства ;
  • программы восстановления информации, форматирования, защиты данных ;
  • коммуникационные программы, организующие обмен информацией между компьютерами;
  • программы для управления памятью, обеспечивающие более гибкое использование оперативной памяти;
  • программы для записиCD-ROM, CD-R и многие другие.

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

КАК РАБОТАЕТ ПАМЯТЬ КОМПЬЮТЕРА | ОСНОВЫ ПРОГРАММИРОВАНИЯ

Источник: www.examen.ru

практическая №4. практическая 4. Отчет по практическому занятию 4 Устройство персонального компьютера. Преподаватель Бочарова О. В

Единственный в мире Музей Смайликов

Самая яркая достопримечательность Крыма

Скачать 0.53 Mb.

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Сибирский государственный университет науки и технологий имени академика М.Ф. Решетнева»

«Go as Programmer» №4. Как хранятся данные в оперативной памяти?

ОТЧЕТ ПО ПРАКТИЧЕСКОМУ ЗАНЯТИЮ №4

Устройство персонального компьютера.
Преподаватель ___________ Бочарова О.В.

Обучающийся ______БИАС2-20 28.09.21 ____ Черных А.А

Обучающийся ______БИАС2-20 28.09.21 ____ Бочко В.

ОТЧЕТ ПО ПРАКТИЧЕСКОМУ ЗАНЯТИЮ №4
Тема: Устройство персонального компьютера.

Цель: Знакомство со структурой персонального компьютера и практическая работа на персональном компьютере.

Материальное оборудование: Папка для лабораторно-практических

работ, ПК, компьютерные сети, принтер.
Ход работы
Задание №1. Структура персонального компьютера

1.У меня имеются все основные устройства компьютера, кроме принтера и сканера.

2. ПЗУ относится к устройствам ввода-вывода

ОЗУ относится к устройствам ввода-вывода

3. За обработку информации отвечает Центральный Процессор (ЦП)

4.Из видов памяти в компьютере, которые являются энергозависимыми, это — динамическая (DRAM) и статическая (SRAM) память с произвольным доступом. ОЗУ, кэш-память, видеопамять.
Задание №2. Назначения устройств персонального компьютера

Определите, какие устройства компьютера предназначены для…
Таблица 1 – Назначение устройств

Назначение устройства
Долговременного хранения данных, это жесткий магнитный диск (Винчестер), гибкий магнитный диск (дискета), оптические носители (CD – диски, DVD – диски), flash – диск, SSD, NVME.
Обработки и передачи информации, это центральный процессор
Ввода информации, это клавиатура, мышь, тачпа, планшет, джойстик, сканер, цифровые фото, видеокамеры, веб-камеры, микрофон
Вывода информации, это монитор, принтер, графопостроитель, акустическая система
Ввода-вывода информации, это интерактивная доска, стример, дисковод, сетевая плата, модем, гаптоклон
Синхронизации работы процессора и ОЗУ, это материнская плата
Кратковременного хранения данных, это ОЗУ
Постоянного хранения данных, это жесткий диск, SSD, NVME

Задание №3. Устройства ввода информации

1. На нашем персональном компьютере находятся устройства ввода информации, такие как: клавиатура, мышь, микрофон.
Задание №4. Монитор персонального компьютера

1. На нашем персональном компьютере установлен монитор типа PDP -мониторы.

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

3. У типа ЭЛТ-монитора присутствует электромагнитное излучение.
Задание №5. Работа с внешней памятью

1.На схеме системного блока (Приложение 1), винчестер установлен выше дисковода, но ниже DVD — ROM

2.На нашем сетевом диске записано 232 ГБ.

3.В 5 раз – во столько раз больше можно записать информацию на flash -памяти.

Читайте также:
Что за программа врайтер

4.Магнитный принцип записи присутствует на устройствах: жесткий диск ( HDD ), дисковод с дискетами.
Задание №6. Изучение принтера

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

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

2 .

Рисунок 1 – Схема расположения клавиш принтера
Задание №7. Изучение работы сканера

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

Понятно, что в этом случае копирование страниц книг и журналов просто невозможно. Рассматриваемые сканеры достаточно широко используются в областях, связанных с оптическим распознаванием символов OCR (Optical Character Recognition). Для удобства работы рулонные сканеры обычно оснащаются устройствами для автоматической подачи страниц.

  • Принтер – устройство вывода
  • Сканер – устройство ввода
  • Клавиатура – устройство ввода
  • Монитор – устройство вывода
  • Манипулятор – устройство ввода
  • ВЗУ – устройство долговременного хранения данных

Ответы на контрольные вопросы
1) Что принято называть персональным компьютером?

Ответ: Персональный компьютер – это однопользовательская (предназначенная для использования одним пользователем) ЭВМ, имеющая эксплуатационные характеристики бытового прибора и универсальные функциональные возможности.

2) Перечислите основные части персонального компьютера.

Ответ: Центральный процессор, ОЗУ, ПЗУ, жесткий диск, CD и DVD дисководы, видеокарта, блок питания, звуковая карта, материнская плата, дисковод со сменными дискетами.

3) Какую роль в системном блоке играет процессор?

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

4) Для чего предназначены системные программы, хранящиеся в постоянной памяти?

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

5) Что такое оперативная память?

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

6) Перечислите устройства вывода информации.

Ответ: Устройства вывода информации: это монитор, принтер, графопостроитель, акустическая система.

7) Какими устройствами представлено ВЗУ?

Ответ: Жесткий диск, оптический привод, флеш-память.

8) На какой объем записи информации рассчитана дискета на 3.5 дюйма?

Ответ: Дисковод на 3,5 дюйма предназначен для считывания информации дискет с емкостью 1,44 Мб.

9) Перечислите известные вами типы принтеров

Ответ: Матричный, лазерный, струйный.

10) Какая из кнопок ручного манипулятора “мышь” является основной? Для чего предназначена правая кнопка мыши?

Ответ: Основная кнопка – правая. Правая кнопка мыши предназначена для вызова контекстного меня объекта (файла, папки, рабочего стола, кнопок и т.д.)

11) Перечислите известные вам типы сканеров. Какие вы знаете характеристики сканеров?

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

Источник: topuch.com

Анатомия программы в памяти

Управление памятью – одна из главных задач ОС. Она критична как для программирования, так и для системного администрирования. Я постараюсь объяснить, как ОС работает с памятью. Концепции будут общего характера, а примеры я возьму из Linux и Windows на 32-bit x86. Сначала я опишу, как программы располагаются в памяти.

Читайте также:
Easy one hand что это за программа

Каждый процесс в многозадачной ОС работает в своей «песочнице» в памяти. Это виртуальное адресное пространство, которое в 32-битном режиме представляет собою 4Гб блок адресов. Эти виртуальные адреса ставятся в соответствие (mapping) физической памяти таблицами страниц, которые поддерживает ядро ОС. У каждого процесса есть свой набор таблиц.

Но если мы начинаем использовать виртуальную адресацию, приходится использовать её для всех программ, работающих на компьютере – включая и само ядро. Поэтому часть пространства виртуальных адресов необходимо резервировать под ядро.

image

image

Это не значит, что ядро использует так много физической памяти – просто у него в распоряжении находится часть адресного пространства, которое можно поставить в соответствие необходимому количеству физической памяти. Пространство памяти для ядра отмечено в таблицах страниц как эксклюзивно используемое привилегированным кодом, поэтому если какая-то программа пытается получить в него доступ, случается page fault. В Linux пространство памяти для ядра присутствует постоянно, и ставит в соответствие одну и ту же часть физической памяти у всех процессов. Код ядра и данные всегда имеют адреса, и готовы обрабатывать прерывания и системные вызовы в любой момент. Для пользовательских программ, напротив, соответствие виртуальных адресов реальной памяти меняется, когда происходит переключение процессов:

Голубым отмечены виртуальные адреса, соответствующие физической памяти. Белым – пространство, которому не назначены адреса. В нашем примере Firefox использует гораздо больше места в виртуальной памяти из-за своей легендарной прожорливости. Полоски в адресном пространстве соответствуют сегментам памяти таким, как куча, стек и проч. Эти сегменты – всего лишь интервалы адресов памяти, и не имеют ничего общего с сегментами от Intel. Вот стандартная схема сегментов у процесса под Linux:

image

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

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

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

Эта простая схема приводит к тому, что для отслеживания содержимого стека не требуется никакой сложной структуры – достаточно всего лишь указателя на начало стека. Добавление и удаление данных становится простым и однозначным процессом. Постоянное повторное использование районов памяти для стека приводит к кэшированию этих частей в CPU, что добавляет скорости. Каждый поток выполнения (thread) в процессе получает свой собственный стек.

Можно прийти к такой ситуации, в которой память, отведённая под стек, заканчивается. Это приводит к ошибке page fault, которая в Linux обрабатывается функцией expand_stack(), которая, в свою очередь, вызывает acct_stack_growth(), чтобы проверить, можно ли ещё нарастить стек. Если его размер не превышает RLIMIT_STACK (обычно это 8 Мб), то стек увеличивается и программа продолжает исполнение, как ни в чём не бывало. Но если максимальный размер стека достигнут, мы получаем переполнение стека (stack overflow) и программе приходит ошибка Segmentation Fault (ошибка сегментации). При этом стек умеет только увеличиваться – подобно государственному бюджету, он не уменьшается обратно.

Динамический рост стека – единственная ситуация, в которой может осуществляться доступ к свободной памяти, которая показана белым на схеме. Все другие попытки доступа к этой памяти вызывают ошибку page fault, приводящую к Segmentation Fault. А некоторые занятые области памяти служат только для чтения, поэтому попытки записи в эти области также приводят к Segmentation Fault.

Читайте также:
Что за программа proplus

После стека идёт сегмент отображения в память. Тут ядро размещает содержимое файлов напрямую в памяти. Любое приложение может запросить сделать это через системный вызов mmap() в Linux или CreateFileMapping() / MapViewOfFile() в Windows. Это удобный и быстрый способ организации операций ввода и вывода в файлы, поэтому он используется для подгрузки динамических библиотек.

Также возможно создать анонимное место в памяти, не связанное с файлами, которое будет использоваться для данных программы. Если вы сделаете в Linux запрос на большой объём памяти через malloc(), библиотека C создаст такую анонимное отображение вместо использования памяти из кучи. Под «большим» подразумевается объём больший, чем MMAP_THRESHOLD (128 kB по умолчанию, он настраивается через mallopt().)

Сама куча расположена на следующих позициях в памяти. Она обеспечивает выделение памяти во время выполнения программы, как и стек – но, в отличие от него, хранит те данные, которые должны пережить функцию, размещающую их. В большинстве языков есть инструменты для управления кучей. В этом случае удовлетворение запроса на размещение памяти выполняется совместно программой и ядром. В С интерфейсом для работы с кучей служит malloc() с друзьями, а в языке, имеющем автоматическую сборку мусора, типа С#, интерфейсом служит ключевое слово new.

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

image

И вот мы добрались до самой нижней части схемы – BSS, данные и текст программы. BSS и данные хранят статичные (глобальные) переменные в С. Разница в том, что BSS хранит содержимое непроинициализированных статичных переменных, чьи значения не были заданы программистом. Кроме этого, область BSS анонимна, она не соответствует никакому файлу. Если вы пишете static int cntActiveUsers , то содержимое cntActiveUsers живёт в BSS.

Сегмент данных, наоборот, содержит те переменные, которые были проинициализированы в коде. Эта часть памяти соответствует бинарному образу программы, содержащему начальные статические значения, заданные в коде. Если вы пишете static int cntWorkerBees = 10 , то содержимое cntWorkerBees живёт в сегменте данных, и начинает свою жизнь как 10. Но, хотя сегмент данных соответствует файлу программы, это приватное отображение в память (private memory mapping) – а это значит, что обновления памяти не отражаются в соответствующем файле. Иначе изменения значения переменных отражались бы в файле, хранящемся на диске.

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

Попытки записи в этот сегмент оканчиваются ошибкой Segmentation Fault. Это предотвращает ошибки, связанные с указателями (хотя не так эффективно, как если бы вы вообще не использовали язык С). На диаграмме показаны эти сегменты и примеры переменных:

image

Изучить области памяти Linux-процесса можно, прочитав файл /proc/pid_of_process/maps. Учтите, что один сегмент может содержать много областей. К примеру, у каждого файла, сдублированного в память, есть своя область в сегменте mmap, а у динамических библиотек – дополнительные области, напоминающие BSS и данные. Кстати, иногда, когда люди говорят «сегмент данных», они имеют в виду данные + bss + кучу.

Бинарные образы можно изучать при помощи команд nm и objdump – вы увидите символы, их адреса, сегменты, и т.п. Схема виртуальных адресов, описанная в этой статье – это т.н. «гибкая» схема, которая по умолчанию используется уже несколько лет. Она подразумевает, что переменной RLIMIT_STACK присвоено какое-то значение. В противном случае Linux использует «классическую» схему:

image

  • Программирование
  • Системное программирование
  • C

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru