Текст занимает 0 25 КБ памяти компьютера, сколько символов содержит этот текст
Обновлено: 21.11.2024
Проблема 2
- Сколько страниц находится в виртуальном адресном пространстве?
- Каков максимальный размер адресуемой физической памяти в этой системе?
- Если средний размер процесса составляет 8 ГБ, вы бы использовали одноуровневую, двухуровневую или трехуровневую таблицу страниц? Почему?
- Вычислите средний размер таблицы страниц в ответе на вопрос 3 выше.
-
36-битный адрес может адресовать 2 ^ 36 байтов в машине с байтовой адресацией. Поскольку размер страницы составляет 8 КБ (2^13), количество адресуемых страниц равно 2^36 / >2^13 = 2^23
Чтобы принять решение, нам необходимо проанализировать требования к памяти и времени для схем подкачки. В приведенных ниже расчетах учитывается средний размер процесса.
Пейджинг 1 уровня
Поскольку у нас есть 2^23 страницы в каждом виртуальном адресном пространстве, и мы используем 4 байта на запись в таблице страниц, размер таблицы страниц будет 2^23 * 2^2 = 2 ^ 25. Это 1/256 собственного пространства памяти процесса, так что это довольно дорого. (32 МБ)
Пейджинг 2 уровня
Адрес будет разделен на 12 | 11 | 13, так как мы хотим, чтобы страницы таблицы страниц умещались на одной странице, и мы также хотим разделить биты примерно поровну.
Поскольку размер процесса составляет 8 ГБ = 2^33 Б, я предполагаю, что это означает, что общий размер всех отдельных страниц, к которым обращается процесс, составляет 2^33 Б. Следовательно, этот процесс обращается к 2^33 / 2^13 = 2^20 страниц. Нижний уровень таблицы страниц содержит 2^20 ссылок. Мы знаем, что размер каждого фрагмента нижнего уровня таблицы страниц составляет 2 ^ 11 записей. Таким образом, нам нужно 2^20 / 2^11 = 2^9 фрагментов нижнего уровня.
Тогда общий размер таблицы страниц равен:
//размер внешней таблицы страниц | //общий размер внутренних страниц< /td> | |
1 * 2^12 * 4 | + 2^9 * 2^11 * 4 | = 2^20 * ( 2^-6 + 4) ~4 МБ |
3 уровня пейджинга
Для 3 уровня пейджинга мы можем разделить адрес следующим образом:
8 | 8 | 7 | 13
Опять же, используя те же рассуждения, что и выше, нам нужно 2 ^ 20/2 ^ 7 = 2 ^ 13 фрагментов таблицы страниц уровня 3. Каждый фрагмент таблицы страниц уровня 2 ссылается на 2^8 фрагментов таблицы страниц уровня 3. Итак, нам нужно 2^13/2^8 = 2^5 таблиц уровня 2. И, конечно же, одна таблица уровня 1.
Общий размер таблицы страниц равен:
//размер внешней таблицы страниц | //общий размер таблиц уровня 2 | //общий размер самых внутренних таблиц | |
1 * 2^8 * 4 | 2^5 * 2^8 *4 | 2^13 * 2^7 * 4 | ~4MB |
Проблема 3
- Каков размер страницы в такой системе? Объясните свой ответ (число без обоснования не будет засчитано).
-
4К. Последние 12 бит виртуального адреса представляют собой смещение на странице, которое варьируется от 0 до 4095. Таким образом, размер страницы равен 4096, то есть 4 КБ.
Поскольку физические адреса имеют длину 44 бита, а размер страницы — 4 КБ, номер кадра страницы занимает 32 бита. Принимая во внимание 4 защитных бита, каждая запись таблицы страниц уровня 3 занимает (32+4) = 36 бит. Округление для выравнивания записей по байтам (словам) приведет к тому, что каждая запись будет потреблять 40 (64) бит или 5 (8) байтов. Для таблицы из 256 записей нам потребуется 1280 (2048) байт.
Таблица страниц верхнего уровня не должна предполагать, что таблицы страниц 2-го уровня выровнены по страницам. Итак, мы храним там полные физические адреса. К счастью, нам не нужны управляющие биты. Таким образом, каждая запись занимает не менее 44 бит (6 байтов для выравнивания по байтам, 8 байтов для выравнивания по словам). Таким образом, каждая таблица страниц верхнего уровня имеет размер 256*6 = 1536 байт (256 * 8 = 2048 байт).
Попытка воспользоваться выравниванием по 256 элементам для уменьшения размера элемента, вероятно, не стоит усилий. Сделать это было бы сложно; вам нужно будет написать новый распределитель памяти, который гарантирует такое выравнивание. Кроме того, мы не можем полностью уместить таблицу в выровненную область размером 1024 байта (44-10 = 34 бита на адрес, что потребовало бы более 4 байтов на запись), и округление размера до следующей степени двойки не спасло бы использовать любой размер, а не просто хранить указатели и использовать обычный распределитель.
Аналогично каждая запись в таблице страниц 2-го уровня представляет собой 44-битный физический указатель, 6 байтов (8 байтов) при выравнивании по байтам (словам). Таким образом, таблица с 16 элементами занимает 96 (128) байт. Таким образом, требуемое пространство составляет 1536 (2048) байт для таблицы страниц верхнего уровня + 96 (128) байт для одной таблицы страниц второго уровня + 1280 (2048) байт для одной таблицы страниц третьего уровня = 2912 (4224) байт. Поскольку процесс может уместиться ровно на 16 страницах, внутренняя фрагментация не тратит память впустую.
Таким образом, требуемое пространство составляет 1536 (2048) байт для таблицы страниц верхнего уровня + 3 * 96 (3 * 128) байт для 3 таблиц страниц второго уровня + 3 * 1280 (3 * 2048) для 3 таблиц третьего уровня. таблица страниц = 5664 (8576) байт.
Проблема 4
В соответствии с философией проектирования процессоров RISC, заключающейся в перемещении аппаратной функциональности в программное обеспечение, вы видите предложение о том, чтобы разработчики процессоров удаляли MMU (блок управления памятью) из аппаратного обеспечения. Чтобы заменить MMU, компиляторы генерируют так называемый позиционно-независимый код (PIC). PIC может быть загружен и запущен по любому адресу без выполнения какого-либо перемещения. Если предположить, что код PIC работает так же быстро, как и код без PIC, в чем будет недостаток этой схемы по сравнению со страничным MMU, используемым в современных микропроцессорах?
Решение:
Нужно решение.
Проблема 5
Опишите преимущества использования MMU, включающего сегментацию и пейджинг, по сравнению с теми, которые используют только пейджинг или только сегментацию. Представьте свой ответ в виде отдельных списков преимуществ перед каждой из чистых схем.
Решение:
Нужно решение.
Проблема 6
Рассмотрите следующий фрагмент кода, который умножает две матрицы: Предположим, что двоичный файл для выполнения этой функции помещается на одной странице, и стек также помещается на одной странице. Предположим далее, что для хранения целого числа требуется 4 байта. Вычислите количество промахов TLB, если размер страницы равен 4096, а TLB имеет 8 записей с замещающей политикой, состоящей из LRU.
Решение:
1024*(2+1024*1024) = 1073743872
Двоичный файл и стек умещаются на одной странице, поэтому каждый занимает одну запись в TLB. Пока функция работает, она постоянно обращается к двоичной странице и странице стека. Таким образом, две записи TLB для этих двух страниц будут все время находиться в TLB, а данные могут занимать только оставшиеся 6 записей TLB.
Мы предполагаем, что две записи уже находятся в TLB, когда функция начинает выполняться. Затем нам нужно рассмотреть только эти страницы данных.
Поскольку для хранения целого числа требуется 4 байта, а размер страницы составляет 4096 байт, для каждого массива требуется 1024 страницы. Предположим, что каждая строка массива хранится на одной странице. Тогда эти страницы можно представить в виде a[0..1023], b[0..1023], c[0..1023]: Страница a[0] содержит элементы a[0][0..1023], страница a[1] содержит элементы a[1][0..1023] и т. д.
Для фиксированного значения i, скажем, 0, функция выполняет цикл по j и k, у нас есть следующая ссылочная строка:
Для ссылочной строки (всего 1024 строки) a[0], c[0] приведут к двум промахам TLB. Поскольку доступ к a[0] и b[0] будет осуществляться через каждые четыре обращения к памяти, эти две страницы не будут заменены алгоритмом LRU. Для каждой страницы в b[0..1023] каждый раз при доступе к ней будет происходить один промах TLB. Таким образом, количество промахов TLB для второго внутреннего цикла равно
2+1024*1024 = 1048578.
В килобайте 1024 байта, а в мегабайте 1024 килобайта, поэтому документ размером 1 КБ будет содержать 1024 байта данных или 1024 символа текста и другой программной информации, описывающей форматирование документа и другие характеристики, чтобы его можно было открыть. и используется программным приложением, таким как Adobe Acrobat или Microsoft Word.
Изображения представлены на экране в виде пикселей или цветных точек, но могут быть созданы в различных форматах, требующих для хранения файлов самых разных размеров. Для каждого изображения требуется разное количество байтов на пиксель, чтобы определить цвет и расположение каждого пикселя на экране. Черно-белые изображения требуют меньше места, чем изображения в оттенках серого или цветные из-за количества байтов, необходимых для уникального описания каждого цвета. Изображения могут быть выражены во многих форматах, и некоторые большие форматы файлов, такие как изображения TIFF, являются "без потерь" - это означает, что каждый пиксель (точка цвета на вашем экране) получает свой собственный набор байтов для его описания. При равных цветах и других факторах изображение размером 100x100 пикселей (всего = 1000 пикселей) требует примерно в 10 раз больше места для хранения, чем изображение 10x10 пикселей (всего = 100 пикселей). Для сравнения, для представления одного символа текста, занимающего на экране пространство размером 10 x 10 пикселей, обычно требуется всего один байт.
Если вы поместите отсканированные изображения TIFF в файл PDF, вы обнаружите, что объем пространства, необходимый для нового файла PDF, превышает объем места, занимаемого только изображениями TIFF. Это связано с тем, что в файл PDF встроена информация, описывающая, как просматривать и интерпретировать изображения TIFF в средстве просмотра PDF, а также информация (метаданные) для описания самого файла.
Вы обнаружите, что полная страница электронного текста значительно меньше, чем отсканированное изображение TIFF того же текста, когда оно добавляется в файл PDF.
Разница в размере файла txt выше представляет собой то, что добавлено, чтобы сделать его файлом PDF.
Файл PDF, содержащий 8-битный файл TIFF 10x10 с буквой "a" (такой же размер на экране, как и исходный текст)
Хотя точное количество текстовых данных в килобайте (КБ) или мегабайте (МБ) может варьироваться в зависимости от характера документа, килобайт может содержать около половины страницы текста, а мегабайт — около 500 страниц. текста. Текст в цифровом файле преобразуется в двоичные данные, которые обозначают буквы и цифры с помощью выражений из единиц и нулей. Файлы большего размера содержат больше этих данных, что, в свою очередь, эквивалентно большему количеству типизированной информации.
Один мегабайт может содержать около 500 страниц текста, что сопоставимо с одной толстой книгой.
Двоичные файлы и биты
Большинство современных компьютеров представляют собой двоичные системы и работают с битами данных. Бит — это самая основная единица информации, которая может иметь два состояния: обычно указывается как 0 или 1. Длинные строки этих битов могут представлять большинство типов информации, включая текст, изображения и музыку. Однако чистая двоичная информация бесполезна для людей, которые не научились читать и писать в двоичном формате. Двоичное число 11000101110, например, эквивалентно 1582.
Планшетный компьютер может иметь гигабайты памяти, способные хранить тысячи книг.
Группировка битов в байты
Чтобы сделать данные более доступными и упрощенными, группы битов объединяются в байты. один байт состоит из 8 бит. Набор из 8 битов был выбран потому, что он обеспечивает 256 возможных вариантов, что достаточно для указания букв, цифр, пробелов, знаков препинания и других расширенных символов. Само это предложение, например, состоит из 125 байтов, потому что в нем 125 букв, цифр, пробелов и знаков препинания. Имейте в виду, что это представляет собой только чистый текст; некоторые текстовые редакторы включают в себя другие типы данных форматирования, поэтому размер файла становится больше, чем просто количество символов в файле.
Большинство компакт-дисков содержат около 750 мегабайт данных.
Количество текста
Килобайт — это 1 024 байта, часто для простоты округляемых до 1 000; в то время как мегабайт составляет 1 048 576 байтов, или около 1 миллиона. Подсчитано, что килобайт может вместить около половины машинописной страницы. Поэтому для одной полной страницы требуется около 2 КБ. На следующей диаграмме показано количество байтов в общепринятых терминах, таких как килобайты и мегабайты, а также объем текста, который может храниться в каждом из них.
Имя | Количество байтов | Количество текста td> |
Килобайт (КБ) | 2 10 или 1024 | 1/2 страницы |
2 20 или 1 048 576 | 500 страниц или 1 толстая книга | |
Гигабайт (ГБ) td> | 2 30 или 1 073 741 824 | 500 000 страниц или 1000 толстых книг |
Терабайт (ТБ) | 2 40 или 1 099 511 627 776 | 1 миллион толстых книг |
Петабайт | 2 50 или 1 125 899 906 842 624 | 180 библиотек Конгресса< /td> |
Exabyte | 2 60 или 1 152 921 504 606 846 976 | 180 тысяч библиотек Конгресса |
Zettabyte | 2 70 или 1 180 591 620 717 411 303 424 | 180 миллионов библиотек Конгресса |
Yottabyte | 2 80 или 1 208 925 819 614 629 174 706 176 | 180 миллиардов библиотек Конгресса |
Библиотека Конгресса
Библиотека Конгресса в Вашингтоне, округ Колумбия, считается крупнейшей в мире библиотекой с более чем 28 миллионами томов. Цифры, указанные в приведенной выше таблице, основаны на предположении, что средняя книга состоит из 200 страниц. Это означает, что для хранения цифровой резервной копии всей Библиотеки Конгресса потребуется около 28 ТБ дискового пространства.
Портативное хранилище мультимедиа
Большинство компакт-дисков (CD) содержат около 750 МБ, что примерно эквивалентно 375 000 страниц текста. Цифровые универсальные диски (DVD) могут хранить 4,7 ГБ или 2,3 миллиона страниц. Диски Blu-Ray могут содержать 27 ГБ или 13,5 миллионов страниц, что примерно эквивалентно тексту, содержащемуся в 67 500 книгах. Такие устройства, как электронные книги и планшетные компьютеры, часто имеют многогигабайтную память, что делает их идеальными для хранения тысяч книг.
Гигабайт может содержать информацию, эквивалентную примерно 1000 толстых книг.
Означает ли это, что 1 байт может содержать только один символ? Например:
и если у tiny int есть диапазон от 0 до 255, означает ли это, что его можно хранить с 255 символами?
что хранится
какой будет диапазон 0-10
Байт — это наименьшая единица данных в системе. Как правило, 1 байт = 1 символу ASCII. 2 байта = 1 символ UTF-16. Байт без знака может устареть от значений 0–255.
Посылка этого вопроса совершенно неверна. Байт не определяется как 8 бит, то есть октет. Байт — это наименьший адресный размер данных в архитектуре.
4 ответа 4
1 байт может содержать 1 символ. Например: обратитесь к значениям Ascii для каждого символа и преобразуйте их в двоичные. Вот как это работает.
Размер Tiny Int = 1 байт (от -128 до 127)
Int = 4 байта (от -2147483648 до 2147483647)
Да, 1 байт кодирует символ (включая пробелы и т. д.) из набора ASCII. Однако в единицах данных, предназначенных для кодировки символов, на практике может и часто требуется до 4 байтов. Это потому, что английский не единственный набор символов. И даже в англоязычных документах часто представлены другие языки и символы. Их очень много, и есть очень много других наборов кодировок, о которых вы, возможно, слышали, например. БИГ-5, УТФ-8, УТФ-32. Большинство компьютеров в настоящее время допускают такое использование и обеспечивают наименьшее количество искаженного текста (что обычно означает отсутствующий набор кодировок). 4 байта достаточно, чтобы покрыть эти возможные кодировки. I байт на символ не позволяет этого, и при использовании он часто превышает 4 байта на возможный символ для всех кодировок, а не только для ASCII. Окончательному символу может потребоваться только байт для работы или представления на экране, но для этого требуется, чтобы 4 байта были расположены в довольно обширной глобальной кодировке «работает».
Ваши баллы действительны, но я думаю, что вы путаете английский алфавит с английскими буквами. (Я думаю, что английский язык несколько уникален тем, что «Алфавит» не перечисляет все его буквы, не говоря уже обо всех их компьютеризированных формах символов.)
2^8 = 256 символов. Символ в двоичном формате — это последовательность из 8 (0 или 1).
Я считаю, что существует путаница, что 1 байт может содержать 256 символов - это не может, а скорее, что 1 символ может иметь 256 опций/вариаций/символов (a,b,c или. ) - если только символ использует 1 байт. Если для этого требуется больше байтов, таких как юникод, тогда это позволит использовать больше параметров символов, что, конечно же, требует юникод. Точно так же, как 1 байт может содержать 256 «параметров», вы можете хранить любое число от 0 до 255 в 1 байте как одно число, но это не означает, что вы получите 255 различных чисел.
Читайте также: