Опять экзаменационные вопросы
От: LaptevVV Россия  
Дата: 05.02.15 13:47
Оценка: 17 (4)
У нас стали читать большой курс по системному ПО+ОС.
Вот накропал вопросы и литературу — мож кому сгодится.

Системное ПО
1. Системное программное обеспечение. Классификация.
2. Виртуальные машины: архитектура, достоинства и недостатки.
3. Реализация интерпретатора виртуальной машины.
4. Язык ассемблера. Машинно-зависимые особенности.
5. Язык ассемблера. Машинно-независимые особенности.
6. Структуры данных транслятора. Организация таблицы имен.
7. Двоичное дерево поиска. Основные операции и их эффективность.
8. Красно-черные деревья.
9. Косые (скошенные) деревья.
10. Контейнеры STL.
11. B-деревья.
12. Хеширование. Хеш-функции и коллизии.
13. Хеширование. Метод цепочек.
14. Хеширование. Открытая адресация.
15. Схемы реализации транслятора с ассемблера.
16. Макроассемблер. Схемы реализации макроассемблера.
17. Макропроцессор. Виды макросов. Схемы реализации макропроцессора.
18. Мейкер. Назначение и алгоритм работы. Язык управления.
19. Линкер. Межмодульные связи и способы связывания программ.
20. Линкер. Формат объектного модуля и формат исполняемого модуля.
21. Линкер. Схема реализации линкера.
22. Библиотекарь. Назначение, функции и схема реализации.
23. Загрузчик и форматы загрузочных файлов.
24. Профайлер. Назначение и принципы реализации.
25. Отладчик. Назначение и функции.
26. Отладчик. Схемы реализации.
27. Система тестирования типа xUnit. Назначение и принципы реализации.
28. Системы проектирования ПО. Назначение и принципы реализации.
29. Системы управления версиями. Назначение и принципы реализации.
30. Технологии динамического распределения памяти.
31. Схемы организации сборки мусора.
32. Управление памятью в С++
33. Перегрузка new/delete
34. Последовательные контейнеры. Итератор для последовательного контейнера.
35. Интеллектуальные указатели.
36. Классификация языков программирования.
37. Архитектура компиляторов и интерпретаторов.
38. Формальные грамматики. Определение и классификация Хомского. Форма Бэкуса-Наура, модификации БНФ.
39. Синтаксические диаграммы Вирта. Схема перевода диаграмм в программу.
40. Регулярные грамматики и конечные автоматы. Детерминированные и недетерминиро-ванные КА.
41. Конечные автоматы. Алгоритм минимизации КА.
42. Грамматики. Алгоритм приведения грамматики.
43. Конечные автоматы. Алгоритм получения ДКА из НКА.
44. Конечный автомат для перевода целых констант.
45. Конечный автомат для перевода дробных констант.
46. Регулярные выражения.
47. Схема организации лексического анализатора.
48. Синтаксические анализаторы. Генераторы синтаксических анализаторов.
49. Нисходящие методы синтаксического анализа. Неформальное описание нисходящего разбора. Алгоритм нисходящего разбора. Временная и емкостная сложность нисходя-щего анализатора.
50. Восходящий разбор. Табличные методы синтаксического анализа.
51. Алгоритм Кока-Янгера-Касами. Алгоритм Эрли.
52. Алгоритм разбора для LL(1)-грамматик.
53. Метод рекурсивного спуска.
54. Синтаксический анализа LR(k)-грамматик.
55. Формы промежуточного представления программы.
56. Польская запись. Алгоритмы перевода и вычисления.
57. Паттерн Интерпретатор.
58. Методы генерации целевого кода (на примере Intel).
59. Методы оптимизации исходного кода. Оптимизация целевого кода.
60. JIT-компиляция.

ОС
1. Назначение ОС и определение ОС. Состав и структура ОС. Классификация ОС.
2. Архитектура ОС. Пользовательский и привилегированный режим.
3. Процессы. Состояния, переключение состояний. Контекст и дескриптор процесса. Операции с процессами.
4. Приоритеты и время. Виды многозадачности.
5. Дисциплины диспетчеризации процессов.
6. Процессы и треды в Windows.
7. Процессы и треды в UNIX.
8. Межпроцессное взаимодействие. Критическая секция.
9. Взаимное исключение с активным ожиданием: алгоритмы Деккера и Петерсона.
10. Средства синхронизации процессов.
11. Задача читатели-писатели для N процессов: средства синхронизации.
12. Средства передачи информации между процессами.
13. Средства синхронизации процессов в Windows.
14. Средства передачи сообщений в Windows.
15. Средства синхронизации процессов в UNIX.
16. Средства передачи сообщений в UNIX.
17. Средства организации многозадачности и нитей в микропроцессорах Intel.
18. Ресурсы и процессы. Граф распределения ресурсов.
19. Тупики. Условия возникновения. Стратегии борьбы с тупиками.
20. Предотвращение тупиков. Алгоритм Банкира.
21. Обнаружение тупиков. Алгоритм Медника. Выход из тупика.
22. Управление памятью в ОС: общие положения.
23. Простое и динамическое управление памятью без аппаратуры отображения.
24. Виртуальная память: страничная организация памяти.
25. Виртуальная память: стратегии выборки и замещения.
26. Алгоритмы управления страницами: FIFO и часовой.
27. Алгоритмы управления страницами: LRU и NRU.
28. Понятие рабочего набора и управление рабочим набором.
29. Страничное распределение памяти в микропроцессорах Intel.
30. Сегментное распределение памяти в микропроцессорах Intel.
31. Методы защиты памяти на примере микропроцессора Intel.
32. Управление памятью в Windows.
33. Прерывания: общие принципы.
34. Обработка прерываний в реальном режиме в микропроцессорах Intel.
35. Обработка прерываний в защищенном режиме в микропроцессорах Intel.
36. Физическая организация устройств ВВ. Виды устройств.
37. Драйверы устройств. Пример организации драйвера.
38. Файловая система. Типы файлов. Имена файлов. Атрибуты файлов. Каталоги.
39. Логическая организация обычных файлов.
40. Способы физической организации файлов.
41. Общая модель файловой системы и архитектура современных файловых систем.
42. Файловая система FAT16 и FAT32.
43. Файловые системы OS/2 и NTFS.
44. Традиционная файловая система s5
45. Виртуальная файловая система VFS . Принципы организации.
46. Файловая система Ext 2 fs.
47. Средства взаимодействия с пользователем.
48. Средства взаимодействия с программистом.
49. Особенности сетевых операционных систем.
50. Проблемы информационной безопасности.

ЭВМ
1. Концепция машины с хранимой в памяти программой.
2. Модели и оценки производительности.
3. Иерархия памяти. Регистры микропроцессора Intel
4. Представление целых чисел в ЭВМ (на примере Intel).
5. Представление дробных чисел в ЭВМ (на примере Intel).
6. Представление данных нечисловых типов (на примере Intel).
7. Структура команды в микропроцессорах Intel
8. Стандартный цикл команды.
9. Способы адресации аргументов (на примере Intel)
10. Вычисление физического адреса в реальном режиме (на примере Intel).
11. Общие принципы организации системы команд микропроцессора Intel.
12. Команды пересылки (на примере Intel)
13. Целая арифметика (на примере Intel)
14. Битовые операции (на примере Intel)
15. Команды сравнения и условные переходы (на примере Intel)
16. Команды управления потоком команд (на примере Intel)
17. Команды обработки цепочек (на примере Intel).
18. Защита памяти. Общие принципы.
19. Аппаратные средства сегментной организации памяти (на примере Intel).
20. Вычисление физического адреса при сегментной организации (на примере Intel).
21. Защита памяти при сегментной организации (на примере Intel).
22. Аппаратные средства страничной организации памяти (на примере Intel).
23. Вычисление физического адреса при страничной организации (на примере Intel).
24. Аппаратные средства организации мультизадачного режима (на примере Intel).
25. Реализация переключения задач (на примере Intel).
26. Аппаратные средства поддержки отладки программ (на примере Intel).
27. Сопроцессор. Набор регистров.
28. Сопроцессор. Типы данных.
29. Специальные значения и особые случаи.
30. Система команд сопроцессора.
31. Принципы организации ввода-вывода и команды ввода-вывода (на примере Intel).
32. Параллелизм на уровне команд. Конвейер
33. Суперскалярные процессоры
34. Параллелизм в микропроцессорах Intel
35. SIMD-регистры и SIMD-команды Intel
36. 64-битный режим Intel.
37. Параллельные вычисления
38. Вычислительные системы SIMD. Векторные
39. Вычислительные системы SIMD. Матричные
40. Вычислительные системы MIMD.

Литература
СПО.
Основная литература
1. Молчанов А.Ю. Системное программное обеспечение. 3-е изд. / А. Ю. Молчанов. – СПб.: Питер, 2010. – 400 с.
2. Молчанов А.Ю. Системное программное обеспечение. Лабораторный практикум. — СПб.: Питер, 2005. – 284 с.
3. Абельсон Х. Сассман Дж. Структура и интерпретация компьютерных программ. – М.: Добросвет, КДУ, 2010. – 608 с.
4. Орлов С.А. Теория и практика языков программирования. – СПб.: Питер, 2013. – 688 с.
5. Вирт Н. Построение компиляторов. – М.: ДМК Пресс, 2010. – 192 с.
6. Карпов Ю.Г. Теория и технология программирования. Основы построения транслято-ров. – СПб.: БХВ-Петербург, 2005. – 272 с.
7. Брайант Р., О’Халларон Д. Компьютерные системы: архитектура и программирование. – СПб.: БХВ-Петербург, 2005. – 1104с.: ил.
8. Роббинс Дж. Отладка приложений для Microsoft .NET. Мастер-класс. – М.: «Русская редакция»; СПб.: Питер, 2008. – 512 с.
9. Ошероув Р. Искусство автономного тестирования с примерами на C#. – М: ДМК Пресс, 2014. – 360 с.
10. Макаров А.В. Common Intermediate Language и системное программирование в Mi-crosoft .NET / А.В. Макаров, С.Ю. Скоробогатов, А.М. Чеповский. – М.: Интернет-Университет Информационных технологий; БИНОМ. Лаборатория знаний, 2007.–328 с.
11. Соколов А.П. Системы программирования: теория, методы, алгоритмы. – М.: Финансы и статистика, 2004. – 320 с.
12. Рендольф Н., Гарднер Д., Минутилло М., Андерсон К. Visual Studio 2010 для профес-сионалов. – М.: ООО «И.Д. Вильямс», 2011. – 1184 с.
13. Кнут Д. Искусство программирования, том 1. Основные алгоритмы. – М.: Издатель-ский дом «Вильямс», 2000. – 720 с.
14. Кнут Д. Искусство программирования, том 3. Сортировка и поиск. – М.: Издательский дом «Вильямс», 2000. – 832 с.

Дополнительная
15. Квиттнер П. Задачи, программы. Вычисления, результаты. – М.: Мир, 1980. – 424 с.
16. Опалева Э.А., Самойленко В.П. Языки программирования и методы трансляции. – СПб.: БХВ-Петербург, 2005. – 480 с.
17. Мозговой М.В. Классика программирования: алгоритмы, языки, автоматы, компиляторы: практический подход / М. В. Мозговой; [под ред. М.В.Финкова]. — СПб.: Наука и Техника, 2007.
18. Хантер Р. Основные концепции компиляторов. – М.: Издательский дом «Вильямс», 2002. – 256 с.
19. Роббинс Дж. Отладка Windows-приложений. – М.: ДМК Пресс, 2001. – 448 с.
20. Левинсон Дж. Тестирование ПО с помощью Visual Studio 2010. – М.: ЭКОМ Пабли-шерз, 2012. – 336 с.
21. Солдатов В.П. Управление программными проектами. – М.: ООО «Бином-Пресс», 2010. – 384 с.
22. Ахо А., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструменты. – М.: Издательский дом «Вильямс», 2001.
23. Баррон Д. Ассемблеры и загрузчики. — М.: Мир, 1974.
24. Бек Л. Введение в системное программирование. — М.: Мир, 1988.– 448 с.
25. Браун П. Макропроцессоры и мобильность программного обеспечения. — М.: Мир, 1977. – 254 с.
26. Кемпбел-Келли М. Введение в макросы. – М.: Сов. Радио, 1978. – 152 с.
27. Керниган Б., Плоджер Ф. Инструментальные средства программирования на языке Паскаль. – М.: Радио и связь, 1985. – 312 с.
28. Свердлов С.З. Языки программирования и методы трансляции. – СПб.: Питер, 2007. – 638 с.
29. Ахо А., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычислений. – М.: Издательский дом «Вильямс», 2002. – 528 с.
30. Пратт Т., Зелковиц М. Языки программирования: разработка и реализация. — СПб.: Питер, 2002. – 688 с.
31. Винниченко И.В. Автоматизация процессов тестирования. – СПб.: Питер, 2005.– 203 с.
32. Синицын С.В. Верификация программного обеспечения / С.В. Синицын, Н.Ю. Налютин. – М.: Интернет-Университет Информационных технологий; БИНОМ. Лаборатория знаний, 2008. – 368 с.
33. Котляров В.П. Основы тестирования программного обеспечения / В.П. Котляров, Т.В. Коликова. – М.: Интернет-Университет Информационных технологий; БИНОМ. Лаборатория знаний, 2006. – 285 с.
34. Уэзерелл Ч. Этюды для программистов. – М.: Мир, 1982. – 288 с.
35. Лебедев В.Н. Введение в системы программирования. – М.:«Статистика», 1975.– 312 с.
36. Эккель Б., Элиссон Ч. Философия С++. Практическое программирование. — СПб.: Питер, 2004.


ОС.
Основная
1. Таненбаум Э. Современные операционные системы. – СПб.: Питер, 2006. – 1040 с.
2. Таненбаум Э., Вудхалл А. Операционные системы: разработка и реализация. – СПб.: Питер, 2006. – 576 с.
3. Гордеев А.В. Операционные системы: учебник для студентов вузов /А.В. Гордеев.– 2-е изд. – СПб.: Питер, 2007. – 416 с.
4. Иртегов Д.В. Введение в операционные системы. – 2-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2012. – 1040 с.
5. Олифер В.Г. Сетевые операционные системы: учеб. пособие для вузов/ В.Г. Олифер, Н.А. Олифер. – СПб.: Питер, 2005.
6. Синицын С.В. Операционные системы / С.В. Синицын, А.В. Батаев, Н.Ю. Налютин. – М.: Издательский центр «Академия», 2012. – 304 с.
7. Коньков К.А. Устройство и функционирование ОС Windows. Практикум по курсу «Операционные системы» / К.А. Коньков. – М.: Интернет-Университет Информационных технологий; БИНОМ. Лаборатория знаний, 2012. – 207 с.
8. Щупак Ю.А. Win32 API. Эффективная разработка приложений. — СПб.: Питер, 2007.
9. Ганеев Р.М. Проектирование интерфейса пользователя средствами Win32 API: учебное пособие для вузов. – 2-е изд., испр. и доп. – М.: Горячая линия-Телеком, 2007.– 358 с.
10. Петцольд Ч. Программирование для Windows 95; в 2 томах. – СПб.: BHV – Санкт-Петербург, 1997. – т.1: 752 с., т2: 368 с.

Дополнительная
11. Соломон Д., Руссинович М. Внутренняя организация Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000. — СПб.: Питер, 2006.
12. Соломон Д., Руссинович М. Внутренняя организация Microsoft Windows. 6-е изд. –СПб.: Питер, 2013. – 800 с.
13. Соломон Д., Руссинович М., Ионеску А. Внутренняя организация Microsoft Windows. 6-е изд. Основные подсистемы. – СПб.: Питер, 2014. – 672 с.
14. Книттель Б. Windows 7. Скрипты, автоматизация и командная строка. – СПб.: Питер, 2012. – 784 c.
15. Борн Г. Руководство разработчика на Microsoft Windows Script Host 2.0. Мастер-класс / Пер. с англ. — СПб.: Питер; М.: Издательско-торговый дом «Русская редакция», 2001.
16. Юань Ф. Программирование графики в Windows. – СПб.: Питер, 2002. – 1072 с.
17. Рихтер Дж. Windows для профессионалов: создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows. – СПб.: Питер; М.: Издательско-торговый дом «Русская Редакция», 2001. – 752 с.
18. Рихтер Дж., Назар К. Windows via C/C++. Программирование на языке Visual C++. – М.: Издательство «Русская редакция»; СПб.: Питер, 2008. – 896 с.
19. Харт Дж. М. Системное программирование в среде Windows, 3-е издание. – М.: Изда-тельский дом «Вильямс», 2005. – 592 с.
20. Побегайло А.П. Системное программирование в Windows. – СПб.: БХВ-Петербург, 2006. – 1056 с.
21. Макаров А.В. Common Intermediate Language и системное программирование в Mi-crosoft .NET / А.В. Макаров, С.Ю. Скоробогатов, А.М. Чеповский. – М.: Интернет-Университет Информационных технологий; БИНОМ. Лаборатория знаний, 2007.–328 с.
22. Несвижский В. Программирование аппаратных средств в Windows. – 2 изд. , перераб. и доп. – СПб.: БХВ-Петербург, 2013. – 528.
23. Солдатов В.П. Программирование драйверов Windows. – Изд 3-е, перераб. и доп. – М.: ООО «Бином-Пресс», 2011. – 576 с.
24. Вахалия Ю. UNIX изнутри. – СПб.: Питер, 2003. – 844 с.
25. Робачевский А.М., Немнюгин С.А., Стесик О.Л. Операционная система Unix. – СПб: БХВ-Петербург, 2005.
26. Галатенко В.А. Программировангие в стандарте POSIX / В.А. Галатенко; под ред. В.Б. Бетелина. – М.: Интернет-Университет Информационных технологий; БИНОМ. Лабо-ратория знаний, 2004. – 560 с.
27. Стивенс Уильям. UNIX: взаимодействие процессов: пер. с англ. / Стивенс Уильям. — СПб.: Питер, 2003.
28. Блум Р., Бреснахэн К. Командная строка Linux и сценарии оболочки. Библия пользова-теля, 2 изд. – М.: ООО «И.Д. Вильямс», 2013. – 784 с.
29. Белов С.В. Изучение операционной системы Unix. Методические указания для выпол-нения лабораторных работ. — Астрахань, АГТУ, 2006.
30. Керниган Б., Пайк Р. UNIX. Программное окружение. — Пер. с англ. — СПб.: Символ-Плюс, 2003.

ЭВМ.
б) основная
1. Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем. – СПб.: Питер, 2011. – 688 с.
2. Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд. – СПб.: Питер, 2013.– 816 с.
3. Паттерсон Д., Хенесси Дж. Архитектура компьютера и проектирование компьютерных систем. 4 изд. – СПб.: Питер, 2012. – 784 с.
4. Гуров В.В. Основы теории и организации ЭВМ / В.В. Гуров, В.О. Чуканов. – М.: Ин-тернет-Университет Информационных технологий; БИНОМ. Лаборатория знаний, 2009. – 272 с.
5. Брей Бари. Микропроцессоры Intel 8086/8088, 80186/80188, 80286, 80386, 80486, Penti-um, Pentium Pro Processor, Pentium II, Pentium III, Pentium 4. Архитектура, программи-рование и интерфейсы / Брей Бари; пер. с англ. – 6-е изд. – СПб.: БХВ-Петербург, 2005. – 1328с.: ил.
6. Юров В.И. Assembler: учебник для вузов / В.И. Юров, 2 изд. — СПб: Изд-во «Питер», 2010.
7. Петцольд Ч. Код. – М.: Издательско-торговый дом «Русская Редакция», 2004. – 512 с.
8. Кнут Д.Э. Искусство программирования, том 1. Выпуск 1. MMIX – RISC-компьютер нового тысячелетия. – М.: ООО «И.Д. Вильямс», 2007. – 160 с.

б) дополнительная
9. Хамахер К. Организация ЭВМ. 5-е изд./ К. Хамахер, З. Вранешич, С. Заки. – СПб.: Пи-тер; Киев: Издательская группа BHV, 2003. – 848 с.
10. Аблязов Р.З. Программирование на ассемблере на платформе х86-64. – М.: ДМК Пресс, 2011. – 304 с.
11. Баула В.Г. Архитектура ЭВМ и операционные среды / В.Г. Баула, А.Н. Томилин, Д.Ю. Волканов. – М.: издательский центр «Академия», 2012. – 336 с.
12. Андреев А.М. Многопроцессорные вычислительные системы: теоретический анализ, математические модели и применение / А.М. Андреев, Г.П. Можаев, В.В. Сюзев. – М.: Изд-во МГТУ им. Баумана, 2011. – 332 с.
13. Сергеев С.Л. Архитектуры вычислительных систем. – СПб.: БХВ-Петербург, 2010. – 240 с.
14. Калачев А.В. Многоядерные процессоры / А.В. Калачев. – М.: Интернет-Университет Информационных технологий; БИНОМ. Лаборатория знаний, 2012. – 247 с.
15. Архитектуры и топология многопроцессорных вычислительных систем / А.В. Богда-нов, В.В. Корхов, В.В. Мареев, Е.Н. Станкова. – – М.: ИНТУИТ.РУ «Интернет-Университет Информационных технологий», 2004. – 176 с.
16. Несвижский В. Программирование аппаратных средств в Windows. – 2 изд. , перераб. и доп. – СПб.: БХВ-Петербург, 2013. – 528.
17. Хорошевский В.Г. Архитектура вычислительных систем. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2008. – 520 с.
18. Брайант Р., О'Халларон Д. Компьютерные системы: архитектура и программирование. – СПб.: БХВ-Петербург, 2005.
19. Трасковский А. BIOS. Экспресс-курс. – СПб.: БХВ-Петербург, 2005. – 288 с.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Опять экзаменационные вопросы
От: DOOM Россия  
Дата: 05.02.15 13:56
Оценка: +5
Здравствуйте, LaptevVV, Вы писали:

LVV>У нас стали читать большой курс по системному ПО+ОС.

LVV>Вот накропал вопросы и литературу — мож кому сгодится.

А вот зачем мешать все в кучу? Почему алгоритмы и структуры данных, а также особенности отдельно взятого языка (не особо-то связанные с системным программированием) не рассматриваются в отдельных курсах?
Re[2]: Опять экзаменационные вопросы
От: LaptevVV Россия  
Дата: 05.02.15 14:02
Оценка: +1
Здравствуйте, DOOM, Вы писали:

DOO>Здравствуйте, LaptevVV, Вы писали:


LVV>>У нас стали читать большой курс по системному ПО+ОС.

LVV>>Вот накропал вопросы и литературу — мож кому сгодится.

DOO>А вот зачем мешать все в кучу? Почему алгоритмы и структуры данных, а также особенности отдельно взятого языка (не особо-то связанные с системным программированием) не рассматриваются в отдельных курсах?

1. Без сведений об ЭВМ операционные системы рассказывать сложно. Поэтому программную архитектуру процессора и включил.
2. Особенности конкретного языка — для вспоминания и повторения.
Вопросы эти опять же системного характера: управления памятью, итераторы, интеллектуальные указатели — не прикладное программирование, а элементы системных библиотек = системное ПО.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Опять экзаменационные вопросы
От: DOOM Россия  
Дата: 05.02.15 14:37
Оценка: +2
Здравствуйте, LaptevVV, Вы писали:


LVV>Вопросы эти опять же системного характера: управления памятью, итераторы, интеллектуальные указатели — не прикладное программирование, а элементы системных библиотек = системное ПО.

Спорно. У нас в универе был замечательный курс ОС, где преподаватель осознанно ни разу не употребил ни одного конкретного названия ОС, даже BIOS он не называл — все рассказывал на уровне неких фундаментальных абстракций.
Более того, практика по этому курсу целиком и полностью выполнялась на vbscript.

P.S. Преподаватель в результате уехал работать в Intel
Re[4]: Опять экзаменационные вопросы
От: LaptevVV Россия  
Дата: 05.02.15 14:48
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>Спорно. У нас в универе был замечательный курс ОС, где преподаватель осознанно ни разу не употребил ни одного конкретного названия ОС, даже BIOS он не называл — все рассказывал на уровне неких фундаментальных абстракций.

Ну, у нас раньше тоже был отдельный семестровый курс. Но с введением новых стандартов пришлось перекраивать планы и вот сделали совместный.
Конкретные ОС надо приводить в качестве конкретных примеров — это для связи с реальностью.
DOO>Более того, практика по этому курсу целиком и полностью выполнялась на vbscript.
При обучении программиста практика по курсу ОС может быть только двух типов:
1. Более простая — изучение API. Желательно двух ОС — для сравнения.
2. Более сложная — написание своей модельной ОС (МИНИХ)
DOO>P.S. Преподаватель в результате уехал работать в Intel
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Опять экзаменационные вопросы
От: Michael7 Россия  
Дата: 06.02.15 00:14
Оценка: 11 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>У нас стали читать большой курс по системному ПО+ОС.

LVV>Вот накропал вопросы и литературу — мож кому сгодится.

Все комментировать не стану, но несколько мыслей вслух возникло.

LVV>6. Процессы и треды в Windows.

LVV>7. Процессы и треды в UNIX.
LVV>8. Межпроцессное взаимодействие. Критическая секция.
LVV>9. Взаимное исключение с активным ожиданием: алгоритмы Деккера и Петерсона.
LVV>10. Средства синхронизации процессов.
LVV>11. Задача читатели-писатели для N процессов: средства синхронизации.
LVV>12. Средства передачи информации между процессами.
LVV>13. Средства синхронизации процессов в Windows.
LVV>14. Средства передачи сообщений в Windows.
LVV>15. Средства синхронизации процессов в UNIX.
LVV>16. Средства передачи сообщений в UNIX.

Подразумевают довольно краткое изложение, но в таком обобщенном виде для каждого из вопросов, по-хорошему, нужна отдельная книга. Особенно процессы в Unix, что рассматривается под таким названием: Solaris, BSD, Linux?


LVV>42. Файловая система FAT16 и FAT32.

LVV>43. Файловые системы OS/2 и NTFS.
LVV>44. Традиционная файловая система s5

Ну вот зачем опять тащить то, что представляет исторический интерес и даже трудно где-то встретить вживую? Рассказывая о файловых системах можно упомянуть, что была такая FAT16, но отдельно ее рассматривать.
Да и FAT32 — с одной стороны вроде как простая система, с другой — устаревшая и из костылей. Чего только стоит реализация в ней поддержки длинных имен.

LVV>45. Виртуальная файловая система VFS . Принципы организации.

LVV>46. Файловая система Ext 2 fs.

С одной стороны базовая ОС для Linux. С другой — она уже очень редко в нем используется сейчас даже во встроенных устройствах.

Если уж рассматривать не самые популярные ФС, наверное есть смысл поговорить об ФС, которые содержат какую-то необычную изюминку и возможности. Например, ZFS для Solaris (динамический размер блоков, создание снимков и клонов файлов и др.), Reiser4 (транзакционная модель работы с файлами, использование B+ и танцующих деревьев для оптимизации размещения фрагментов файлов, встраиваемые плагины)


LVV>ЭВМ


LVV>36. 64-битный режим Intel.


А все-таки затронут и этот режим, но очень чую кратко По-хорошему, учебный курс по простому защищенному режиму Intel, наверное уже надо считать если не устаревшим, то стремительно устаревающим. Он все менее и менее используется на практике, да фактически уже встретить его можно в основном для встроенных устройств (тех, которые на x86), а long mode в amd64/x86-64, хотя и имеет немало общего с защищенным, но все-таки уже другой, местами так сильно отличается.

Впрочем, может быть есть смысл даже вообще сократить ассемблер x86 до минимума, зато больше уделить внимания виртуальным машинам для .NET, Java, JavaScript и других платформ и построению поверх них языков (сред) программирования. Но это сильно спорно.

Кстати, об Embedded, что-то эта тема такое ощущение, что совсем выпущена.
Еще выпущена тема аппаратной виртуализации. Не считая виртуальной 8086 в 386, SMM (впервые у Intel появился в ноутбучных i386SL, для десктопа с Pentium), ну и современные. Так же как целые среды, основанные на них (хостинг, OpenVZ и т.п.)
Отредактировано 06.02.2015 0:17 Michael7 . Предыдущая версия .
Re[2]: Опять экзаменационные вопросы
От: LaptevVV Россия  
Дата: 06.02.15 03:03
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Подразумевают довольно краткое изложение, но в таком обобщенном виде для каждого из вопросов, по-хорошему, нужна отдельная книга. Особенно процессы в Unix, что рассматривается под таким названием: Solaris, BSD, Linux?

Отдельные книги — есть. Стивенс, например.
В литературе — там указываются книжки.
[...]
Данные вопросы — троллинг 2 курса...

Выданы им ПЕРЕД началом самого курса.
Чтобы посмотрели и оценили объем и начали хоть что-то читать из литературы.
А не лазили в инете перед экзаменом.
Читать ВСЕ перечисленные файловые системы я и не собираюсь...
Но, с другой стороны — мы же постоянно изучаем "старье".
Матанализу вообще сотни лет...
В качестве истории и для сравнительного анализа — полезно знать, как это было устроено.
M>А все-таки затронут и этот режим, но очень чую кратко По-хорошему, учебный курс по простому защищенному режиму Intel, наверное уже надо считать если не устаревшим, то стремительно устаревающим. Он все менее и менее используется на практике, да фактически уже встретить его можно в основном для встроенных устройств (тех, которые на x86), а long mode в amd64/x86-64, хотя и имеет немало общего с защищенным, но все-таки уже другой, местами так сильно отличается.
Ну, на русском пока только одна книжка Аблязова есть — я ее включил.
За подробностями как раз придется лезть на сайт Интела.
Но 2 курс еще не читает на английском свободно.

