- Общее:
- SIMD: Обработка нескольких ячеек памяти в одной инструкции.
- Виртуальная память: позволяет выполнять программы, требующие большоий объем памяти, чем имеется. Обеспечивается за счет перемещения частей программы между основной памятью и вторичной.
- Программа взаимодействует с виртуальной памятью, которая для неё выглядит как непрерывное адресное пространство, вне зависимости наличия у компьютера такого объема памяти.
- ОС (+ блок управления памятью) занимается трансляцией виртуальной памяти в физическую и перемещением между основной памятью(RAM) и вторичной(HDD, SSD).
- Межпроцессное взаимодействие (IPC):
- Сигнал - являются программными прерываниями, которые посылаются процессу, когда случается некоторое событие.
- Популярные сигналы:
- Сокет - #TODO
- Семафор - #TODO
- Каналы (pipe) -
- Полудуплексные -
- Именованные -
- Очередь сообщений - #TODO
- Файл -
- Разделяемая память - самый быстрый способ межпроцессного взаимодействия. Общее адресное пространство, несколько процессов могут работать с ним одновременно, но в этом случае нужно самостоятельно обеспечивать средства синхронизации процессов, например семафорами.
- Сигнал - являются программными прерываниями, которые посылаются процессу, когда случается некоторое событие.
- POSIX:
- Кольца защиты:
- Ring 0-3 -
- kernel space vs user space - процессы, запущенные в пользовательском пространстве, имеют доступ только к ограниченной части памяти, тогда как ядро имеет доступ ко всей памяти. Процессы, запущенные в пространстве пользователя, также не имеют доступа к пространству ядра. Процессы пользовательского пространства могут получить доступ только к небольшой части ядра через интерфейс, предоставляемый ядром, - системные вызовы. Если процесс выполняет системный вызов, ядру отправляется программное прерывание, которое затем отправляет соответствующий обработчик прерывания и продолжает свою работу после завершения обработчика.
- user space - адресное пространство, где выполняются обычные пользовательские процессы (то есть все, кроме ядра). Роль ядра состоит в том, чтобы управлять приложениями, работающими в этом пространстве, взаимодействием друг с другом и самим компьютером.
- kernel space - это пространство памяти, где хранится и выполняется код ядра.
- UNIX:
- Как происходит выделение памяти:
- процессор с памятью как общаются и с кешем:
- Windows:
- Linux:
- Основные команды консоли:
- grep - поиск текста по шаблону
- sed
- awk
- kill
- ls - просмотр содержимого каталогов
- -l - показывает более подробную информацию
- -a - показывает скрытые файлы
- mkdir - создание новых каталогов
- -p - позволяет создать сразу всю структуру подкаталогов
- file - показывает тип файла
- cp - копирование файлов и каталогов
- -r - рекурсивное копирование
- -a - сохраняет атрибуты файлов, владельца и таймштамп
- mv - перемещение или переименование файлов и каталогов
- rm - удаление файлов и каталогов
- -r - рекурсивное удаление
- chmod - изменение прав доступа к файлу
- chown - изменение владельца файла
- -R - рекурсивное изменение
- more/less -
- head/tail - выводит несколько первых/последних строк из файла
- -n - количество строк
- -f - утилита будет постоянно выводить изменения на экран
- Общее устройство линукса:
- Pluggable Authentication Modules (PAM):
- Network Security Services (NSS):
- Апплеты:
- Основные команды консоли: