- •Операционные системы
- •Многоуровневая организация
- •Многоуровневая организация
- •Очем будет рассказано в курсе на лекциях?
- •Чем будем заниматься на
- •Какие инструменты понадобятся?
- •Что необходимо знать из курса
- •Что необходимо знать из курса
- •Что необходимо знать из курса
- •Источники информации
- •Андрей Викторович Столяров
- •Источники информации
Операционные системы
Лекция 0. Введение
Многоуровневая организация
архитектуры ЭВМ
Уровень языка прикладных программистов
Уровень ассемблера Уровень операционной системы
Уровень архитектуры набора команд Уровень микроархитектуры Цифровой логический уровень Физический уровень
Многоуровневая организация
архитектуры ЭВМ
Уровень языка прикладных программистов
Уровень ассемблера Уровень операционной системы
Уровень архитектуры набора команд Уровень микроархитектуры Цифровой логический уровень Физический уровень
Очем будет рассказано в курсе на лекциях?
Процессы и потоки
Управление памятью
Ввод/вывод
Сетевое взаимодействие
Процесс загрузки ОС
Виртуальные машины
Чем будем заниматься на
лабораторных занятиях?
Изучение языка ассемблера
Использование потоков в низкоуровневых ЯП
Использование потоков в высокоуровневых ЯП
Механизмы доступа к памяти
Программирование алгоритмов работы ОС
Разработка ОС
Какие инструменты понадобятся?
Виртуальная машина
Oracle VM VirtualBox
VMware Player
Компиляторы
C
NASM/GAS
Операционные системы
Debian 7
Ubuntu 12
Windows XP
Что необходимо знать из курса
Информатика?
Представление данных в двоичном коде
Побитовые операции
Что необходимо знать из курса
Аппаратные средства вычислительной техники?
Организация ЭВМ (принципы Фон-Неймана)
Устройство центрального процессора
Устройство памяти
Механизм исполнения программ на ЦП (тракт данных)
Методы повышения производительности (конвейеры, суперскалярная архитектура, предсказатель переходов и т.д.)
Что необходимо знать из курса
Языки программирования?
Язык программирования С
Любой высокоуровневый ЯП из списка:
Java
C#
Python
С++
Источники информации
Таненбаум Э., Бос Х. Современные операционные системы
Таненбаум Э., Остин Т. Архитектура компьютера
Лав Р. Ядро Linux. Описание процесса разработки
Кернаган Б., Ритчи Д. Язык программирования C