M>Впрочем, может быть есть смысл даже вообще сократить ассемблер x86 до минимума, зато больше уделить внимания виртуальным машинам для .NET, Java, JavaScript и других платформ и построению поверх них языков (сред) программирования. Но это сильно спорно.

1. Виртуальные машины я им подробно вот даже конкретно сейчас рассказываю — практика у них.
И каждый пишет интерпретатор по своему варианту.
2. Про вм .NET книжка у меня в списке есть — интуитовская.
Еще забыл там прописать книгу про оптимизацию приложений на платформе NET. Допишу.
3. Про JVM есть в книжке Хантера про компиляторы.
Но за подробностями, естественно, придется слазить на сайт...
Буду спрашивать

M>Кстати, об Embedded, что-то эта тема такое ощущение, что совсем выпущена.

Про это у нас отдельный курс есть.
Посмотрю, чего там преподают.
M>Еще выпущена тема аппаратной виртуализации. Не считая виртуальной 8086 в 386, SMM (впервые у Intel появился в ноутбучных i386SL, для десктопа с Pentium), ну и современные. Так же как целые среды, основанные на них (хостинг, OpenVZ и т.п.)
Ну, да. Надо добавить.
Спасибо!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Опять экзаменационные вопросы
От: Pavel Dvorkin Россия  
Дата: 06.02.15 03:19
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

Практически все, что здесь перечисленно, знать надо. Ну разве что устройство ФС OS/2 можно исключить — кому она нужна, кто ее знает ?
Ну и немного есть ощущение, что составлялось это лет 10-15 назад. Когда реально был сопроцессор как отдельная микросхема. А потом добавили современные понятия. Стоило бы пересмотреть в соответствии с нынешним состоянием дел.

Но вот что касается организации — весьма странная смесь. Это надо отрефакторить и переразбить заново.

Сколько на это часов отводится ? По моему первому представлению, если читать обо все этом лекционный курс и не устраивать профанацию, не менее 200, если не все 300. Я читаю спецкурс, в программу которого входит лишь небольшая (процентов 30) выборка из этого, и на него у меня 72 часа.
With best regards
Pavel Dvorkin
Re[2]: Опять экзаменационные вопросы
От: LaptevVV Россия  
Дата: 06.02.15 03:24
Оценка:
PD>Практически все, что здесь перечисленно, знать надо. Ну разве что устройство ФС OS/2 можно исключить — кому она нужна, кто ее знает ?
PD>Сколько на это часов отводится ? По моему первому представлению, если читать обо все этом лекционный курс и не устраивать профанацию, не менее 200, если не все 300. Я читаю спецкурс, в программу которого входит лишь небольшая (процентов 30) выборка из этого, и на него у меня 72 часа.
Курс годовой.
Но я не собираюсь ВСЕ читать...
Кроме того, по понятиям ншего руководства, аудиторная нагрузка должна составлять не более 40% от общего объема (а планируют — 30%).
Так что остальное — самостоятельная работа студентов...
Кроме того, специально для 2 курса составил данные вопросы — чтобы поняли объем материала.
А то они пока ведут себя как школьники: как-нить выучим...
Получив данные вопросы и список литературы хотя бы некоторые (к сожалению, не все) уже задумались...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Опять экзаменационные вопросы
От: Vlad_SP  
Дата: 06.02.15 11:30
Оценка: +1
Здравствуйте, LaptevVV,

LVV>Кроме того, по понятиям ншего руководства, аудиторная нагрузка должна составлять не более 40% от общего объема (а планируют — 30%).


Эммм.... Вот у меня возник вопрос: аудиторная нагрузка (считаем 6 аудиторных часов) — 30% от общего объема. Значит, этот "общий объем" — ?
Далее, у меня возникает вопрос либо о вменяемости этого руководства, либо о качестве этой "нагрузки"...... Нет?
Re[4]: Опять экзаменационные вопросы
От: LaptevVV Россия  
Дата: 06.02.15 12:28
Оценка:
LVV>>Кроме того, по понятиям ншего руководства, аудиторная нагрузка должна составлять не более 40% от общего объема (а планируют — 30%).
V_S>Эммм.... Вот у меня возник вопрос: аудиторная нагрузка (считаем 6 аудиторных часов) — 30% от общего объема. Значит, этот "общий объем" — ?
V_S>Далее, у меня возникает вопрос либо о вменяемости этого руководства, либо о качестве этой "нагрузки"...... Нет?
Ты знаешь — у нас ТЕ ЖЕ вопросы...
Я тут думаю вообще свалить с этого дела, ибо получается не учеба, а профанация.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Опять экзаменационные вопросы
От: Isscander  
Дата: 06.02.15 16:07
Оценка:
Здравствуйте, LaptevVV, Вы писали:

