Где хранится выполняемая в данный момент программа и обрабатываемые ею данные во внешней памяти
7.Для того, чтобы на диске можно было хранить файлы, диск должен быть предварительно:
8.В процессе форматирования диск разбивается на две области :
А) имя и расширение
Б) область хранения и каталог
В) оперативную и кэш-память
Г) сектора и дорожки
9.Одноуровневая файловая система
А) каталог диска представляет собой иерархическую последовательность имён файлов
Б) представляет собой систему вложенных папок
В) когда каталог диска представляет собой линейную последовательность имён файлов и соответствующих начальных секторов
Г) каталог диска представляет собой геометрическую последовательность имён файлов
А) начинается с логического имени диска, затем записывается нужный файл , затем последовательность имён вложенных друг в друга папок
Б) начинается с последовательности имён вложенных друг в друга папок, в последней из которых находится нужный файл, затем записывается логическое имя диска,
В) начинается с последней папки, в которой находится нужный файл, затем записывается логическое имя диска
Г) начинается с логического имени диска, затем записывается последовательность имён вложенных друг в друга папок, в последней из которых находится нужный файл
11.Выберите правильное имя файла
12.Операционная система относится к
А) к программам – оболочкам
Б) к системному программному обеспечению
В) к прикладному программному обеспечению
13.Для организации доступа к файлам операционная система должна иметь сведения о
А) о номерах кластера, где размещается каждый файл
Б) об объёме диска
В) о содержании файла
Г) о количестве файлов на диске
14.Где хранится выполняемая в данный момент программа и обрабатываемые данные
А) во внешней памяти
В) в оперативной памяти
Г) на устройстве вывода
15.Каталогом называется место на диске имя и содержащее
А) Список программ, составленных пользователем
Б) файлы и другие каталоги
В) только определённые файлы
Г) информацию о файлах (имя, расширение, дата последнего обновления)
16.Начальная загрузка операционной системы осуществляется
А) клавишами ALT+DEL
Б) клавишами CTRL+DEL
В) при включении компьютера
17.Операционная система это:
А) техническая документация компьютера
Б) совокупность устройств и программ общего пользования
В) совокупность основных устройств компьютера
Г) комплекс программ, организующих управление работой компьютера и его взаимодействие с пользователем
18.Имя логического диска обозначается
Б) буквами и цифрами
В) русскими буквами
Г) латинскими буквами
19.Корневой каталог – это
А) первый верхний
В) самый главный
Г) самый большой
20.Путь к файлу не включает .
21.Состояние операционной системы, при котором она перестает выдавать результаты и реагировать на запросы. - это ..
А )отключение принтера
В) отключение монитора
22.Дано дерево каталогов. Определите полное имя файла Doc3.
23.В процессе загрузки операционной системы происходит:
А) копирование файлов операционной системы с гибкого диска на жёсткий диск
Б) копирование файлов операционной системы с CD – диска на жёсткий диск
В) последовательная загрузка файлов операционной системы в оперативную память
Г) копирование содержимого оперативной памяти на жёсткий диск.
А) пользователь, который решает свои прикладные задачи
Б) программа, с помощью которой операционная система решает свои прикладные задачи
В) устройства, с помощью которых пользователь решает свои прикладные задачи
Г) программа, с помощью которой пользователь решает свои прикладные задачи
25.Приложение функционирует под управлением
А) оперативной памяти
В) операционной системы
26. К приложения общего назначения не относятся:
А) графические редакторы
Б) пользовательские редакторы
В) звуковые редакторы
Г) текстовые редакторы
Тест по темам «Файлы и файловая система»,
«Программное обеспечение компьютера»
1.Имя файла состоит из двух частей:
А) адреса первого сектора и объёма файла
Б) имени и расширения
В) области хранения файлов и каталога
Г) имени и адреса первого сектора
2.Приложение функционирует под управлением
А) оперативной памяти
В) операционной системы
3.Расширение файлу присваивает:
А) программа при его создании
Г) операционная система
4.Имя файла может включать до
5.Для того, чтобы на диске можно было хранить файлы, диск должен быть предварительно:
6.Корневой каталог – это
А) первый верхний
В) самый главный
Г) самый большой
7.Одноуровневая файловая система
А) каталог диска представляет собой иерархическую последовательность имён файлов
Б) представляет собой систему вложенных папок
В) когда каталог диска представляет собой линейную последовательность имён файлов и соответствующих начальных секторов
Г) каталог диска представляет собой геометрическую последовательность имён файлов
А) область хранения данных на диске
Б) программа или данные, хранящиеся в долговременной памяти
В) программа или данные, имеющие имя и хранящиеся в оперативной памяти
Г) программа или данные, имеющие имя и хранящиеся в долговременной памяти
А) начинается с логического имени диска, затем записывается нужный файл , затем последовательность имён вложенных друг в друга папок
Б) начинается с последовательности имён вложенных друг в друга папок, в последней из которых находится нужный файл, затем записывается логическое имя диска,
В) начинается с последней папки, в которой находится нужный файл, затем записывается логическое имя диска
Г) начинается с логического имени диска, затем записывается последовательность имён вложенных друг в друга папок, в последней из которых находится нужный файл
10.Под расширение отводится
11.Выберите правильное имя файла
12.Операционная система относится к
А) к программам – оболочкам
Б) к системному программному обеспечению
В) к прикладному программному обеспечению
13.Для организации доступа к файлам операционная система должна иметь сведения о
А) о номерах кластера, где размещается каждый файл
Б) об объёме диска
В) о содержании файла
Г) о количестве файлов на диске
14.В процессе форматирования диск разбивается на две области :
А) имя и расширение
Б) область хранения и каталог
В) оперативную и кэш-память
Г) сектора и дорожки
15.Где хранится выполняемая в данный момент программа и обрабатываемые данные
А) во внешней памяти
В) в оперативной памяти
Г) на устройстве вывода
16.Начальная загрузка операционной системы осуществляется
А) клавишами ALT+DEL
Б) клавишами CTRL+DEL
В) при включении компьютера
17.Операционная система это:
А) техническая документация компьютера
Б) совокупность устройств и программ общего пользования
В) совокупность основных устройств компьютера
Г) комплекс программ, организующих управление работой компьютера и его взаимодействие с пользователем
18.Имя логического диска обозначается
Б) буквами и цифрами
В) русскими буквами
Г) латинскими буквами
19.Путь к файлу не включает .
20.Состояние операционной системы, при котором она перестает выдавать результаты и реагировать на запросы. - это ..
А )отключение принтера
В) отключение монитора
21.Имя файлу даёт:
А) операционная система
В) программа при его создании
22.Дано дерево каталогов. Определите полное имя файла Doc3.
23.В процессе загрузки операционной системы происходит:
А) копирование файлов операционной системы с гибкого диска на жёсткий диск
Б) копирование файлов операционной системы с CD – диска на жёсткий диск
В) последовательная загрузка файлов операционной системы в оперативную память
Г) копирование содержимого оперативной памяти на жёсткий диск.
24.Каталогом называется место на диске имя и содержащее
А) Список программ, составленных пользователем
Б) файлы и другие каталоги
В) только определённые файлы
Г) информацию о файлах (имя, расширение, дата последнего обновления)
А) пользователь, который решает свои прикладные задачи
Б) программа, с помощью которой операционная система решает свои прикладные задачи
В) устройства, с помощью которых пользователь решает свои прикладные задачи
Г) программа, с помощью которой пользователь решает свои прикладные задачи
1. Что такое компьютер?
а) устройство для обработки аналоговых сигналов;
б) устройство для хранения информации любого вида.
в) многофункциональное электронное устройство для работы с информацией;+
г) электронное вычислительное устройство для обработки чисел;
2. От чего зависит производительность работы компьютера (быстрота выполнения операций)?
а) тактовый частоты процессора;
б) объема обрабатываемой информации.+
в) быстроты нажатия на клавиши;
г) размера экрана монитора;
3. Какое название имеет система взаимосвязанных технических устройств, которые выполняют ввод, хранение, обработку и вывод информации?
а) программное обеспечение;
б) компьютерное обеспечение;
в) аппаратное обеспечение.+
г) системное обеспечение;
4. Устройством визуального воспроизведения символьной и графической информации является:
а) процессор;
б) клавиатура.
в) сканер;
г) монитор;+
5. Устройство, не находящееся в системном блоке:
а) видеокарта;
б) процессор;
в) сканер;+
г) жёсткий диск;
д) сетевая карта;
6. Для чего нужен дисковод?
а) чтения/записи данных с внешнего носителя;+
б) хранения команд исполняемой программы.
в) долговременного хранения информации;
г) обработки команд исполняемой программы;
7. НЕ периферийное устройство:
а) жесткий диск;+
б) принтер;
в) сканер.
г) модем;
д) web-камера;
8. Название принтера с чернильной печатающей головкой, выбрасывающей под давлением чернила из ряда мельчайших отверстий на бумагу:
а) сублимационный;
б) матричный.
в) струйный;+
г) жёсткий;
д) лазерный;
9. Программа последовательностью:
а) команд для компьютера;+
б) электрических импульсов;
в) нулей и единиц;
г) текстовых знаков;
10. В каком месте нахождения информация будет утеряна при выключении компьютера?
а) на гибком диске;
б) на жестком диске;
в) на CD-ROM диске;
г) в оперативной памяти;+
11. Что применяется для долговременного хранения пользовательской информации?
а) внешняя память;+
б) процессор;
в) дисковод;
г) оперативная память;
12. В каком месте можно сохранить информацию перед отключением компьютера?
а) в оперативной памяти;
б) во внешней памяти;+
в) в регистрах процессора;
г) на дисководе;
13. Наименьшей адресуемой частью памяти компьютера является:
а) байт;
б) бит;+
в) файл;
г) машинное слово;
14. Для чего нужен магнитный диск? Для…
а) обработки информации;
б) хранения информации;+
в) ввода информации;
г) вывода информации;
15. Где хранится выполняемая в данный момент программа и обрабатываемые ею данные?
а) во внешней памяти;
б) в оперативной памяти;+
в) в процессоре;
г) на устройстве ввода;
16. Что такое программа?
а) обрабатываемая информация, представленная в памяти компьютера в специальной форме;
б) электронная схема, управляющая работой внешнего устройства;
в) описание последовательности действий, которые должен выполнить компьютер для решения поставленной задачи обработки данных;+
г) программное управляемое устройство для выполнения любых видов работы с информацией;+
17. Что такое сканер?
а) устройство хранения информации
б) устройство обработки информации
в) устройство вывода информации на бумагу
г) устройство ввода информации с бумаги+
18. Типом принтера с наихудшими качествами печати является:
а) струйный
б) матричный+
в) лазерный
19. Какая кнопка перемещает курсор в начало строки клавиша?
а) PgDown
б) End
в) PgUp
г) Home+
20. Какой устройство не является устройством вывода информации?
а) микрофон+
б) монитор
в) принтер
г) звуковые колонки
22. Что можно сделать щелчком мыши?
а) перемещать объект
б) открыть объект
в) указать объект+
23. Какой клавишей происходит завершение ввода команды?
а) Enter+
б) Пробел
в) Shift
г) Backspace
24. Что применяют для подключения компьютера к телефонной сети?
а) плоттер
б) принтер
в) факс
г) сканер
д) модем+
25. Для чего нужны постоянно запоминающие устройства? Для…
а) хранения программы пользователя во время работы
б) хранения постоянно используемых программ
в) хранения программ первоначальной загрузки компьютера и тестирования его узлов+
г) записи особо ценных прикладных программ
д) постоянного хранения особо ценных документов
26. От чего зависит скорость работы процессора?
а) объема обрабатываемой информации
б) организации интерфейса операционной системы
в) объема внешнего запоминающего устройства
г) тактовой частоты+
д) наличия или отсутствия подключенного принтера
27. Устройства, которые не являются устройствами ввода информации:
а) сканер
б) монитор+
в) мышь
г) клавиатура
28. Правильное определение компьютера:
а) устройство для обработки аналоговых сигналов
б) устройство для работы с текстами
в) многофункциональное электронное устройство для работы с информацией+
г) электронно-вычислительное устройство для обработки чисел
д) устройство для хранения информации любого вида
29. Что такое видеокарта?
а) устройство ввода информации
б) микросхема, осуществляющая вывод информации на экран+
в) устройство распознавания текстовой информации
г) устройство вывода информации
30. Что предназначено для долговременного хранения информации?
а) внешние носители+
б) процессор
в) блок питания
г) дисковод
д) оперативная память
31. Характеристика матричного принтера:
а) высокая скорость печати
б) высокое качество печати
в) наличие печатающей головки+
г) бесшумная работа
32. Для чего клавиша Shift?
а) печать заглавных символов+
б) ввод команды
в) переход в начало страницы
г) удаление символа
33. При отключении какого элемента ПК не будет функционировать?
а) оперативной памяти+
б) мыши
в) принтера
г) дисковода
д) сканера
34. Полный перечень основных элементов персонального компьютера:
а) центральный процессор, оперативная память, устройства ввода/вывода+
б) сканер, мышь, монитор, принтер
в) микропроцессор, сопроцессор, монитор
г) монитор, винчестер, принтер
д) АЛУ, УУ, сопроцессор
35. Что значит адресуемость оперативной памяти?
а) возможность хранения программ и данных
б) наличие номера у каждой ячейки оперативной памяти и возможность доступа к ней+
в) дискретность структурных единиц памяти
г) энергонезависимость оперативной памяти
д) энергозависимость оперативной памяти
36. Где будет храниться прикладная программа во время выполнения?
а) в видеопамяти
б) в оперативной памяти+
в) в процессоре
г) в ПЗУ
д) на жестком диске
37. Что происходит с информацией при отключении компьютера?
а) стирается на гибком диске
б) исчезает из постоянного запоминающего устройства
в) стирается на жестком диске
г) стирается на компакт-диске
д) исчезает из оперативной памяти+
38. Что такое микрофон?
а) устройство вывода звуковой информации
б) устройство ввода звуковой информации+
в) устройство обработки звуковой информации
г) устройство хранения звуковой информации
39. Магистрально-модульный принцип архитектуры современного персонального компьютера подразумевает такую логическую организацию аппаратных компонент компьютера, при которой:
а) каждое устройство связывается с другими напрямую, а также через одну центральную магистраль
б) все устройства связываются друг с другом через магистраль, включающую в себя шины данных, адреса и управления+
в) устройства связываются друг с другом в определенной фиксированной последовательности (кольцом)
г) каждое устройство связывается с другими напрямую
д) связь устройств друг с другом осуществляется через центральный процессор, к которому они все подключаются
40. Что такое акустические колонки?
а) устройство обработки звуковой информации
б) устройство ввода звуковой информации
в) устройство хранения звуковой информации
г) устройство вывода звуковой информации+
41. Устройства, входящие в состав процессора:
а) дисплейный процессор, видеоадаптер
б) сканер, ПЗУ
в) кэш-память, видеопамять
г) оперативное запоминающее устройство, принтер
д) арифметико-логическое устройство, устройство управления, регистры+
42. Какое из представленных устройств используют для ввода информации:
а) монитор
б) процессор
в) принтер
г) клавиатура+
д) ПЗУ
43. Кнопка включения дополнительной клавиатуры:
а) Power
б) ScrollLock
в) CapsLock
г) NumLock+
44. Название компакт-диска, предназначенного для многократной записи новой информации :
а) CD-ROM;
б) CD-RW;+
в) DVD-ROM;
г) CD-R;
45. Что такое клавиатура ?
а) устройство ввода манипуляторного типа
б) устройство ввода символьной информации+
в) устройство вывода информации
г) устройство хранения информации символьного типа
46. В каком виде должна быть представлена информация, чтобы она называлась данными?
а) в виде текста из учебника;
б) в числовом виде;+
в) в двоичном компьютерном коде;
г) в виде команд для компьютера.
Где хранится выполняемая в данный момент программа и обрабатываемые данные А) во внешней памяти Б) впроцессоре В) в оперативной памяти Г) на устройстве вывода.
В ОПЕРАТИВНОЙ ПАМЯТИ - в пределах её мощности.
Не всегда ОЗУ запоминает ВСЮ программу.
Например при видео - играх задержки при перезагрузках.
Лишнее остается на ЖЕСТКОМ ДИСКЕ.
Ответ - в оперотивной памяти.
Регистраторы процессора это - 1)ячейки оперативной памяти2)программы обеспечивающие связь процессора с ОП3 3)ячейки процессорной памяти 4) ячейки внешней памяти 5)программы обеспечивающие связь процес?
Регистраторы процессора это - 1)ячейки оперативной памяти2)программы обеспечивающие связь процессора с ОП3 3)ячейки процессорной памяти 4) ячейки внешней памяти 5)программы обеспечивающие связь процессора с внешними устройствами.
Какая информация хранится в оперативной памяти?
Какая информация хранится в оперативной памяти?
* та, с которой работает процессор в данный момент времени та, которая нужна для тестирования компьютера та, которая сохраняется после выключения компьютера.
Устройство ввода и вывода?
Устройство ввода и вывода.
Работает с внешней памятью.
Какие из утверждений о памяти компьютера верны?
Какие из утверждений о памяти компьютера верны?
1. в памяти компьютера данные хранятся без определенного порядка 2.
Ёмкость памяти - это скорость доступа к ячейке памяти 3.
Память компьютера – устройство для хранения информации 4.
При записи порции информации предыдущая информация, которая хранилась на этом месте также остается 5.
Память компьютера разделена на оперативную и внешнюю 6.
Информация, хранящаяся в запоминающем устройстве, закодирована с помощью цифр 1 и 0.
Для чего используется кэширование памяти в микропроцессоре?
Для чего используется кэширование памяти в микропроцессоре?
1) для согласования работы устройств с разным быстродействием за счет введения тактов ожидания для более быстродействующего устройства
2) введение буферных модулей памяти для согласования обмена информацией между микропроцессором и менее быстродействующей оперативной памятью
3) для возможности работы в мультипрограммном режиме
4) для загрузки данных из оперативной памяти в микропроцессор.
Куда попадает программа, хранящаяся во внешней памяти, после загрузки?
Куда попадает программа, хранящаяся во внешней памяти, после загрузки?
А)в процессор б) ПЗУ в) ОЗУ г) на устройство вывода.
Что хранится в ячейках оперативной памяти?
Что хранится в ячейках оперативной памяти?
Задание с выборочным ответом?
Задание с выборочным ответом.
Файл - это : 1)данные в оперативной памяти ; 2)программа или данные на диске, имеющие имя ; 3)программа в оперативной памяти ; 4)текст, распечатанный на принтере.
Где храниться ОС?
Где храниться ОС?
А. Может храниться на любом внешнем носителе.
В. на винчестера.
Д. В оперативной памяти компьютера.
Файл – это 1) данные в оперативной памяти ; 2) данные на диске, имеющие имя ; 3) программа в оперативной памяти ; 4) текст на диске?
Файл – это 1) данные в оперативной памяти ; 2) данные на диске, имеющие имя ; 3) программа в оперативной памяти ; 4) текст на диске.
До появления Unicode было много распространённых 7 - 8 - битных кодировок. Ввиду малого количества доступных символов (не больше 2 ^ 8 = 256) такие кодировки не могли вместить все возможные символы разных языков, поэтому создавались различные кодиро..
Ответ А) щвук будет внедрён в презентацию ибудет адыкватно воспроизводиться.
10 байт выделено для хранения доп сведений.
Using System ; using System. Collections. Generic ; using System. Linq ; using System. Text ; using System. Threading. Tasks ; namespace zn < class Program < public static void Main(string[] args) < int sum = 0 ; int m = 1 ; Console. Write("Вв..
Программа на скрине! Надеюсь помог.
Все элементы будут равны первому элементу.
Два текста содержат одинаковое количество символов. Первый текст составлен в алфавите мощностью 32 символа.
Зрение - глаза Слух - уши Вкус - язык Запах - нос прикосновение - руки(что угодно).
Управление памятью – одна из главных задач ОС. Она критична как для программирования, так и для системного администрирования. Я постараюсь объяснить, как ОС работает с памятью. Концепции будут общего характера, а примеры я возьму из Linux и Windows на 32-bit x86. Сначала я опишу, как программы располагаются в памяти.
Каждый процесс в многозадачной ОС работает в своей «песочнице» в памяти. Это виртуальное адресное пространство, которое в 32-битном режиме представляет собою 4Гб блок адресов. Эти виртуальные адреса ставятся в соответствие (mapping) физической памяти таблицами страниц, которые поддерживает ядро ОС. У каждого процесса есть свой набор таблиц. Но если мы начинаем использовать виртуальную адресацию, приходится использовать её для всех программ, работающих на компьютере – включая и само ядро. Поэтому часть пространства виртуальных адресов необходимо резервировать под ядро.
Это не значит, что ядро использует так много физической памяти – просто у него в распоряжении находится часть адресного пространства, которое можно поставить в соответствие необходимому количеству физической памяти. Пространство памяти для ядра отмечено в таблицах страниц как эксклюзивно используемое привилегированным кодом, поэтому если какая-то программа пытается получить в него доступ, случается page fault. В Linux пространство памяти для ядра присутствует постоянно, и ставит в соответствие одну и ту же часть физической памяти у всех процессов. Код ядра и данные всегда имеют адреса, и готовы обрабатывать прерывания и системные вызовы в любой момент. Для пользовательских программ, напротив, соответствие виртуальных адресов реальной памяти меняется, когда происходит переключение процессов:
Голубым отмечены виртуальные адреса, соответствующие физической памяти. Белым – пространство, которому не назначены адреса. В нашем примере Firefox использует гораздо больше места в виртуальной памяти из-за своей легендарной прожорливости. Полоски в адресном пространстве соответствуют сегментам памяти таким, как куча, стек и проч. Эти сегменты – всего лишь интервалы адресов памяти, и не имеют ничего общего с сегментами от Intel. Вот стандартная схема сегментов у процесса под Linux:
Когда программирование было белым и пушистым, начальные виртуальные адреса сегментов были одинаковыми для всех процессов. Это позволяло легко удалённо эксплуатировать уязвимости в безопасности. Зловредной программе часто необходимо обращаться к памяти по абсолютным адресам – адресу стека, адресу библиотечной функции, и т.п. Удаленные атаки приходилось делать вслепую, рассчитывая на то, что все адресные пространства остаются на постоянных адресах. В связи с этим получила популярность система выбора случайных адресов. 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.
После стека идёт сегмент отображения в память. Тут ядро размещает содержимое файлов напрямую в памяти. Любое приложение может запросить сделать это через системный вызов mmap() в Linux или CreateFileMapping() / MapViewOfFile() в Windows. Это удобный и быстрый способ организации операций ввода и вывода в файлы, поэтому он используется для подгрузки динамических библиотек. Также возможно создать анонимное место в памяти, не связанное с файлами, которое будет использоваться для данных программы. Если вы сделаете в Linux запрос на большой объём памяти через malloc(), библиотека C создаст такую анонимное отображение вместо использования памяти из кучи. Под «большим» подразумевается объём больший, чем MMAP_THRESHOLD (128 kB по умолчанию, он настраивается через mallopt().)
Если в куче оказывается недостаточно места для выполнения запроса, эту проблему может обработать сама программа без вмешательства ядра. В ином случае куча увеличивается системным вызовом brk(). Управление кучей – дело сложное, оно требует хитроумных алгоритмов, которые стремятся работать быстро и эффективно, чтобы угодить хаотичному методу размещению данных, которым пользуется программа. Время на обработку запроса к куче может варьироваться в широких пределах. В системах реального времени есть специальные инструменты для работы с ней. Кучи тоже бывают фрагментированными:
И вот мы добрались до самой нижней части схемы – BSS, данные и текст программы. BSS и данные хранят статичные (глобальные) переменные в С. Разница в том, что BSS хранит содержимое непроинициализированных статичных переменных, чьи значения не были заданы программистом. Кроме этого, область BSS анонимна, она не соответствует никакому файлу. Если вы пишете static int cntActiveUsers , то содержимое cntActiveUsers живёт в BSS.
Сегмент данных, наоборот, содержит те переменные, которые были проинициализированы в коде. Эта часть памяти соответствует бинарному образу программы, содержащему начальные статические значения, заданные в коде. Если вы пишете static int cntWorkerBees = 10 , то содержимое cntWorkerBees живёт в сегменте данных, и начинает свою жизнь как 10. Но, хотя сегмент данных соответствует файлу программы, это приватное отображение в память (private memory mapping) – а это значит, что обновления памяти не отражаются в соответствующем файле. Иначе изменения значения переменных отражались бы в файле, хранящемся на диске.
Пример данных на диаграмме будет немного сложнее, поскольку он использует указатель. В этом случае содержимое указателя, 4-байтный адрес памяти, живёт в сегменте данных. А строка, на которую он показывает, живёт в сегменте текста, который предназначен только для чтения. Там хранится весь код и разные другие детали, включая строковые литералы. Также он хранит ваш бинарник в памяти. Попытки записи в этот сегмент оканчиваются ошибкой Segmentation Fault. Это предотвращает ошибки, связанные с указателями (хотя не так эффективно, как если бы вы вообще не использовали язык С). На диаграмме показаны эти сегменты и примеры переменных:
Изучить области памяти Linux-процесса можно, прочитав файл /proc/pid_of_process/maps. Учтите, что один сегмент может содержать много областей. К примеру, у каждого файла, сдублированного в память, есть своя область в сегменте mmap, а у динамических библиотек – дополнительные области, напоминающие BSS и данные. Кстати, иногда, когда люди говорят «сегмент данных», они имеют в виду данные + bss + кучу.
Бинарные образы можно изучать при помощи команд nm и objdump – вы увидите символы, их адреса, сегменты, и т.п. Схема виртуальных адресов, описанная в этой статье – это т.н. «гибкая» схема, которая по умолчанию используется уже несколько лет. Она подразумевает, что переменной RLIMIT_STACK присвоено какое-то значение. В противном случае Linux использует «классическую» схему:
Читайте также: