На что влияет операционная система
На что влияет разрядность операционной системы? И что это вообще? Имею ввиду ну эту = 32-батную, 64-битную. Спасибо.
Для начала хочу установить некоторые соответствия:
x86 – это архитектура соответствующая 32-битной разрядности.
x64 – это архитектура соответствующая 64-битной разрядности.
Главным образом на выбор влияют два факта:
1. Разрядность процессора
2. Размер оперативной памяти
Разрядность процессора – это величина, которая определяет размер машинного слова, то есть количество информации, которой процессор обменивается информацией с оперативной памятью.
В наши дни первым фактором можно приниберечь, т. к. все современные процессоры способны одинаково работать, как в 32-х, так и в 64-х битном режиме. Ещё раз подчёркиваю, что никакой разницы нет.
Что касается оперативной памяти, то в этом и заключается вся суть. Дело в том, что каждая ячейка (8 бит = 1 байт) ОЗУ имеет адрес и в 32-х битной системе он записывается в виде двоичного кода длиной в 32 символа. Из простых математических преобразований получаем 2^32=4294967296 байт = 4 ГБ. То есть, в 32-битной системе, ячейки памяти условно расположенные за пределом 4ГБ просто не получат адреса и не будут использоваться. Если использовать 64-х битную систему, то размер адресуемой памяти 2^64= 18446744073709551616. Разница, как говорится, видна не вооружённым взглядом.
Из этого всего следует вывод, что в об щем случае ключевым фактором является размер ОЗУ: меньше 4 ГБ стоит выбрать 32-разрядную, больше или равно 4 ГБ – 64-разрядную.
На счет мифа, что x64 работает быстрее, чем x86, то это не совсем так. Прирост будет наблюдаться только в оптимизированных под x64 приложениях где-то на 3-5%, но не забывайте, что, возможно, некоторые 32-битные приложения просто не запустятся.
Что такое операционная система — Плюсы и минусы каждой ОС (2019)
Начинающие пользователи редко когда могут ответить на вопрос о том, что такое операционная система. Все знают о том, что существует такое понятие, и у всех из нас на компьютере стоит именно ОС, но объяснить, что это вообще значит. Поэтому сегодня мы ответим на этот вопрос. После прочтения данного материала вы будете знать все самые основные сведения о данном понятии.
Определение
Операционная система – это набор программ, которые управляют компьютером, смартфоном или другим устройством.
Очень просто. Не правда ли?
К этим программам относятся драйверы, то есть программное обеспечение, которое как бы переводит язык устройств компьютера (например, видеокарты, мыши, жесткого диска и так далее) на язык, понятный всему компьютеру и программам, установленным на нем. Она как бы объединяет все устройства и программы воедино. Это если говорить по-простонародному, а вообще все несколько сложнее. На сегодняшний день операционная система является главной частью любого устройства.
ОС объединяет программы и устройства
Мы видим ОС как рабочий стол со своим определенным интерфейсом. Такой подход дает возможность выполнять различные задачи на наших компьютерах. Так юзер может играть в игры, писать вот такие статьи, сидеть в интернете и тому подобное. Если бы у ПК или ноутбуков, а также мобильных устройств была какая-то одна задача, они бы не нуждались в операционной системе. У них была бы одна программа, как это есть сейчас в стиральных машинах, электрических плитах и других устройствах, которые предназначены для выполнения одной единственной задачи.
Работа операционной системы
Важными составляющими современной ОС является следующее:
Именно так и работает любая операционная система. Рассмотрим ее функции более подробно.
Функции работы ОС
Вот основные задачи, которые выполняет операционная система:
Также ОС сохраняет данные о неполадках, ошибках и так далее. В некоторых случаях она сама может исправить эти проблемы внутренними средствами. Но это происходит крайне редко.
Итак, теоретическую часть мы уже разобрали. Перейдем к практике, то есть к тому, какие бывают операционные системы и чем они отличаются.
Виды операционных систем
В основном, рассматриваемое нами понятие относится к компьютерам, но есть ОС для смартфонов и планшетов. Поэтому сначала мы разберем наиболее популярные системы на ПК и ноутбуки, а затем вкратце затронем и «операционки» на мобильные гаджеты.
Microsoft Windows
Самая первая ОС с таким пользовательским интерфейсом, который подразумевает рабочий стол, папки, курсор и все то, к чему мы привыкли. До Виндовс был MS DOS, который представлял собой оболочку для ввода команд. То есть вы видели только черный экран, куда могли вводить команды.
А потом появилась ОС Windows. Чтобы вы понимали, вот вам внешний вид первой версии данной операционной системы.
Основные плюсы и минусы ОС Windows такие:
Согласно некоторым данным, 88% юзеров по всему миру использует Windows.
Apple Mac OS X
Эта операционная система работает только на компьютерах Apple. На обычных ПК и ноутбуках она не запустится. Стоят эти компьютеры немало и это еще один большой недостаток данной ОС.
Впервые мир увидел Mac OS в 2000 году.
Основные преимущества и недостатки данной ОС такие:
Впрочем, последний минус не мешает профессиональным «звукачам» и людям, которые работают с графикой, использовать именно эти устройства в своей работе.
Linux
В 1991 году вышла операционная система Linux, которая сразу же стала конкурировать с Windows. Но позиция на вершине технического Олимпа уже была занята, так что и по сей день пользователи и разработчики отдают свое предпочтение отнюдь не этой ОС.
Преимущества и недостатки Linux такие:
Операционные системы для мобильных устройств
На сегодняшний день наибольшей распространенностью пользуется Android, на втором месте iOS. Есть еще Windows Mobile, но эта система является пережитком прошлого и встречается только на устройствах людей, которым не повезло купить смартфон с предустановленной WM.
Можно установить куда угодно, есть даже версии на компьютеры | Подходит только для смартфонов и планшетов Apple | Предустановленная ОС на некоторых не очень качественных аппаратах |
2008 (обновляется по сей день) | 2007 (обновляется по сей день) | 2000 (последняя версия вышла в 2010) |
На большинстве устройств | Только в продукции Apple | Очень мало устройств |
Много игр и программ; открытый исходный код; постоянные обновления. | Понятный интерфейс; экономность заряда; защищенность. | Всегда хорошая камера; стабильность и скорость работы; мелкие функции вроде проверки орфографии и полной загрузки фото и видео. |
Нужно часто заряжать аппарат; множество настроек; совместимость со старыми устройствами. | Файловая система закрыта и перебросить файлы так же просто, как в Андроид, невозможно; нет настроек пользователя; высочайшая цена. | Мало приложений, те что есть, нестабильны; навигация работает плохо; приложения разбросаны как попало. |
Теперь вы знаете, что такое операционная система и какие бывают ее виды.
Что такое разрядность Windows, какая бывает и на что влияет?
Наверняка каждый пользователь компьютера, когда-либо выполнявший установку/переустановку операционной системы Windows, сталкивался с необходимостью выбора разрядности. В данной статье мы подробно разберем, что это такое, на что может влиять в работе с компьютером, а также приведем все «за и против» при выборе разрядности ОС.
Что такое разрядность?
Термин «разрядность» применяется не к операционной системе или какому-либо программному обеспечению, а к электронно-вычислительному устройству либо шине, при помощи которой осуществляется передача информации между разными функциональными модулями компьютера.
Минуя сложные информационные и электронно-вычислительные термины, разрядность можно охарактеризовать как способность устройства или шины одновременно обрабатывать (принимать, отправлять) определенное количество бит за один такт (условно — 1 Гц). Если брать в пример 32-разрядный центральный процессор (ЦП), то он способен обрабатывать до 32 бит информации за один тактовый сигнал. 64-разрядные устройства обрабатывают за то же количество времени в два раза больше бит и так далее.
Если речь идет о разрядности операционной системы или любого программного обеспечения, здесь имеется в виду их способность работать с 32-х или 64-х битными процессорами. Например, Windows x64 не получится запустить на 32-х разрядном ЦП.
Однако все современные процессоры, использующиеся на персональных компьютерах, имеют 64-битную разрядность. Это позволяет устанавливать на них как 32-х, так и 64-х разрядные операционные системы. Для возможности запуска на x64 процессорах 32-битных ОС в первых предусмотрена специальная функция, имитирующая работу устройства в 32-битной разрядности. Tсли мыслить логически, максимальная производительность ЦП урезается вдвое.
Что означает разрядность x86?
Зачастую при описании разрядности операционных систем, каких-либо программ или электронно-вычислительных устройств вместо «x32» или «x64» указывается «x86». На самом деле, под «x86» подразумевается 32-битная разрядность. «x86» — это всего лишь одно из названий архитектуры 32-разрядных процессора. Это название было придумано компанией Intel. Оно образовано из последних двух цифр (86), которые присутствовали в наименовании всех ранних процессоров Intel — i286, i486 и т.д.
Как узнать разрядность моей Windows?
Определить разрядность установленной на компьютере операционной системы Windows можно множеством способов. Чтобы сделать это штатными средствами Windows, следуйт инструкции:
Отличия между Windows x86 и x64
Из всего вышесказанного следует вывод, что 64-разрядные электронно-вычислительные устройства и программное обеспечение более производителей, чем 32-разрядные. И в этом основное преимущество 64-битных ревизий операционных систем Windows. Однако максимальная производительность x64 может быть достигнута только на тех компьютерах, которые отвечают минимальным требованиям, предъявляемым к процессору и оперативной памяти:
Конечно, для запуска на компьютере 64-битной Windows будет достаточно одноядерного процессора с тактовой частотой в 1Ггц и оперативной памяти размером в 1 ГБ (и даже меньше, все зависит от версии операционной системы — 7, 8 или 10). Однако этих параметров окажется маловато для того, чтобы можно было «выжать» из системы всю ее производительность.
Если ПК не соответствует этим требованиям, то переход с 32-битной Windows на 64-битную не будет иметь смысла. Ситуация с производительностью, скорее всего, даже ухудшится — компьютер будет выполнять обыденные задачи медленнее.
Основное отличие — максимальный объем оперативной памяти
Основная причина перехода пользователей на использование 64-разрядных операционных систем Windows — это способность последних работать с объемом оперативной памяти более 4 Гб. Да, 32-битные ОС попросту не распознают объем ОЗУ больше этого значения.
Пользователей 32-разрядных систем будет ожидать неприятный сюрприз, когда они решат увеличить производительность своего компьютера, докупив дополнительные планки оперативной памяти. Если суммарный объем ОЗУ превысит отметку в 4 Гб, то эти «лишние» гигабайты системой будут попросту урезаны.
Количество установленного и доступного для использования объема оперативной памяти легко проверить штатными средствами Windows:
Т.е. каким бы не являлся объем установленной в компьютер оперативной памяти, в 32-разрядных версиях операционных систем Windows всегда будет доступно лишь 4 Гб.
Когда стоит переходить на Windows x64?
Переходить на использование 64-битных версий Windows, несомненно, стоит при необходимости увеличения производительности компьютера путем установки дополнительного объема оперативной памяти. Причем это можно сделать даже в случае, если в компьютере установлен одноядерный процессор. Ведь не терять же столь значительный объем ОЗУ.
Однако возможность использования на компьютере оперативной памяти более 4 Гб — не единственная причина перехода на 64-битную Windows. Это также может потребоваться для запуска программ или компьютерных игр, специально разработанных для использования в 64-битных операционных системах (их запуск в 32-битной среде невозможен). Для этого необязательно иметь на компьютере внушительный объем ОЗУ или многоядерный процессор, т.к. далеко не все 64-битные программы требуют наличия высоких компьютерных мощностей.
При переходе на 64-битную верию Windows нужно иметь в виду, что могут возникнуть проблемы с драйверами устройств. Не все производители выпускают программное обеспечение для своего оборудования, предназначенное для работы в 64-битной среде.
Что такое операционная система и как она работает?¶
Цель конспекта — последовательно рассмотреть и объяснить принципы устройства и функционирования операционной системы, её основных компонентов и абстракций.
Введение¶
Операционные системы окружают нас повсюду – это основное программное обеспечение персональных компьютеров, серверов, мобильных устройств, сетевых устройств (роутеры, коммутаторы) и даже современных автомобилей (борт-компьютер), телевизоров и прочего. Перечислять можно очень долго, ведь они требуются практически в каждой компьютерной системе.
Любой компьютер представляет собой связанную совокупность: процессора, памяти и устройств ввода-вывода.
Рис. 1. Общее представление архитектуры компьютера
Например, процессор умеет выполнять только четыре базовых типа инструкции:
Получается, что непосредственное создание и управление сложными процессами (приложениями) на аппаратуре становится крайне неэффективным и неудобным. То есть, например, создать и запустить на исполнение программу-браузер исключительно с помощью данных инструкций становится крайне сложной задачей. Особенно при условии, что помимо этого процесса (браузера) существуют и другие процессы, которые также пользуются ресурсами вычислительной машины.
Возникает вопрос — Как заставить всё это слаженно и эффективно работать, сделав пользование компьютером удобным как для обычного человека, так и для прикладного программиста?
Чтобы ответить на этот вопрос более последовательно, немного заглянем туда, откуда всё начиналось.
Немного истории¶
На заре компьютерной эпохи, первые компьютеры представляли собой огромные блоки (занимавшие большие комнаты), в которых размещались основные его компоненты: процессор, память и устройства ввода-вывода. И всего можно было выделить два состояния, в котором, в реальном времени находится компьютерная система:
Важная идея! Так как вычисления производятся быстрее, чем непосредственный ввод-вывод данных, разработчикам пришла идея о том, что к ресурсам можно допускать не одного пользователя (процесс), а множество, предоставляя им способ независимо друг от друга загружать (ввод) и получать (вывод) данные через отдельные терминалы, чтобы более эффективно использовать ресурсы компьютера и вычислительные модули не простаивали в ожидании ввода/вывода.
Далее, термины: процесс, приложение идут как синонимы термину пользователь ресурсов.
Зачем нужна Операционная Система?¶
Существует три ключевых элемента операционной системы:
Фунции ОС¶
Основные абстракции ОС¶
Положение ОС в многоуровневой иерархии организации компьютера¶
Современный компьютер можно представить в виде иерархии уровней (от двух и более), где на каждом уровне выделяются свои абстракции и набор возможных функций.
Рис. 2. Основные уровни устройства ПК
Операционная система является одним из таких уровней и представляет собой интерфейс («прослойку») между пользователем ресурсов компьютера и самими ресурсами, управляющий взаимодействиями как между пользователь-ресурс, так и пользователь-пользователь, устройство-устройство.
В целом, общей схемой это можно отобразить так:
Рис. 3. Место ОС в компьютерной системе
Интерфейс — набор правил и средств взаимодействия двух систем. Иными словами способ взаимодействия.
Kernel space — адресное пространство ядра ОС, в котором процессы имеют привилегированный доступ к ресурсам компьютера и другим процессам.
User space — адресное пространство, отведённое для пользовательских процессов (приложений), то есть не имеющих привилегированный доступ к ресурсам.
Как операционная система загружается в компьютер?¶
Процесс загрузки операционной системы и вообще компьютера имеет несколько этапов, основные из которых:
Что делает ядро ОС?¶
Ядро ОС – центральная часть операционной системы. По сути, это и есть ОС.
Это реакционный механизм, то есть его работа заключается исключительно в реакции на какие-либо события для их последующей обработки.
Процессорное время измеряется в тиках или секундах. Часто бывает полезно измерение процессорного времени в процентах от мощности процессора, которое называется загрузкой процессора.
Прерывания¶
Эта часть больше относится непосредственно к аппаратной части, но этот механизм стоит освятить, так как именно это основной аппаратный механизм реализации ОС.
Прерывание – сигнал остановки последовательного выполнения программы, для обработки запроса или реакции на событие.
Чтобы получить код обработки прерывания, в памяти расположена специальная таблица обработчиков прерываний, в которой для каждого типа прерывания содержится указатель на тот участок памяти, где расположен соответствующий код обработки данного прерывания.
Инициализация данной таблицы первично осуществялется BIOS’ом в соответствии с архитектурой процессора. После, её инициализирует операционная система для дополнения этой таблицы какими-либо своими прерываниями.
Как приложения взаимодействуют с ОС?¶
Взаимодействие процессов с ОС осуществляется с помощью системных вызовов.
Механизм системных вызовов — это интерфейс, который предоставляет ядро ОС (kernel space) пользовательским процессам (user space).
Системный вызов – программное прерывание, обращение пользовательского процесса к ядру операционной системы для выполнения какой-либо операции.
Например, чтобы выполнить обычное действие, с точки зрения прикладного программиста, – вывод строки в консоль, необходимо загрузить исполнимый код в оперативную память и передать его процессору. С помощью системных вызовов, запускающий процесс (уже запущенный процесс, из которого вызывается новый процесс — одни процессы порождают другие) обращается к соответствующим сервисам ОС и передаёт им управление для выполнения этих функций.
То есть с помощью системных вызовов выполняются те рутинные действия, которые раньше осуществлялись вручную, — загрузка кода программы в память, передача его на исполнение процессору и прочее.
Схема организации ОС расширяется добавлением интерфейса для взаимодействия приложений с ядром ОС — механизмом системных вызовов:
Рис 4. Интерфейс системных вызовов
Как оборудование взаимодействует с ОС?¶
Оборудование взаимодействует с ОС с помощью аппаратных прерываний. И одна из функций ОС — абстрагирование оборудования.
Что это значит?¶
Рис 5. Интерфейс драйверов
Сервисы ОС¶
Функции ОС заключены в её сервисах (модулях). Реализация организации которых зависит от архитектуры ядра. Рассмотрим на примере монолитного ядра:
Рис 6. Основные компоненты ОС
Основные¶
Как говорилось в части о загрузке ОС, реализация планировщика осуществляется с помощью прерывания по таймеру — каждый квант времени происходит прерывание, которое передаёт управление ОС и она анализирует состояние всех процессов и что с каким процессом сделать: запустить, приостановить, завершить или изменить приоритет.
Дополнительные¶
Основные абстракции¶
Процесс¶
Компьютерная программа сама по себе — лишь пассивная последовательность инструкций. В то время как процесс — непосредственное выполнение этих инструкций.
В рамках ОС, это абстракция, которая предоставляет иллюзию персональной машины. То есть то, что данный исполнимый код полностью владеет всеми вычислительными ресурсами машины.
Состояние (контекст) процесса¶
Изнутри, процесс можно условно разделена на четыре части: Stack, Heap (кучу), Text (код) и данные (Data).
Рис 7. Сегменты памяти процесса
Состояния исполнения¶
Когда процесс выполняется, он проходит через разные состояния. Эти этапы могут различаться в разных операционных системах.
Общая картина выглядит так:
Рис 8. Состояния исполнения процесса
Информация о процессе¶
Рис 9. Process Control Block
Информацию о процессах в целом, ОС хранит в специальной таблице процессов.
Поток¶
Процесс может делиться на потоки (threads). Они обеспечивают параллелизм, то есть одновременное исполнение нескольких потоков инструкций, на уровне программы.
Поток выполнения (нить, thread) — последовательность исполнения инструкций. Ход исполнения программы**.
Процесс является контейнером ресурсов (адресное пространство, процессорное время и тд), а поток – последовательность инструкций, которые исполняются внутри этого контейнера.
Реализация потоков выполнения и процессов в разных операционных системах отличается друг от друга, но в большинстве случаев поток выполнения находится внутри процесса.
Рис 10. Многопоточный процесс
Потоки, существующие в рамках одного процесса, в его адресном пространстве, могут совместно использовать ресурсы процесса, например такие как память или файл. Тогда как процессы не разделяют этих ресурсов, так как каждый существует в своём адресном пространстве.
Также поток называют легковесный процесс.
Сегодня потоки широко применяются в работе серверов и многопроцессорных устройств с общей памятью.
Рассмотрим на примере утилиты htop.
Рис 11. Вывод утилиты мониторинга процессов htop
PID — Process ID; Уникальное число идентификатор для каждого процесса
TGID — Tread Group ID; Индентификатор группы потоков
Чем хороши потоки¶
Это очень широкое и многогранное понятие. Но если выделить наиболее общее, то получится, что файл — это универсальный системный интерфейс для обращения к тем или иным данным.
А файловая система — это система имён. То есть возможность выделять те или иные объекты данных и присваивать им имена, а также выделять иерархию.
По другому, файл и файловую систему можно также представить как структуру данных и связи между этими структурами.
Реализация многозадачности¶
Осуществляется при помощи следующих механизмов:
Переключение контекста¶
Контекст процесса — это состояние регистров, при его выполнении на процессоре.
Но происходит прерывание и «процесс 1» снимается с выполнения на процессоре, чтобы вместо него выполнялся «процесс 2». Следовательно, нужно заполнить регистры уже теми данными, что относятся к «процессу 2».
Однако, «процесс 1» ещё не выполнился полностью, и для дальшейнего исполнения ему нужны те данные, что хранились в регистрах при прерываний, то есть необходим его контекст. Операционная система должна обеспечивать подобные смены контекстов без потери данных.
В целом, смена контекста происходит между состояниями «Готов», «Ожидает» и «Исполняется».
Критические секции и блокировки¶
Одна из основных проблем с которыми может столкнуться такая система с вытесняющей многозадачностью — порядок доступа процессов к их общим ресурсам.
Возникают, так называемые, критические секции – участки исполняемого кода программы, в которых производится доступ к общему ресурсу (данным или устройству), который не должен быть одновременно использован более чем одним потоком выполнения.
Рис 12. Критические секции в потоках процесса
Может возникнуть такая ситуация, когда один поток, «потребитель», начинает использовать данные, которые должен подготовить другой поток, «производитель», но этот производитель ещё не закончил их подготовку и снялся с исполнения. Таким образом, «потребитель» использует некорректные данные, что с высокой долей вероятности приведёт к ошибке.
Данная проблема решается с помощью механизма блокировок – когда поток, получивший доступ к ресурсу, блокирует его, не давая другим потокам пользоваться этим захваченным ресурсом до разблокировки. То есть, если один поток хочет захватить (заблокировать) ресурс, а он уже занят другим потоком, то первый будет ожидать пока этот другой поток-владелец сам не освободит этот ресурс.
Все эти механизмы обеспечиваются операционной системой
Чтобы лучше это понять, можно обратиться к аналогии с туалетом — им может пользоваться только один человек. Если другой хочет им воспользоваться, то ему нужно дождаться когда его освободит уже им пользующийся.
Рис 13. Аналогия пробки на перекрёстке с Deadlock
Deadlock — ситуация, при которой несколько потоков находятся в состоянии ожидания ресурсов, занятых друг другом, и ни один из них не может продолжать свое выполнение.
Пример Deadlock’a на псевдокоде¶
Шаг | Поток 1 | Поток 2 |
---|---|---|
0 | Хочет захватить A и B, начинает с A | Хочет захватить A и B, начинает с B |
1 | lock(A) — Захват А | lock(B) — Захват B |
2 | lock(B) — Ожидает освобождения ресурса B | lock(A) — Ожидает освобождения ресурса A |
… | DEADLOCK –> Далее код не выполнится, так как произошел Deadlock в коде выше | |
n | unlock(A) — освобждение A | unlock(B) — освобждение B |
n+1 | unlock(B) — освобждение B | unlock(A) — освобждение A |
Схематично, Deadlock можно изобразить так:
Адреса и управление памятью¶
Тема адресации очень сложна, поэтому здесь я лишь проведу краткий обзор общей технологии.
Чтобы отобразить логический адрес в физический, существует специальный аппаратный механизм.
Начав с базовой архитектуры и небольшой истории развития компьютера, мы разобрали причины появления такого комплекса программ как операционная система и выделили главную её цель – обеспечение согласованного доступа к ресурсам компьютера множеству пользователям этих ресурсов, а также управление как самими ресурсами, так и пользователями.
Основные механизмы (сервисы)¶
Рассмотрели основные механизмы реализации этой цели: Scheduler (планировщик), Inter Process Communication (межпроцессное взаимодействие), Memory manager (управление памятью) и другие.
Абстракции¶
Ряд абстракций, которые вводит ОС: Process (процесс), Thread (поток исполнения), File (файл).
Заключение¶
Ух, и вот наконец-то я закончил писать этот материал. Надеюсь, вам было интересно и полезно.
Если вы хотите как-то дополнить материал, дать критику по его содержанию или структуре – пожалуйста, пишите в Issue данного репозитория поднимая ту или иную тему для обсуждения и доработки.
Также, вы можете сделать Fork данного репозитория и после внести свои дополнения с помощью Pull Request. Спасибо за внимание!