PD>>Практически все, что здесь перечисленно, знать надо. Ну разве что устройство ФС OS/2 можно исключить — кому она нужна, кто ее знает ?

PD>>Сколько на это часов отводится ? По моему первому представлению, если читать обо все этом лекционный курс и не устраивать профанацию, не менее 200, если не все 300. Я читаю спецкурс, в программу которого входит лишь небольшая (процентов 30) выборка из этого, и на него у меня 72 часа.
LVV>Курс годовой.
LVV>Но я не собираюсь ВСЕ читать...
LVV>Кроме того, по понятиям ншего руководства, аудиторная нагрузка должна составлять не более 40% от общего объема (а планируют — 30%).
LVV>Так что остальное — самостоятельная работа студентов...
LVV>Кроме того, специально для 2 курса составил данные вопросы — чтобы поняли объем материала.
LVV>А то они пока ведут себя как школьники: как-нить выучим...
LVV>Получив данные вопросы и список литературы хотя бы некоторые (к сожалению, не все) уже задумались...


Вот в нашем американском вузе такой вот курс по ОС (там, правда, было гораздо больше упора именно на ОС — драйвера, вирт. память, ФС и т.п. + несколько практических заданий на которых надо что-то из этого доделывать/модифицировать) считался тяжелым. И вместе с ним не рекомендовалось брать больше еще одного курса.
Теперь вопрос: сколько вообще курсов в семестр у ваших студентов? 4-5 экзаменов + 4-5 зачетов, как раньше? В таком случае или придется материал рассказывать поверхностно или заранее планировать что студенты не успеют сделать большую часть лабораторок.

Кроме того подбор материала выглядит странно. Впечатление такое будто есть цель быстро-быстро пробежаться по современным технологиям. По-моему лучше уж сделать:
— разбить курс на три: 1) аппаратную часть+ассемблер 2) собственно ОС, 3) системное ПО (компиляторы, VMs etc)
— курс ОС более фундаментальным, глубоким. Сконцентрироваться на Linux (благо он опенсорсный и можно посмотреть исходники) и на его примере дать глубокие знания про организацию памяти, ФС, task scheduling, I/O, драйвера etc. Про остальные системы упомянуть — типа, есть такое, работает приблизительно так же.
Re[4]: Опять экзаменационные вопросы
От: LaptevVV Россия  
Дата: 06.02.15 16:23
Оценка:
LVV>>Получив данные вопросы и список литературы хотя бы некоторые (к сожалению, не все) уже задумались...
I>Теперь вопрос: сколько вообще курсов в семестр у ваших студентов? 4-5 экзаменов + 4-5 зачетов, как раньше? В таком случае или придется материал рассказывать поверхностно или заранее планировать что студенты не успеют сделать большую часть лабораторок.
Экзаменов обычно было 4. Вот конкретно в этом году из-за переделки планов в одном семестре будет 5.
До сих пор — не было
I>По-моему лучше уж сделать:
[...]
Ха! Пока не начались текущие реформы стандартов — так у нас и было...
С введением новых стандартов пришлось перекраивать все планы.
В том числе сливать дисциплины.
Еще раз — это не совсем наша прихоть, а результат работы нашего минобра...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Опять экзаменационные вопросы
От: landerhigh Пират  
Дата: 08.02.15 15:49
Оценка: +1 :)
Здравствуйте, LaptevVV, Вы писали:

LVV>У нас стали читать большой курс по системному ПО+ОС.

LVV>Вот накропал вопросы и литературу — мож кому сгодится.

Не могу сказать, что вопросы плохие. Скорее хорошие, особенно для экзамена. Разве что сгруппированы странно, почему виртуальные машины и ассемблер в одном разделе?

Но вот со своей колокольни не могу отделаться от мысли, что "когда сороконожку спросили, как ей удается передвигать сразу все свои сорок ног, она разучилась ходить"
www.blinnov.com
Re[2]: Опять экзаменационные вопросы
От: LaptevVV Россия  
Дата: 08.02.15 18:02
Оценка:
L>Не могу сказать, что вопросы плохие. Скорее хорошие, особенно для экзамена. Разве что сгруппированы странно, почему виртуальные машины и ассемблер в одном разделе?
Здесь виртуальная машина — это машина типа JVM, а не виртуальный режим процессора и не прога типа VirtualBox...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Опять экзаменационные вопросы
От: landerhigh Пират  
Дата: 08.02.15 21:53
Оценка:
Здравствуйте, LaptevVV, Вы писали:

L>>Не могу сказать, что вопросы плохие. Скорее хорошие, особенно для экзамена. Разве что сгруппированы странно, почему виртуальные машины и ассемблер в одном разделе?

LVV>Здесь виртуальная машина — это машина типа JVM, а не виртуальный режим процессора и не прога типа VirtualBox...

Спасибо, конечно, за пояснение, но вопрос от этого никуда не делся.
www.blinnov.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.