Системное программирование экзамен

Системное программирование | Вопросы с ответами

Системное программирование

Вопросы с ответами по дисциплине «Системное программирование».

1. Операционная система – это___________:
+ Комплекс программ
— Прикладная программа
+ Администратор
— Обеспечение
— Назначение
— Пользование
— Сервисная программа
+ Менеджер ресурсов компьютера

2. Операционные системы являются ресурсами ___________ компьютера:
+ управления
+ диспетчеризация
+ планирование
— администратор
— менеджер
— обеспечение
— назначение
— пользование

3. Операционные системы для программирования приложений Win32API:
+ Windows 98
— Linux
+ Windows 2000
— Unix
+ Windows ХР
— Windows СЕ
— Windows NT
— MS DOS

4. Категории объектов ОС Windows приложении:
— Windows 98
— User
+ Graphics Device Interface
+ Unix
— Windows Shell
+ Kernel
— Network Services
— Base Services

5. Ресурсы принадлежащие каждому потоку в ОС Windows:
— потоки интерфейса пользователя
— пользовательские потоки
+ код исполняемой функции
— потоки исполняемой функции
+ набор регистров процессора
— библиотека общих элементов
— интерфейс пользователя
+ стек для работы приложения

6. Действия менеджера потоков, во время переключения процессора на исполнение другого потока:
— обслуживает очередь запускаемого потока
+ сохранить контекст прерываемого потока
+ восстановить контекст запускаемого потока
+ передать управление запускаемому потоку
— управляет доступом для ОС
— выполняет функции ввода и вывода
— обеспечивает функции для вывода графики
— обеспечивает функции для взаймодействия

7. Параметры функции CreateThread:
— TerminateThread
+ lpThreadAttributes
— AttachThreadInput
— CreateProcess
— CreateThread
— ExitThread
+ dwStackSize
+ lpStrtAddress

8. Функции работы с процессами и потоками в Win32 API:
— TerminateThread
— lpThreadAttributes
+ AttachThreadInput
+ CreateProcess
— ExitThread
+ CreateThread
— dwStackSize
— lpStrtAddress

9. Функция Sleep()___________:
+ задерживает выполнения потока
— возвращает нулевое значение
+ удаляет поток из очереди
— выполняет выход из потока
— освобождает память
+ делает короткие паузы
— завершает выполнение функций
— освобождает ресурсы

10. Классификация программ в зависимости от количества определяемых ими параллельных потоков управления:
— дуплексный
— многозадачный
+ многопоточный
— системный
+ с параллельным потоком
— параллельный
+ однопоточный
— с прямым потоком

11. Операции над потоком связанные с операционной системой:
— Create
+ Run
— Exit
+ Interrupt
— Open
+ Block
— Read
— Write

12. Ресурсы каждого процесса ОС Windows:
+ виртуальное адресное пространство
— код исполняемой функции
+ маркер доступа
— набор регистров процессора
— стек для работы приложения
+ страницы в реальной памяти
— стек для работы ОС
— консольный ввод

13. Объектам синхронизации первого класса в Windows, которые служат только для решения задач синхронизации параллельных потоков:
+ мьютекс (mutex)
+ событие (event)
+ семафор (semaphore)
— ожидающий таймер
— работа (job)
— процесс (process)
— поток (thread)
— консольный ввод (console input).

14. К третьему классу синхронизации относятся объекты, которые переходят
в сигнальное состояние по завершении своей работы:
— мьютекс (mutex)
— событие (event)
+ работа (job)
+ процесс (process)
+ поток (thread)
— семафор (semaphore)
— ожидающий таймер
— консольный ввод (console input)

15. Системные объекты, созданные менеджером объектов в Win32 API:
— класс
— поток
+ события
+ семафор
— процесс
+ критический раздел
— приоритет потока
— контекст

16. Логические комбинации флагов параметра dwDesiredAccess:
+ EVENT_ALL_ACCESS
+ EVENT_MODIFY_STATE
— ACTIONS_AFTER_EVENT
+ SYNCHRONIZE
— SEMAPHORE_ALL_ACCESS
— SEMAPHORE _MODIFY_STATE
— ACTIONS_BEFORE_EVENT
— CREATE_NEW_CONSOLE

17. Логические комбинации флагов параметра dwDesiredAccess, определяющий доступ к семафору:
— EVENT_ALL_ACCESS
— EVENT_MODIFY_STATE
+ SYNCHRONIZE
+ SEMAPHORE_ALL_ACCESS
— ACTIONS_AFTER_EVENT
+ SEMAPHORE _MODIFY_STATE
— ACTIONS_BEFORE_EVENT
— CREATE_NEW_CONSOLE

18. Значение функции WaitForsingieObject, в случае успешного завершения:
— wait_object_р
— wait_forsingie
+ wait_object_o
— wait_object
+ wait_abandoned
+ wait_timeout
— wait_exit
— wait_finally

19. Прототип функции waitForMuitipieObject:
+ DWORD nCount
+ CONST HANDLE *lpHandles
+ BOOL bWaitAll
— DWORD dwReserved
— BOOL bResume
— LPOVERLAPPED lpOverLapped
— HANDLE hThread
— DWORD IDThread

20. Значения функции waitForMuitipieobjects:
+ ОТ WAIT_OBJECT_0 ДО (WAIT_OBJECT_0 + nCount — 1);
— ОТ WAIT_OBJECT_0 ДО (WAIT_OBJECT_0 );
— ОТ WAIT_OBJECT_0 ДО (WAIT_OBJECT_0 + nCount);
+ ОТ WAIT_ABANDONED_0 ДО (WAIT_ABANDONED_0 + nCount — 1);
— WAIT_COMPLETION
+ WAIT_TIMEOUT
— ОТ WAIT_ABANDONED_0 ДО (WAIT_ABANDONED_0 + nCount + 1);
— ОТ WAIT_ABANDONED_0 ДО (WAIT_ABANDONED_0);

21. Состояние блока адресов в адресном пространстве:
+ выделен
— защищен
+ зарезвирован
+ свободен
— смещен
— удален
— копирован
— прикреплен

22. Интерфейсы (API) для управления памятью:
— Base Services
— Common Control Library
+ Virtual Memory
— Network Services
+ Memory Mapped File
+ Heap Memory
— Windows Shell
— Windows System Information

23. Куча – это___________:
— объекты памяти
— страница памяти
+ динамическая область памяти
— указатель блока памяти
+ блок памяти
— указатель строки
+ мелкие фрагменты памяти
— указатель функции

24. Функции для управления памятью кучи:
+ HeapAlloc()
— HeapDestroy()
+ HeapReAlloc()
— HeapFree()
— HeapSize()
+ HeapFree()
— HeapCreate()
— MapViewOfFile()

25. Форматы реального и виртуального адресов:
+ номер реальной страницы
— номер фактической страницы
— номер оперативной памяти
+ номер виртуальной страницы
— смещение в адресной строке
+ смещение в реальной и виртуальной странице
— файлы страницы
— номер динамической страницы

26. Форматы реального и виртуального адресов:
— a
+ r
— b
+ v
— c
+ d
— e
— k

27. Описание линейного адреса процесса в ОС Windows:
+ 32 бит
— 16 бит
+ от 0х00000000 до 0хFFFFFFFF
— 2 Гбайт логической памяти
— 4 Гбайт виртуальной памяти
— 2 Гбайт виртуальной памяти
+ 4 Гбайт логической памяти
— от 0х00000000 до 0х0000FFFF

28. Состояние страницы процесса виртуальной памяти:
— (блокирован);
— (выделен)
+ free (свободный)
— (не выделен)
+ committed (распределены)
— (готов)
— (не готов)
+ reserved (зарезвированый)

29. Функция файловой системы:
— совместно использовать объект файла
+ открытие доступа к существующему файлу
— выделят мелкие фрагменты файла
+ закрытие доступа к существующему файлу
— закрепление виртуальной памяти
+ установка указателя файла на нужную запись
— физическое или форматирование низкого уровня
— разбиение диска на разделы

30. Структура и описание каталога:
+ древовидная
— кольцевая
+ корневой
— табличная
+ (обратная косая)
— прямая
— выпуклая
— плоская

31. Имена каталогов и файлов не должны содержат:
— +
+ <
— *
+ :
+ /
— ?
— !
— .

32. Параметр dwDesiredAccess задает способ доступа к файлу и принимает значения:
+ 0
— FILE_SHARE_WRITE
— FILE_SHARE_READ
+ GENERIC_READ
+ GENERIC_WRITE
— OPEN_EXISTING
— OPEN_ALWAYS
— TRUNCATE_EXISTING

33. Значения параметра dwCreationDisposition при открытии файла:
— 0
— FILE_SHARE_WRITE
— FILE_SHARE_READ
— GENERIC_READ
— GENERIC_WRITE
+ OPEN_EXISTING
+ OPEN_ALWAYS
+ TRUNCATE_EXISTING

34. Правильная запись имени файла:
+ “C:\demo_file.dat”
— “C:\demo_file.dоt”
— “C:\demofile.dat”
— “C\demo_file.dat”
+ “C:\new_file.dat”
— “C:\ new_filedat”
+ “C:\back_file.dat”
— “\back_file.dat”

35. Значение функций GetFileType:
— FILE_SHARE_WRITE
— FILE_SHARE_READ
— GENERIC_READ
+ FILE_TYPE_DISK
+ FILE_TYPE_CHAR
— TRUNCATE_EXISTING
+ FILE_TYPE_PIPE
— OPEN_ALWAYS

36. Значения параметра функции CopyFile:
+ lpExistingFileName
— lpThreadAttributes
— AttachThreadInput
+ lpNewFileName
— dwStackSize
— lpStrtAddress
+ bFailIfExists
— TerminateThread

37. Верхние уровни, составляющие основу структуры реестра Windows:
— HKEY_LOCAL
— HKEY_LOCAL_WORD
+ HKEY_LOCAL_MACHINE
+ HKEY_CURRENT_USER
+ HKEY_CLASSES_ROOT
— HKEY_CURRENT_ MACHINE
— HKEY_CLASSES_ MACHINE
— HKEY_CLASSES_USER

38. API функции, применяемые для выполнения операций с реестром:
— RegReserverd
+ RegCloseKey
— RegClass
— RegSubKeys
+ RegCreateKey
— RegOpen
— RegQery
+ RegDeleteKey

39. API функции применяемые в среде Windows NT:
— RegQueryValue()
+ RegSetKeySecurity()
— RegCloseKey()
— RegFlushKey()
+ RegGetKeySecurity()
— RegLoadKey()
+ параметры безопасности
— RegOpenKey()

40. HKey идентифицирует текущий раздел или предопределенные дескрипторы:
— HKEY_LOCAL_MACHINE
— HKEY_LOCAL_WORD
+ HKEY_CLASSES_ROOT
— HKEY_CURRENT_ MACHINE
— HKEY_CLASSES_USER
+ HKEY_CURRENT_USER
— HKEY_CLASSES_ MACHINE
+ HKEY_USERS

41. Параметры функции WriteFile:
— nNumberOfBytes
— lpThreadAttributes
+ hFile
+ lpBuffer
— dwStackSize
— lpNewFileName
— bFailIfExists
+ nNumberOfBytesToWrite

42. Системный вызов для файла:
+ chown()
+ lchown()
— chmod
— fchmod
— stat()
— lstat()
+ fchown()
— read()

43. Метаданные файла связанные со временем:
— st_blocks
— st_dev
+ st_ctime
— st_uid
+ st_atime
— st_gid
— st_size
+ st_mtime

44. Функции для перемещения файла:
— lpNewFileName
+ replaceFile
— readFile
+ copyFile
— hFile
+ moveFile
— write_File
— delete_File

45. Механизм отображения файлов в память:
+ отображение содержимого файла
— установка времени таймера
+ представление или вид файла
+ когерентность данных
— указывать на функцию завершения
— создать файловое пространство
— открыть файл приложения
— создать файл загрузки

46. Параметры функции CreateFileMapping (создание объекта отображающий файл в память):
— lpBuffer
— numberOfBytes
— completionKey
+ flProtect
— readFile
+ lpAttributes
— waitCommEvent
+ hFile

47. Значения параметра flProtect :
— PAGE_READ
+ PAGE_READONLY
— PAGE_WRITEONLY
+ PAGE_READWRITE
— PAGE_READCOPY
+ PAGE_WRITECOPY
— PAGE_WRITE
— PAGE_COPYONLY

48. Прототип функции MapViewOfFile:
+ HANDLE hFileMappingObject
+ DWORD dwFileOffsetHigh
+ DWORD dwFileOffsetLow
— DWORD dwReserved
— BOOL bResume
— LPOVERLAPPED lpOverLapped
— HANDLE hThread
— DWORD IDThread

49. Прототип функции MapViewOfFileЕх, отображающий файл в адресное пространства с некоторого заданного виртуального адреса:
+ HANDLE hFileMappingObject
— DWORD dwReserved
+ DWORD DesireAccess
+ LPVOID lpBaseAddress
— BOOL bResume
— LPOVERLAPPED lpOverLapped
— HANDLE hThread
— DWORD IDThread

50. Механизм отображения файлов в память:
— узнать какой поток ее вызывает
+ файл отображен несколькими процессами
— хранить указатели на захваченную память
— запускать приложение
+ когерентность отображений
+ обмен данными между процессами
— открыть файл приложения
— создать файл загрузки

51. Функции файла stdio.h языка программирования С, создающие стандартную библиотеку ввода-вывода:
— stdout— файл ввода
— stlib —файлы библиотеки
+ stdin — стандартный файл ввода
— tanh —математикалыќ шамаларды шыєаратын файл
+ stdout — стандартный файл вывода
— strcmp —функция сравнения
+ stderr —файл вывода сообщения об ошибке
— main— программаны орындауды бастайтын файл

52. Прототип функции DllMain:
+ HINSTANCE
+ DWORD
+ LPVOID
— HMODULE
— LPCTSTR
— HANDLE
— DWORD
— LPCSTR

53. Параметр fdwReason может иметь одно из следующих значений, которое
указывает на причину, по которой операционная система вызывает
функцию DllMain:
— dont_resolve_dll_references
— load_library_as_datafile
— load_with_altered_search_path
+ dll_process_attach
+ dll_thread_attach
+ dll_process_detach
— case dll_process_attach
— dwPrewTlsIndex= dwFirstTlsIndex

54. Прототип функции LoadLibraryEx, для загрузки динамически подключаемых библиотек:
+ LPCTSTR
+ HANDLE
+ DWORD
— HINSTANCE
— DWORD_В
— LPVOID
— HMODULE
— LPCSTR

55. Значения параметра dwFiags, задающий флаги управления загрузкой модуля:
+ dont_resolve_dll_references
+ load_library_as_datafile
+ load_with_altered_search_path
— dll_process_attach
— dll_thread_attach
— dll_process_detach
— case dll_process_attach
— dwPrewTlsIndex= dwFirstTlsIndex

56. Действия необходимые для статической загрузки DLL:
— создать файл
+ поместить библиотеку и файл в каталог
— хранить указатели на захваченную память
— запускать приложение
— узнать какой поток ее вызывает
+ ввести имя используемой библиотеки импорта
— сопоставить каждому потоку свой указатель
+ описать импортируемые из DLL имена в приложении

57. Задачи динамической локальной памяти потока:
— создать DLL
— поместить библиотеку в каталог
+ хранить указатели на захваченную память
— поместить файл импорта этой библиотеки в каталог
+ узнать какой поток ее вызывает
— ввести имя используемой библиотеки импорта
+ сопоставить каждому потоку свой указатель
— описать импортируемые из DLL имена в приложении

58. Порядок работы с локальной памятью потока:
+ распределение указателя
— сохранить указатель
— использовать указатель
+ работа с указателем
+ освобождение указателя
— завершение функции
— возвращает значение
— запись значения

59. Динамические подключаемые библиотеки предназначены___________:
+ для разработки функционально-замкнутых библиотек функций
+ для снижения затрат на разработку ПО
— для открытия файла, который будет отображаться в динамической памяти
— для загрузки в адресное пространство процесса
— для завершения нового потока в процессе
— для сохранения файла и каталога
+ для уменьшения физической памяти
— для перехода в адресную строку

60. Функция для работы локальной памятью потока:
+ TlsAlloc
— LpBuffer
+ TlsSetValue
+ TlsGetValue
— CompletionKey
— ReadFile
— NumberOfBytes
— lpAttributes

61. Параметры функции CreateFileMapping (создание объекта отображающий файл в память):
— lpBuffer
— numberOfBytes
— completionKey
+ flProtect
— readFile
+ lpAttributes
— waitCommEvent
+ hFile

62. Распределение локальной памяти потока в DLL:
+ case DLL_PROCESS_ATTACH
— dwPrewTlsIndex= dwFirstTlsIndex
— dwPrewTlsIndex= dwNextTlsIndex
+ dwlsIndex=TlsAlloc(); If (dwlsIndex ==-1)
+ break;
— return 0;
— dDll=LoadLibrary;
— returnGetLastError();

63. Статическая локальная память:
— оповещает параллельные потоки
+ использует спецификатор памяти declspec(thread)
+ определяет локальные переменные
— устанавливает соединения между потоками данных
— принимает записи
— содержит очередь пакетов
— обслуживает очередь пакетов
+ создает отдельный переменной

64. Значения аргумента dwCreationDisposition для создания файла:
— CREATE_FILE
— CREATE_THREAD
+ CREATE_NEW
— OPEN
+ CREATE_ALWAYS
— CREATE
+ OPEN_ALWAYS
— CREATE_NEWFILE

65. Параметры функции для асинхронной записи данных в файл WriteFileEx:
+ lpBuffer
— numberOfBytes
— completionKey
— devceIoControl
— readFile
+ lpOverLapped
— waitCommEvent
+ hFile

66. Прототип функции UnlockFileEx для асинхронной отмены блокировки области файла:
— LONG lPeriod
+ HANDLE hFile
— HANDLE hTimer
+ DWORD dwReserved
— BOOL bResume
+ LPOVERLAPPED lpOverLapped
— HANDLE hThread
— DWORD IDThread

67. Функции, инициирующие посылку пакетов в порт завершения ввода-вывода:
— CreateIoCompletionPort
— NumberOfBytes
— CompletionKey
+ DevceIoControl
+ ReadFile
— NumberOfConcurrentThreads
+ WaitCommEvent
— hFile

68. Функции, инициирующие посылку пакетов в порт завершения ввода-вывода:
— CreateIoCompletionPort
— NumberOfBytes
— CompletionKey
+ ConnectNamedPipe
+ LockFileEx
— NumberOfConcurrentThreads
+ TransactNamedFile
— hFile

69. Порт завершения ввода-вывода:
+ объект синхронизации
— динамическая библиотека
+ оповещает параллельные потоки
— устанавливает соединения
— принимает записи
+ содержит очередь пакетов
— обслуживает очередь пакетов
— создает параллельные потоки

70. Параметры процедуры ввода-вывода:
— lpBuffer
+ dwErrorCode
— lpCompletionRoutine
— dwError
+ dwNumberOfBytesTrnsferred
— dwRet
— hFile
+ lpOverLapped

71. Механизм структурной обработки исключений:
+ не допускается использование оператора goto
— допускается использование оператора goto
+ допускается использование функций GetExeptionCode
— допускается использование оператора throw
— не допускается использование функций GetExeptionCode
— не допускается использование оператора throw
+ допускается использование функций GetExeptionInformation
— не допускается использование функций GetExeptionInformation

72. Заголовок файла об обработке исключений:
— string.h
+ windows.h
— stdio.h
— lm.h
— sddl.h
+ iostream.h
+ float.h
— math.h

73. Прототип обработки исключений с плавающей точкой:
— unsigned typedef void
+ unsigned int _controlfp()
— _se_translator_function
— void se_trans_func
+ unsigned int new
— unsigned int
+ unsigned int mask
— unsigned code

74. Блок исключений:
+ _try
— _search
+ _except
— _controlfp
+ _finally
— _exception
— _handle
— _function

75. Блок исключений:
+ _try
— _search
+ _except
— _controlfp
+ _leave
— _exception
— _handle
— _function

76. Параметры функции RaiseException:
+ lpNewFileName
— dwExceptionFlag
— setHandleInformation
+ nNumberOfArguments
+ lpArguments
— hReadPipe
— write_File
— delete_File

77. Значения параметра new для управления исключениями:
+ _EM_DENORMAL
— _EM_FUNCTION
— _EM_TRANSLATION
+ _EM_OVERFLOW
— _EM_BYZERO
— _EM_FLOAT
— _EM_WORD
+ _EM_ZERODIVIDE

78. Функция-транслятор___________:
+ преобразовывает исключения
— реализует исключения
+ использует инструкцию throw языка С++
— возвращает начальные значения
— завершает выполнение блока
— начинает раскрутку стека
+ описывается в заголовочном файле eh.h
— использует функцию _leave

79. Элементы безопасности объектов Win32:
— создает маркер доступа
+ поддержка защищенных каналов
— разрешает доступ к каналу
— создает аудит доступа к объекту
+ поддержка интеллектуальных карточек
— изменяет информацию безопасности
+ встроенная поддержка функций АРI
— следит за изменениями потока

80. Функции интеллектуальных карточек:
— поддержка защищенных каналов
+ аутентификация пользователей
+ проведение финансовых операции
— разрешает доступ к каналу
— создает аудит доступа к объекту
— изменяет информацию безопасности
— встроенная поддержка функций АРI
+ хранение информации о человеке

81. Режимы доступа к объектам:
+ R, W;
— RA
+ WA;
— СA
— WR
+ WC;
— RW
— CW

82. Модели управления в дискреционной модели безопасности:
+ иерархическое управление
— дистанционное управление
— сетевое управление
+ либеральное управление
— доступное управление
+ централизованное управление
— серверное управление
— древовидное управление

83. Основные функции списка управления доступами:
+ создается владельцем объекта
— создается сервером
— запрещает доступ к объекту
— создается операционной системой
+ открывает требуемый доступ к объекту
+ хранится в виде списка
— ограничивает код доступа
— используется сервером

84. Идентификатор безопасности (Security Identifier):
+ создается операционной системой
— создается сервером
— хранится в оперативной памяти
+ хранится в базе данных SAM
— хранится в логической памяти
— представляет учетную запись
+ бинарное представление учетной записи
— создает учетную запись

85. Символы обозначающие идентификатор безопасности:
— A
+ S
+ R
+ I
— T
— F
— L
— M

86. Дескрипторы безопасности, известные на платформах Windows:
— R -1-5-1
+ S-1-5-1
— R -1-5-5
— S -1-5-17
+ S -1-5-10
— I-1-5-16
+ S -1-5-18
— S-1-5-20

87. Главное отличие привилегий от прав доступа ___________:
— права доступа ограничивает доступ субъекта к объектам
— никаких отличии привилегий от прав доступа
+ правами доступа к объекту управляет владелец этого объекта
+ привилегии касаются субъектов, а не охраняемых объектов системы
— привилегии назначаются по умолчанию в операционных системах Windows
— привилегии касаются охраняемых объектов системы
+ привилегии назначаются субъектам администратором системы
— права доступа выполнить некоторое действие по отношению объектам системы

88. Информация сохраненная в маркере доступа:
— SID учетной записи пользователя
+ идентификатор безопасности текущей сессии (logon session)
— каждое сообщение содержит информацию о субъекте
— статистическая информация о маркере доступа
+ содержит информацию о субъекте, который выполнил действие
— хранятся учетные записи пользователей и групп
+ данные, определяющие политику безопасности на локальной машине
— базу данных учетных записей

89. Уровни безопасности потока-сервера для обработки запросов потока-клиента:
+ Security Anonymous level
+ Security Identification level
+ Security Impersonation level
— Security Delegation
— Security Reference Monitor
— Security Account Manager
— Security Accounts Database
— Security_attributes

90. Уровни безопасности потока-сервера для обработки запросов потока-клиента:
+ Object Open
— ObjectType
+ Object Deleted
— Object_inherit
— pObjectName
+ Object Open for Delete
— se_file_object
— ObjectSecurity

91. Виды связей между процессами-отправителями и адресатами:
— между собой связаны три процесса
+ между собой связаны только два процесса
— между собой связаны четыре процесса
— один процесс связан с N-1 процессами
— один процесс связан с N+1 процессами
+ один процесс связан с N процессами
— нет связи между процессами
+ каждый из N процессов связан с одним процессом

92. Топология связей между процессами:
— между собой связаны три процесса
— между собой связаны четыре процесса
+ между собой связаны только два процесса
— один процесс связан с N-1 процессами
+ один процесс связан с N процессами
— один процесс связан с N+1 процессами
— нет связи между процессами
+ каждый из N процессов связан с одним процессом

93. Тип вместимости связи между процессами (буферизации):
— ограниченная связь
— открытый тип вместимости связи
+ нулевая вместимость связи
— закрытая вместимость связи
+ ограниченная вместимость связи
+ неограниченная вместимость связи
— каждый из процессов связан с одним процессом
— первичный вместимость связи

94. Размер значения именованного канала, посылающий сообщение к серверу:
+ нулевая вместимость связи
— каждый из процессов связан с одним процессом
— первичный вместимость связи
— закрытая вместимость связи
— параллельная связь вместимости
+ неограниченная вместимость связи
— каждый из N процессов связан с одним процессом
+ ограниченная вместимость связи

95. Анонимные каналы:
+ не имеют имени
— имеют названия
+ полудуплексные
— дуплексные
+ передают данные потоком
— не передает данные
— устанавливают связи
— доступны

96. Функции соединения клиентов анонимными каналами:
— CreatePipe
+ DuplicateHandle
— WriteFile
— hWritePipe
— hReadPipe
+ SetHandleInformation
— ReadFile
+ CreateProcess

97. Способы передачи наследуемого дескриптора процессу-клиенту анонимного канала:
+ через командную строку
— синхронный обмен
+ через файл
— топологическая связь
— основе wm_copydata
— с помощью сервер
— через канал
+ посредством сообщения wm_copydata

98. Функции описанные в файле stdio.h, обеспечивают ввод-вывод в стандартные файлы:
— printf
+ stdin
+ stdout
— scanf
— stdopen
+ stderr
— stdcreate
— cin

99. Прототип именованных каналов:
— stdin
+ lpName
+ dwOpenMode
— scanf
— stdout
+ dwPipeMode
— stdcreate
— cin

100. Флаги, для определения направления передачи данных:
+ pipe_access_duplex
— pipe_name
— nOutBufferSize
— nDefaultTimeOut
+ pipe_access_inbound
+ pipe_access_outbound
— dwOpenMode
— dwPipeMode

Комментарии:

Добавить комментарий

Областное государственное бюджетное профессиональное образовательное учреждение

«Смоленская областная технологическая академия»

КОНТРОЛЬНО-ОЦЕНОЧНЫЕ СРЕДСТВА

ПМ.01 «РАЗРАБОТКА ПРОГРАММНЫХ МОДУЛЕЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ КОМПЬЮТЕРНЫХ СИСТЕМ»

программ подготовки специалистов среднего звена

09.02.03 Программирование в компьютерных системах

(базовый уровень)

Смоленск

 2019

РАССМОТРЕН и ОДОБРЕН

на заседании цикловой методической комиссии

электрорадиотехнических дисциплин

Протокол №______ от «        ___»__________20_г.

Председатель ЦМК _________________/В.С. Куликов/

УТВЕРЖДАЮ

Заместитель директора по учебной работе

___________________/________________/

«___» __________ 20__г .

Разработчик: Куликов Виталий Сергеевич, преподаватель

СОДЕРЖАНИЕ

1 Паспорт комплекса оценочных средств……………………………………….

4

2 Спецификация оценочных средств…………………………………………….

11

3 Комплекты вариантов оценочных средств…………………………………….

20

ПАСПОРТ

комплекса оценочных средств

по ПМ.01 «РАЗРАБОТКА ПРОГРАММНЫХ МОДУЛЕЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ КОМПЬЮТЕРНЫХ СИСТЕМ»

программы подготовки специалистов среднего звена

по специальности 09.02.03 Программирование в компьютерных системах

СОДЕРЖАНИЕ

1 Назначение комплекса оценочных средств (КОС)……………………………

6

2 Перечень основных показателей оценки результатов, элементов знаний и умений, подлежащих текущему контролю и промежуточной аттестации……

6

3 Распределение основных показателей оценки результатов по видам аттестации…………………………………………………………………………

8

4 Содержательно-компетентностные матрицы оценочных средств…………..

9

5 Структура банка КОС для текущей контроля и промежуточной аттестации………………………………………………………………………….

10

1 Назначение комплекса оценочных средств (КОС)

Комплекс оценочных средств (КОС) предназначен для контроля и оценки образовательных достижений обучающихся при освоении программы МДК 01.01 «Системное программирование»

КОС включает контрольные материалы для проведения текущего контроля и промежуточной аттестации в форме экзамена.

КОС разработаны на основании положений:

ФГОС СПО по специальности 09.02.03 Программирование в компьютерных системах

программ подготовки специалистов среднего звена  по специальности 

09.02.03 Программирование в компьютерных системах

рабочей программы МДК 01.01 Системное программирование

2 Перечень основных показателей оценки результатов, элементов знаний и умений, подлежащих текущему контролю и промежуточной аттестации

Результаты

(освоенные профессиональные компетенции)

Основные показатели оценки результата

Формы и методы контроля и оценки

ПК1.1

Выполнять разработку спецификаций отдельных компонент.

Разрабатывают спецификаций компонентов в соответствии с правилами создания спецификации.

Экзамен (квалификационный).

Дифференцированный зачет.  Оценка защиты курсового проекта.

Наблюдение за действиями на практике.

Оценка защиты лабораторных работ.

Тестовый контроль.

Разрабатывают код программного продукта на основе готовой спецификации на уровне модуля в соответствии со справочной системой программной среды разработки.

Применяют инструментальные средства автоматизации оформления документации в соответствии с правилами справочной системы инструментальных средств разработки.

Тестируют  программный продукт на уровне модулей в соответствии с методикой тестирования

Составляют техническое задание для разрабатываемого программного продукта в соответствии с требованиями ГОСТ 19.201-78.

ПК 1.2 Осуществлять разработку кода программного продукта на основе спецификаций на уровне модуля.

Выбирают  и применяют утилиты автоматизированного проектирования, отладки и тестирования программных модулей в соответствии с правилами справочной системы среды программирования.

Экзамен (квалификационный).

Дифференцированный зачет.  Оценка защиты курсового проекта.

Наблюдение за действиями на практике.

Оценка защиты лабораторных работ.

Тестовый контроль.

Разрабатывают код программного модуля на современных языках программирования в соответствии с правилами  справочной системы используемой среды программирования.

Разрабатывают программу по разработанному алгоритму как отдельного модуля в соответствии с правилами  справочной системы используемой среды программирования.

Модифицируют программные продукты в инструментальной среде в соответствии с правилами  справочной системы среды программирования.

Выбирают инструментальные средства на этапе отладки программного продуктов соответствии с методикой отладки.

ПК 1.3

Выполнять отладку программных модулей с использованием специализированных программных средств.

Выполняют отладку программного продукта в соответствии с методикой отладки.

Экзамен (квалификационный).

Дифференцированный зачет.  Оценка защиты курсового проекта.

Наблюдение за действиями на практике.

Оценка защиты лабораторных работ.

Выполняют отладку программ на уровне модулей в соответствии с методикой отладки.

Используют специализированный отладчик в соответствии с правилами  справочной системы среды программирования.

Применяют приемы программирования, встраивающие отладку в программный код в соответствии с правилами  справочной системы среды программирования..

Выбирают принципы отладки и тестирования программных продуктов в соответствии с правилами  справочной системы среды программирования.

ПК 1.4

Выполнять тестирование программных модулей.

Выполняют отладку и тестирование программы на уровне модуля в соответствии с правилами  справочной системы среды программирования.

Экзамен (квалификационный).

Дифференцированный зачет.  Оценка защиты курсового проекта.

Наблюдение за действиями на практике.

Оценка защиты лабораторных работ.

Тестовый контроль.

Проводят тестирование программного модуля по определенному сценарию в соответствии с правилами  справочной системы среды программирования.

Обосновывать внесение изменений в программу для защиты информации в соответствии с методикой защиты.

Используют аппаратные средства защиты в соответствии с правилами их применения.

Используют  программные средства защиты в соответствии с правилами их применения.

Обнаруживают и локализуют  ошибки программного продукта в соответствии с правилами справочной системы среды программирования.

ПК 1.5

Осуществлять оптимизацию программного кода модуля.

Оптимизируют программный код модуля в соответствии с правилами справочной системы среды программирования.

Экзамен (квалификационный).

Дифференцированный зачет.  Оценка защиты курсового проекта.

Наблюдение за действиями на практике.

Оценка защиты лабораторных работ.

Тестовый контроль.

Выбирают методы и средства разработки проектной и технической документации с использованием графических языков спецификации в соответствии с правилами справочной системы графических языков.

ПК 1.6

Разрабатывать компоненты проектной и технической документации с использованием графических языков спецификации.

Оформляют документацию на программные средства в соответствии с требованиями единой системы программной документации.

Экзамен (квалификационный).

Оценка защиты курсового проекта.

Наблюдение за действиями на практике.

Оценка защиты лабораторных работ.

Используют инструментальные средства автоматизации оформления документации в соответствии с правилами справочной системы инструментальных средств разработки.

Разрабатывают программную и сопровождаемую документацию в соответствии с требованиями единой системы программной документации.

3 Распределение основных показателей оценки результатов по видам аттестации

Код и наименование элемента умений или знаний[1]

Виды аттестации

Текущий контроль

Промежуточная аттестация

У1 Осуществлять разработку кода программного модуля на современных языках программирования

+

У2 Создавать программу по разработанному алгоритму как отдельный модуль

+

У3 Выполнять отладку и тестирование программы на уровне модуля

+

У4 Оформлять документацию на программные средства

+

+

У5 Использовать инструментальные средства для автоматизации оформления документации

+

+

З1 Основные этапы разработки программного обеспечения

+

+

З2 Основные принципы технологии структурного и объектно-ориентированного программирования

+

+

З3 Основные принципы отладки и тестирования программных продуктов

+

+

З4 Методы и средства разработки технической документации

+

+

4 Содержательно-компетентностная матрица оценочных средств

Содержание учебного материала по программе УД

Текущий контроль

Промежуточная аттестация

Проверяемые У, З, ОК, ПК

Код оценочного средства

Проверяемые У, З, ОК

Код оценочного средства

Системное программирование

У 2,4,5,

З 1,2,3,4

ОК1-10

ПК1.1-1.6

9

Раздел 1

Современные системы программирования

У1-5

З 1-4

ОК1-10

ПК 1.1-1.2

10

Раздел 2 

Машинно-ориентированная система программирования Ассемблер. Использование транслятора Turbo Assembler при разработке программ

У1-5

З 1-4

ОК1-10

ПК 1.3-1.4

10

Раздел 3 

Разработка, отладка и тестирование программ для многозадачных операционных системы (ОС) на примере OC Windows

У1-5

З 1-4

ОК1-10

ПК 1.5-1.6

10

5 Структура банка КОС для текущего контроля и промежуточной аттестации

Код оценочного средства

Тип оценочного средства

Количество оценочных средств

Ориентировочное время выполнения одного оценочного средства, час

Общее время выполнения, час

10

Практическое задание

20

1 ч

20 ч

Промежуточная аттестация

9

Экзаменационное задание

25

0,75 ч

6 ч

Всего

26 ч

СПЕЦИФИКАЦИЯ

оценочных средств

по МДК 01.01

«СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ»

программ подготовки специалистов среднего звена

по специальности 09.02.03 Программирование в компьютерных системах

Спецификация экзаменационного задания

1 Назначение

Спецификацией устанавливаются требования к содержанию и оформлению вариантов оценочного средства.

Экзаменационное задание входит в состав комплекса оценочных средств

и предназначено для  промежуточной аттестации и оценки знаний и умений аттестуемых,  соответствующих основным показателям оценки результатов подготовки по программе МДК 01.01 «Системное программирование» программы подготовки специалистов среднего звена по специальности 09.02.03 Программирование в компьютерных системах

2 Контингент аттестуемых обучающиеся  ОГБПОУ СОТА

3 Условия аттестации: аттестация проводится в форме устного экзамена по завершении освоения учебного материала учебной дисциплины при положительных результатах текущего контроля.

4 Время контроля: 

подготовка 30 мин.;

оформление и сдача 15 мин.;

всего 45 мин.

5. План варианта экзаменационного задания (соотношение контрольных задач/вопросов с содержанием учебного материала в контексте характера действий аттестуемых) 

Содержание

учебного материала

по программе УД

Коды ОПОР / литера категории действия/ количество контрольных задач/вопросов в билете

Общее количество задач/вопросов по категориям действий

ПК 1.1 – 1.2

ПК 1.3 – 1.4

ПК 1.5 – 1.6

В

П

А

С

О

Раздел 1

Современные системы программирования

П1

1

Раздел 2 

Машинно-ориентированная система программирования Ассемблер. Использование транслятора Turbo Assembler при разработке программ

П1

C1

1

1

Раздел 3 

Разработка, отладка и тестирование программ для многозадачных операционных системы (ОС) на примере OC Windows

А1

О1

1

1

Всего

5

2

1

1

1

6 Структура варианта экзаменационного задания 

Основная задача: оценка знаний и умений аттестуемых,  соответствующих основным показателям оценки результатов подготовки по программе учебной дисциплины

Краткая характеристика: Экзаменационное задание является комплексным, т.к.  включает практическую и теоретическую части, объединенные логически. Теоретическая часть требует развернутого ответа, практическая часть выполняется на макете или с использованием прикладных средств моделирования.

Экзаменационный билет

  1. Теоретический вопрос
  2. Разработка программы на Assembler
  3. Разработка программы на Borland C++ Builder

7 Система оценки решения задач, ответов на вопросы, выполнения заданий

%  результативности (правильных ответов)

Качественная оценка уровня подготовки

Отметка

Вербальный аналог

90 ÷ 100

5

отлично

80 ÷ 89

4

хорошо

70 ÷ 79

3

удовлетворительно

менее 70

2

неудовлетворительно

8 Трудоемкость

Трудоемкость выполнения/решения, мин (час)

Количество задач

1

2

3

Одной (го) задачи/вопроса

10

10

10

30 мин.

9  Перечень используемых нормативных документов

ФГОС СПО по специальности 09.02.03 Программирование в компьютерных системах

Рабочая программа ПМ.01

Устав ОГБПОУ СОТА

ППССЗ по специальности 09.02.03 Программирование в компьютерных системах

Положение о текущем контроле знаний и промежуточной аттестации обучающихся ОГБПОУ СОТА

10 Рекомендуемая литература для разработки оценочных средств и подготовки обучающихся к аттестации

Основные источники:

  1. Канцедал С.А.  Программирование на языках высокого уровня М.: ИТ Форум: ИНФРА – М, 2017
  2. Партыка Т. Л., Попов И. И. Операционные системы, среды и оболочки. 2-е издание. Стереотип М.: Форум, 2015

Дополнительные источники:

  1. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение Спб.: Питер, 2009. – 624 с.
  2. Компьютерные сети. Учеб.пособие// Максимов Н. В., Попов И. И. 4-е издание, испр. И доп. – М.: Форум, 2010. 464 с.
  3. Компьютерные сети. Учеб.пособие// Кузин А. В.,Демин В. М. – 2-е издание – М.: Форум, 2010. 192 с.
  4. Сетевые операционные системы / В. Г. Олифер, Н. А. Олифер. – Спб.: Питер, 2009. – 544 с.
  5. Бесплатная, виртуальная, электронная, Интернет библиотека www.xserver.ru  (дата обращения 13.08.18).
  6. Журнал Компьютер Пресс: Тестирование. Безопасность: www.compress.ru  (дата обращения 13.08.18).
  7. Компьютерная и техническая документация: www.emanual.ru (дата обращения 13.08.18).
  8. Образовательный портал: http\www.edu.sety.ru (дата обращения 13.08.18).

        11 Перечень материалов, оборудования и информационных источников, используемых в аттестации

  • ПК
  • ЛВС
  • СПО Assembler
  • СПО Borland C++ Builder

         Спецификация практического задания

  1. Назначение

Спецификацией устанавливаются требования к содержанию и оформлению вариантов оценочного средства.

Практическое задание входит в состав комплекса оценочных средств и предназначено для текущего контроля и оценки знаний и умений обучающихся, соответствующих основным показателям оценки знаний и умений обучающихся, соответствующих основным показателям оценки результатов подготовки по программе МДК 01.01 «Системное программирование» ППССЗ по специальности 09.02.03 Программирование в компьютерных системах

Контингент аттестуемых: обучающиеся ОГБПОУ СОТА 

Условия аттестации: контроль проводится после изучения тем  1-5 учебной дисциплины в форме лабораторной работы.

  1. Время контроля:

выполнение 1 час

  1. Структура варианта практического задания

Основная задача: оценка знаний и умений обучающихся, соответствующих основным показателям оценки результатов подготовки по программе учебной дисциплины.

Краткая характеристика

Для реализации личностного потенциала обучающимся предлагаются задания разных уровней.

Задание первого варианта состоит из 1 задачи, выполнение которой является пошаговым действием в достижении результата. Задача данного варианта носит репродуктивный характер.

Задание второго варианта состоит из 1 задачи, в которой указаны исходные данные для выполнения действия и средства выполнения, но отсутствует комментарий к выполнению. Задача данного варианта носит частично-поисковый характер.

Третий вариант включает 1 задачу, в которой указаны исходные данные. Обучающийся должен выбрать средства выполнения, описать алгоритм действий для достижения результата. Задания носят поисковый характер.

Задание

Вариант 1

1. Изучить программную модель микроконтроллера, используя раздел «Теоретическое введение».

2. Изучить инструкцию пользователя симулятора микроконтроллера, используя соответствующий подраздел «Теоретического введения».

3. Изучить команды пересылки. Изучение каждой команды проводить следующим образом:

  • Открыть окно «Дисассемблер».
  • В пункте меню «Правка» выбрать опцию «Вставка команды».
  • В открывшемся окне «Вставить инструкцию» ввести мнемокод соответствующей команды пересылки, описание которой представлено в меню «Справка», и нажать на кнопку ОК. Записать в отчет строку о введенной в окно «Дисассемблер» команде.
  • Открыть окна «Процессор», «Регистры», «Дамп памяти данных». Просмотреть содержимое этих окон.
  • Выполнить команду пересылки, выбрав в меню «Запуск команды» опцию «Шаг».
  • Записать в отчет изменения в окнах «Процессор», «Регистры», «Дамп памяти данных».
  • Для повторного выполнения команды в меню «Запуск команды» выбрать опцию «Сброс».

4. Написать и исследовать работу программы пересылки байта из ячейки памяти программ с адресом 71Н в регистр R1 банка 1.

  1. Функциональная модель микроконтроллера.
  2. Содержимое регистров и ячеек памяти окон «Процессор», «Регистры», «Дамп памяти данных» до и после выполнения каждой команды пересылки в соответствии с таблицей 1.3.
  3. Содержимое регистров и ячеек памяти окон «Процессор», «Регистры», «Дамп памяти данных» и памяти программ до и после выполнения каждой команды разработанной программы в соответствии с таблицей 1.4.

Таблица 1 — Результаты выполнения команд

Команда

Код

Выполняемая
операция

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

Пояснение

До

После

1

MOV A,R0

Е8

Пересылка байта данных из регистра R0 в аккумулятор A

А/00

РС/00

PSW/00

A/F2

РС/01

PSW/01

2

Вариант 2 

  1. Исследовать команды записи в стек и считывания из стека: PUSH P1; PUSH 01; PUSH PSW; POP PSW;  POP 01; POP P1.
  2. Исследовать команды входа и выхода из подпрограмм.
  3. Написать и исследовать работу подпрограммы возведения в квадрат числа в аккумуляторе.
  4. Написать и исследовать программу опроса содержимого двух младших разрядов  порта Р1 и перехода в зависимости от их состояния к одной из четырех подпрограмм, начальные адреса которых находятся в ячейках 21Н, 25Н, 3AН и 2FН.

1. Загрузить последовательность команд: MOV P1, #3FH; MOV R1, #C3H; MOV A, R1; PUSH P1; PUSH 01; PUSH PSW; SETB RS1; MOV P1, #1H; MOV 01H, #02H; POP PSW;  POP 01; POP P1.

 2. Выполнить последовательность команд в пошаговом режиме.

 3. Записать в отчет в соответствии с таблицей 2.2 выполняемые команды и содержимое изменяемых регистров и ячеек памяти.

 4. Загрузить, начиная с адреса 0000, последовательность команд: ACALL 05; LJMP 20; NOP; NOP; NOP; RET.

 5. Выполнить программу, состоящую из данной последовательности команд в пошаговом режиме.

 6. Записать в отчет в соответствии с таблицей 2.2 выполняемые команды и содержимое изменяемых регистров и ячеек памяти.

 7. Разработать и ввести подпрограмму возведения в квадрат числа с использованием команды MUL AB. Для обращения к подпрограмме использовать команду ACALL.

 8. Убедиться в работоспособности подпрограммы.

 9. Записать в отчет в соответствии с таблицей 2.2 выполняемые команды и содержимое изменяемых регистров. Определить время выполнения подпрограммы.

10. Разработать программу опроса содержимого двух младших разрядов  порта Р1 и перехода в зависимости от их состояния к одной из четырех подпрограмм, начальные адреса которых находятся в ячейках 21Н, 25Н, 3AН и 2FН

11. Задавая в порт различные кодовые комбинации в используемых разрядах, проверить работоспособность программы.

Таблица 2 — Результаты выполнения команд

Команда

Код

Выполняемая
операция

Содержимое регистров и памяти до и после выполнения

Пояснение

До

После

1

MOV A,R0

Е8

Пересылка байта данных из регистра R0
в аккумулятор A

А/00

R0/F2

0000/F2

A/F2

R0/F2

0000/F2

2

Вариант 3

1. Разработать и ввести в окно «Дисассемблер» программу сложения двух произвольно выбранных однобайтовых чисел.

 2. Осуществляя запуск программы в режиме «Шаг», убедиться в правильности ее выполнения, используя окна «Дисассемблер». «Процессор», «Регистры». Результаты наблюдений свести в табл.3.3. Определить время выполнения программы.

 3. Разработать и ввести в окно «Дисассемблер» программу умножения двух произвольно выбранных однобайтовых чисел.

 4. Осуществляя запуск программы в режиме «Шаг», убедиться в правильности ее выполнения, используя окна «Дисассемблер». «Процессор», «Регистры». Обратить внимание на формируемые флаги. Результаты наблюдений свести в таблице 3.3. Определить время выполнения программы.

Таблица 3 — Результаты выполнения команд

Команда

Код

Выполняемая
операция

Содержимое регистров и памяти до и после выполнения

Пояснение

До

После

1

MOV A,R0

Е8

Пересылка байта данных из регистра R0
в аккумулятор A

А/00

R0/F2

0000/F2

A/F2

R0/F2

0000/F2

2

5. Разработать и ввести в окно «Дисассемблер» программу деления произвольно выбранных однобайтовых чисел.

6. Осуществляя запуск программы в режиме «Шаг», убедиться в правильности ее выполнения, используя окна «Дисассемблер». «Процессор», «Регистры». Результаты наблюдений свести в таблицу. Определить время выполнения программы.

7. Исследовать команды сдвига вправо и влево. Результаты наблюдений свести в таблицу.  

8. Загрузить из каталога Examples программу «Временная задержка.txt».

9. Используя меню 3апуск, установить точку останова программы на команде с адресом 0007.

10. Запустить программу в непрерывном режиме (опция Запуск).

11. В окне «Процессор» считать информацию о времени выполнения и числе циклов исполняемой программы.

12. Используя длительности исполнения команд программы, рассчитать время исполнения программы.

13. Ввести изменения в исполняемой программе для получения временной задержки, заданной преподавателем.

14. Запустить модернизированную программу и определить время ее выполнения в соответствии с п.п. 8 – 10. Сравнить полученные данные с расчетным значением.

  1. Система оценки знаний

Отлично: выполнен вариант 3. Ошибки отсутствуют (допущена незначительная ошибка).

Хорошо: выполнен вариант 3, допущено не более 3-х неточностей/ошибок; выполнен вариант 2, ошибки отсутствуют (допущены незначительные недочеты/ошибки, но не более 3-х).

Удовлетворительно: выполнен вариант 3, допущено 4-5 неточностей/ошибок; выполнен вариант 2, допущено  не более 4 неточностей/ошибок; выполнен вариант 1, ошибки отсутствуют (допущено не более 3-х неточностей/ошибок).

Неудовлетворительно: допущено большее количество ошибок; задания выполнены частично или не выполнены.

  1. Трудоемкость

Вариант (для всех вариантов)

Трудоемкость выполнения/решения, мин (час)

Количество задач, вопросов

1

Одной задачи

60мин

Всего задания

60 мин

  1. Перечень используемых нормативных документов

ФГОС СПО по специальности 09.02.03 Программирование в компьютерных системах

Рабочая программа МДК 01.01 «Системное программирование»

Устав ОГБПОУ СОТА

ППССЗ по специальности 09.02.03 Программирование в компьютерных системах

Положение о текущем контроле знаний и промежуточной аттестации обучающихся ОГБПОУ СОТА

  1. Рекомендуемая литература для разработки оценочных средств и подготовки обучающихся к аттестации

Основные источники:

  1. Канцедал С.А.  Программирование на языках высокого уровня М.: ИТ Форум: ИНФРА – М, 2017
  2. Партыка Т. Л., Попов И. И. Операционные системы, среды и оболочки. 2-е издание. Стереотип М.: Форум, 2015

Дополнительные источники:

  1. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение Спб.: Питер, 2009. – 624 с.
  2. Компьютерные сети. Учеб.пособие// Максимов Н. В., Попов И. И. 4-е издание, испр. И доп. – М.: Форум, 2010. 464 с.
  3. Компьютерные сети. Учеб.пособие// Кузин А. В.,Демин В. М. – 2-е издание – М.: Форум, 2010. 192 с.
  4. Сетевые операционные системы / В. Г. Олифер, Н. А. Олифер. – Спб.: Питер, 2009. – 544 с.
  5. Бесплатная, виртуальная, электронная, Интернет библиотека www.xserver.ru  (дата обращения 13.08.18).
  6. Журнал Компьютер Пресс: Тестирование. Безопасность: www.compress.ru  (дата обращения 13.08.18).
  7. Компьютерная и техническая документация: www.emanual.ru (дата обращения 13.08.18).
  8. Образовательный портал: http\www.edu.sety.ru (дата обращения 13.08.18).
  1. Перечень материалов, оборудования и информационных источников, используемых в аттестации

ПК

ЛВС

СПО Assembler

СПО Borland C++ Builder

           КОМПЛЕКТ ЭКЗАМЕНАЦИОННОГО ЗАДАНИЯ

Экзаменационный билет № _1_

  1. Поясните понятие системного программирования.
  2. Написать и исследовать работу программы пересылки байта из ячейки памяти программ с адресом 71Н в регистр R1 банка 1 с использованием регистра DPTR и в регистр R2 банка 3 с использованием регистра РС. (Assembler).
  3. Проверить является ли строка палиндромом. (Палиндром — это выражение, которое читается одинаково слева направо и справа налево). (Borland C++ Builder).

Экзаменационный билет № _2_

  1. Приведите принципы функционирования систем программирования.
  2. Исследовать команды записи в стек и считывания из стека: PUSH P1; PUSH 01; PUSH PSW; POP PSW;  POP 01; POP P1 (Assembler).
  3. Преобразовать строку таким образом, чтобы в ее начале были записаны слова, содержащие только цифры, потом слова, содержащие только буквы, а затем слова, которые содержат и буквы и цифры. (Borland C++ Builder).

Экзаменационный билет № _3_

  1. Поясните назначение и функции компилятора.
  2. Написать и исследовать работу подпрограммы возведения в квадрат числа в аккумуляторе (Assembler).
  3. Преобразовать строку таким образом, чтобы буквы каждого слова  в ней были отсортированы по возрастанию. (Borland C++ Builder).

Экзаменационный билет № _4_

  1. Дайте определение понятиям загрузчики, отладчики, приведите функции загрузчика.
  2. Написать и исследовать программу опроса содержимого двух младших разрядов  порта Р1 и перехода в зависимости от их состояния к одной из четырех подпрограмм, начальные адреса которых находятся в ячейках 21Н, 25Н, 3AН и 2FН. (Assembler).
  3. Преобразовать строку таким образом, чтобы цифры каждого слова  в ней были отсортированы по убыванию. (Borland C++ Builder).

Экзаменационный билет № _5_

  1. Изобразите блок-схему разработки программ в архитектуре «клиент-сервер».
  2. Разработать и исследовать программы сложения операндов (Assembler).
  3. Произвести пословный перевод всех слов строки. Подстановочный словарь может содержать не более 10 слов, можно не учитывать изменение форм слова. (Borland C++ Builder).

Экзаменационный билет № _6_

  1. Поясните механизм подготовки и выполнения программ на языке Ассемблер.
  2. Разработать и исследовать программу умножения операндов (Assembler).

3.  Структурированный тип: Фирма

Поля: название фирмы, Ф.И.О. директора, количество сотрудников, адрес, уставной капитал.

Функции:

Ввод количества фирм с клавиатуры

Заполнение массива структур с клавиатуры

Печать массива структур на экране

Вычисление среднего уставного капитала

Поиск структуры с заданными Ф.И.О. директора. (Borland C++ Builder).

Экзаменационный билет № _7_

  1. Перечислите и охарактеризуйте режимы работы микропроцессора.
  2. Разработать и исследовать программу деления операндов (Assembler).
  3. Структурированный тип: абонент телефонной связи.

Поля: Ф.И.О. абонента, номер телефона, тип соединения (индивидуальный, спаренный, коллективного пользования), адрес владельца

Функции:

Ввод количества абонентов с клавиатуры

Заполнение массива структур с клавиатуры

Печать массива структур на экране

Поиск абонента с заданным номером

Подсчет количества абонентов с телефоном индивидуального пользования. (Borland C++ Builder).

Экзаменационный билет № _8_

  1. Перечислите типы операторов языка ассемблер.
  2. Исследовать и модернизировать программу формирования временной задержки (Assembler).
  3. Структурированный тип: Перечень комплектующих деталей компьютера

Поля: тип детали (например, видеокарта, процессор и т. п), марка, производитель, цена, срок гарантийного обслуживания

Функции:

Заполнение массива структур с клавиатуры

Печать массива структур на экране

Вычисление средней стоимости одного компьютера

Поиск комплектующей детали с минимальным гарантийным сроком обслуживания

Вывод перечня комплектующих заданного типа. (Borland C++ Builder).

Экзаменационный билет № _9_

  1. Как происходит использование моделей памяти и сегментации при создании программ.
  2. Исследовать программу возведения в квадрат числа (Assembler).
  3. Структурированный тип: Средство связи

Поля: тип, радиус действия, цена одной минуты связи.

Функции:

Заполнение массива структур с клавиатуры

Печать массива структур на экране

Вычисление средней стоимости одного часа связи для средств заданного типа

Поиск средства связи с максимальным радиусом действия. (Borland C++ Builder).

Экзаменационный билет № _10_

  1. Перечислите и охарактеризуйте типовые ошибки программирования.
  2. Исследовать программу перевода двоичного числа в двоично-десятичное число (Assembler).
  3. Структурированный тип: товар

Поля: Название, фирма-производитель, входная цена одной единицы товара, количество, торговая надбавка в процентах

Функции:

Заполнение массива структур с клавиатуры

Печать массива структур на экране

Поиск товара с минимальной ценой заданного производителя

Вычисление общего количества товаров. (Borland C++ Builder).

Экзаменационный билет № _11_

  1. Запишите и поясните общий формат машинной команды.
  2. Разработать и исследовать подпрограмму вычисления синуса угла в диапазоне 0 — 80° с шагом 10°. (Assembler).
  3. Структурированный тип: читатель

Поля: Ф.И.О., номер билета, количество книг на руках, дата перерегистрации(число, месяц, год)

Функции:

Заполнение массива структур с клавиатуры

Печать массива структур на экране

Поиск читателя с наиболее поздней датой перерегистрации

Вычисление общего количества книг на руках. (Borland C++ Builder).

Экзаменационный билет № _12_

  1. Приведите структуру и особенности работы обработчиков прерываний.
  2. Разработать программу десятичной коррекции (Assembler)
  3. Структурированный тип: книга

Поля: автор, название, год издания, число страниц

Функции:

Заполнение массива структур с клавиатуры

Печать массива структур на экране

Подсчет книг заданного автора

Поиск книги с наиболее поздним годом издания. (Borland C++ Builder).

Экзаменационный билет № _13_

  1. Как происходит организация взаимодействия резидентных программ.
  2. Разработать программу перевода двоичного числа в двоично-десятичное, используя рекуррентное соотношение                                                         

          d7 d6 d5 d4 d3 d2 d1 d0 = d0+2(d1+2(d2+2(d3+2(d4+2(d5+2(d6+2 d7)))))) (Assembler).

  1. Структурированный тип: тарифный план сотовой связи

Поля: Название фирмы-провайдера, название тарифа, абонентская плата, количество бесплатных минут, входящих в абонентскую плату, стоимость минуты разговора в дневное и вечернее время

Функции:

Заполнение массива структур с клавиатуры. Печать массива структур на экране

Поиск тарифа с максимальной абонентской платой. Подсчет оптимального по цене тарифа с условием, что абонент планирует наговаривать в месяц не более некоторого числа минут, заданного с клавиатуры. (Borland C++ Builder).

Экзаменационный билет № _14_

  1. Приведите порядок операций по защите программ от копирования и несанкционированного доступа.
  2. Разработать программу перевода двоично-десятичного числа в двоичное (Assembler).
  3. Написать программу просмотра и редактирования простейшей базы данных о студентах. Базу данных считывать из файла. Приложение должно состоять из двух диалогов. В первом диалоге редактируется число записей в базе, имя и фамилия одного (текущего) студента. Второй диалог предназначен для просмотра всей базы в виде таблицы. Высота таблицы должна автоматически вычисляться по текущему разрешению экрана. (Borland C++ Builder).

Экзаменационный билет № _15_

  1. Как осуществляются арифметические операции над данными в ASCII — и BCD –форматах.
  2. Разработать программу временной задержки для датчика движения (Assembler).
  3. Написать программу простейшего графического редактора, позволяющего рисовать (добавлять, удалять, редактировать свойства) фигуры из разработанной системы классов в окне созданного приложения. Изучить структуру приложения Windows, использующего OpenGL. Изучить архитектуру, синтаксис команд, примитивы OpenGL. Написать программу рисования простых трехмерных тел. (Borland C++ Builder).

Экзаменационный билет № _16_

  1. Приведите примеры мнемонической записи команд языка Ассамблер.
  2. Разработать программу вычисления времени до завершения процесса (Assembler).
  3. Описать класс точки с характеристиками (х, у) – вещественные координаты точки и методами ввода, вывода и нахождения расстояния от точки до начала координат. (Borland C++ Builder).

Экзаменационный билет № _17_

  1. Приведите порядок операций отладки программных модулей с использование специализированных программных средств.
  2. Разработать программу управления семисегментным индикатором (Assembler).
  3. Описать класс точки, добавив к нему методы возврата координат X и Y. С помощью этого класса решить следующие прикладные задачи: даны точки А(х1, у1) и В(х2, у2). Определить, лежат ли длина отрезков ОА и ОВ (О – начало координат) в заданном интервале [m1,m2]. (Borland C++ Builder).

Экзаменационный билет № _18_

  1. Поясните механизм взаимодействия Turbo Assembler и Borland Pascal.
  2. Разработать программу определения координат в пространстве (Assembler).

3. Описать класс прямоугольника с характеристиками a и b – длины сторон, и методами нахождения периметра, площади и диагонали прямоугольника. Решить следующие задачи с использованием описанного класса: имеется прямоугольный участок со сторонами А и В. Определить стоимость работ по установке забора вокруг участка, если установки забора длиной 10 метров требует расходов в N рублей. (Borland C++ Builder).

Экзаменационный билет № _19_

  1. Поясните основные правила синтаксиса языка  C++.  
  2. Разработать программу определения расстояния до объекта (Assembler).
  3. Описать класс параболы at2+bt+c с характеристиками a, b и c, и методами определения координаты t0 – вершины параболы и значения функции у = at2+bt+c в произвольной точке t. Для определения значения в вершине параболы воспользоваться тем, что значение производной в этой точке равняется нулю, то есть 2at+b=0. Решить следующие задачи: спрос на продукцию предприятия снижается по левой ветви параболы t2-4t+9. Определить, в какой момент времени t0 спрос будет минимальным и чему он будет равен (в тыс. ед.) (Borland C++ Builder).

Экзаменационный билет № _20_

  1. Приведите общие правила построения программ для Windows (на примере С++).
  2. Разработать программу управления автомобильным тахометром (Assembler).
  3. Имеются данные об успеваемости 10-ти студентов (средние баллы). Найти средний балл по группе. (Borland C++ Builder).

Экзаменационный билет № _21_

  1. Приведите пример простейшего приложения, реализующего обработку сообщений.
  2. Имеется команда:

ECS: 100 B8 04 30 05 00 30 СВ

Что делает данная программа?

(Assembler).

  1. Формируются несколько групп переключателей по 2 – 3 переключателя  и статическое окно. В каждый момент времени только один из переключателей в группе может быть выбран. Информация об изменении состояния каждого переключателя должна отображаться в статическом окне. (Borland C++ Builder).

Экзаменационный билет № _22_

  1. Опишите функции обработки сообщений от драйвера «мыши», для С++ Builder.
  2. Напишите программу, выполняющую следующую операцию:

• Пересылка значения 25Н в регистре AL

• Сдвиг содержимого регистра AL на 1 бит влево

• Пересылка значения 15Н в регистр BL

• Умножение содержимого регистра AL на содержимое регистра BL

(Assembler).

  1. Формируются несколько радиокнопок и статическое окно. В каждый момент времени только одна из радиокнопок должна быть нажата. Информация об изменении состояния каждой кнопки должна отображаться в статическом окне. (Borland C++ Builder).

Экзаменационный билет № _23_

  1. Приведите механизм отладки программных модулей с использованием специализированных программных средств.
  2. Для сегментов кода, данных и стека даны имена CDSEA, DATSEA и STKSEA соответственно. Сформируйте директиву ASSUME. (Assembler).
  3. Формируются однострочный текстовый редактор, простой список выбора и стандартная кнопка. Нажатие на кнопку должно помещать введенную пользователем в редакторе строку в список выбора. (Borland C++ Builder).

Экзаменационный билет № _24_

  1. Приведите порядок операций для оптимизации программных модулей.
  2. Напишите  программу  для  вычисления  12  чисел  Фибоначчи: 1,1,2,3,5,8,13,…(каждое число в последовательности представляет собой сумму двух предыдущих чисел). Для организации цикла используйте команду LOOP. (Assembler).
  3. Формируются список выбора с окном редактирования и статическое окно. В статическом окне должна отображаться информация о выбираемом пользователем элементе списка. (Borland C++ Builder).

Экзаменационный билет № _25_

  1. Приведите порядок операций для тестирования программных модулей.
  2. Напишите программу для вычисления сумму первых 15 нечетных чисел Фибоначчи с первыми 5 четными числами Фибоначчи. Суммы должны вычисляться в подпрограммах. (Assembler).
  3. Формируются три стандартные кнопки и статическое окно. Две кнопки управляют размерами третьей: нажатие на них пропорционально увеличивает и уменьшает ее размеры. Информация об изменении размеров кнопки должна отображаться в статическом окне. (Borland C++ Builder).

Экзаменационный билет № _26_

  1. Таймеры в ОС Windows, связанные с ними сообщения, функции API Windows обратотки этих событий.
  2. Напишите программу вывода на экран набора символов ASCII – кода (Assembler).
  3. Формируются несколько стандартных кнопок и статическое окно. Информация о нажатии каждой кнопки должна отображаться в статическом окне. (Borland C++ Builder).

Экзаменационный билет № _27_

  1. Опишите функции обработки клавиатурных сообщений в ОС Windows, функции API Windows, для С++.
  2. Напишите программу, запрашивающую ввод имени, а затем отображающую в средине экрана введенное имя (Assembler).
  3. Имеются данные об объемах продаж магазина за 12 месяцев. Найти суммарный и среднемесячный объемы продаж. (Borland C++ Builder).

Экзаменационный билет № _28_

  1. Поясните механизм взаимодействия Turbo Assembler и Borland С++.
  2. Напишите команды для BIOS INT 13H, выполняющие чтение одного сектора в область памяти INDISK, с дисковода А, головки 0, дорожки 6 и сектора 3 (Assembler).
  3. Имеются данные о численности 10 населенных пунктов района. Найти количество населенных пунктов, количество жителей в которых ниже среднего по району. (Borland C++ Builder).

Экзаменационный билет № _29_

  1. Приведите пример программирования операций над файлами, каталогами и дисками.
  2. Напишите команды для BIOS INT 13H, выполняющие запись трех секторов из области памяти OUTDISK на дисковод В, головку 0, дорожку 8 и сектор 1 (Assembler).
  3. Имеются данные о прибыли предприятия за последние пять лет. Найти, в какие годы прибыль была максимальной и минимальной. (Borland C++ Builder).

Экзаменационный билет № _30_

  1. Расшифруйте понятия загрузчики и редакторы связей.
  2. Программа MAINPRO должна вызвать подпрограмму SUBPRO. В программе   MAINPRO определены переменные QTY как DB, VALUE как DW и PRICE как DW.   Подпрограмма SUBPRO должна разделить VALUE на QTY и записать частное a   PRICE. Постройте работающую программу и проверьте ее (Assembler).
  3. Имеются данные о температуре воздуха за неделю (по дням), определить перепад температур за неделю. (Borland C++ Builder).

Перечень вопросов по дисциплине  «Системное программирование»

1. Понятие системного программного продукта.
2. Стадии разработки программного обеспечения.
3. Технология инкрементального программирования.
4. Понятие объекта: состояние, поведение, методы. Понятие класса и
идентичность объектов.
5. Принципы объектной модели.
6. Проблема создания и уничтожения объектов.
7. Понятие ссылки. Операции над ссылками и способы применения ссылок.
8. Статические и постоянные члены класса. Встраиваемые методы.
9. Дружественные функции.
10.Понятие полиморфизма в программировании. Виды полиморфизма в среде разработки Delphi.
11.Иерархические отношения между классами: композиция.
12.Иерархические отношения между классами: наследование.
13.Виртуальные методы и позднее связывание.
14.Понятие абстрактного класса.
15.Использование потокового ввода-вывода.
16.Порождаемые функции в обобщённом программировании.
17.Порождаемые классы в обобщённом программировании.
18.Использование основных контейнеров стандартной библиотеки.
19.Классы функциональных объектов: создание и применение.
20.Использование алгоритмов стандартной библиотеки.
21.Парадигма защитного программирования.
22.Понятие операционной системы, ее назначение и функции.
23.Утилиты операционной системы GNU/Linux.
24.Понятие файла. Виртуальная файловая система ОС GNU/Linux.
25.Разграничение доступа к файлам. Доступ к устройствам.
26.Организация взаимодействия пользователя с системой.
27.Организация ввода-вывода системного уровня.
28.Концепция процесса. Состояния процесса и диаграмма смены состояний.
Операции над процессами.
29.Планирование процессов. Политики планирования.
30.Сигналы и их использование для управления процессами.
31.Использование времени в программных системах. Часы POSIX. Таймеры.
32.Понятие потока выполнения. Сравнительный анализ потоков и процессов.
33.Асинхронные параллельные потоки.
34.Задача «разделение доступа к ресурсу». Способы ее решения.
35.Задача «синхронизация по готовности данных». Способы ее решения.
36.Системные средства синхронизации потоков.
37.Мониторы Хоара.
38.Проектирование и модели многопоточных приложений.
39.Иерархия памяти. Виртуальная память: концепция и инструменты.
40.Взаимодействие процессов: проблематика и средства. Каналы.
41.Сокеты и их применение для взаимодействия процессов.
42.Проблематика разработки многопоточных приложений.

18

  1. История развития
    ВТ в связи с историей развития системного
    программного обеспечения.

Современные
компьютерные системы наряду с прикладным
ПО всегда содержат системное, которое
обеспечивает организацию вычислительного
процесса. История
системного программного обеспечения
связана с появлением первой развитой
в современном понимании ОС
UNIX.

1965
— Bell labs разрабатывает операционную
систему Multix — прообраз UNIX, имеющий далеко
не все части современной системы. До
этого времени не существовало мобильных
ОС (переносимых на разные типы машин) и
Multix
также не был
мобильной ОС.

1971
— написан UNIX
для работы на мощнейшей платформе того
времени PDP
— 11

1977
— Становится переносимой системой, т.к.
переписан на языке C
(AT&T system V)

1981 — платформа
Intel начинает резко наращивать свои
возможности. Колоссальным прорывом
было создание 8088, затем 8086, 80286, etc.
Появляется однопользовательская
ОС MS-DOS, на 10 лет ставшая
стандартом де-факто для пользователей
персональных компьютеров. Но для машин
с процессором Intel появляются
и версии UNIX.

Конец 80 – начало
90 гг.

аппаратные средства резко увеличивают
свою мощность. Microsoft
создает
новую ОС Windows
NT и появляется
стандарт Win32.
Позже появляется Windows 95 – ОС
для одного рабочего места, но имеющая
многие возможности NT,
призванная вытеснить
MS-DOS. Аппаратные средства позволяют
создавать 64-битные версии такой ОС, как
UNIX, и в скором
времени она появляется и используется
на платформе Alpha
фирмы DEC.
С
наращиванием мощности аппаратных
средств системное программное обеспечение
становится все более изощренным и
имеющим большие возможности.

  1. Общая классификация
    вычислительных машин. Современные
    архитектурные линии ЭВМ. Системное ПО
    и его место в современной информатике.

ЭВМ являются
преобразователями информации. В них
ис­ходные данные задачи преобразуются
в результат ее решения. В соответствии
с используемой формой представления
инфор­мации машины
делятся на два класса
:
непрерывного
действия — аналоговые и дискретного
действия — цифровые
.
В силу
универсальности цифровой формы
представления информации цифровые
электронные вычислительные машины
представляют собой наиболее
универсальный

тип устройства обработки информации.
Основные свойства ЭВМ — автоматизация
вычисли­тельного процесса на основе
программного управления, огром­ная
скорость выполнения арифметических и
логических опера­ций, возможность
хранений большого количества различных
данных, возможность решения широкого
круга математических задач и задач
обработки данных. Особое значение ЭВМ
состоит в том, что впервые с их по­явлением
человек получил орудие для автоматизации
процес­сов обработки информации.
Управляющие
ЭВМ

предназначены для управления объектом
или производственным процессом.
Для
связи с объектом их снабжают датчиками.
Непрерывные значения сигналов с датчиков
преобразуются с помощью аналогово-цифровых
преобразователей в цифровые сигналы,
кот. вводятся в ЭВМ в соотв с алгоритмом
упр-я. После анализа сигналов формируются
упр. воздействия, которые с пом.
цифро-аналоговых преобразователей
преобразуются в аналоговые сигналы.
Через исполнительные механизмы изменяется
состояние объекта.

Универсальные ЭВМ
– предназначены для решения большого
круга задач, состав которых при разаработке
ЭВМ не конкретизируется.

Пример современных
архитектурных линий ЭВМ:

персональные ЭВМ (IBM
PC и Apple
Macintosh – совместимые
машины), машины для обработки специфической
информации (графические станции Targa,
Silicon Graphics),
большие ЭВМ (мэйнфреймы IBM,
Cray, ЕС ЭВМ).

Общее назначение
системного ПО

— обеспечивать интерфейс между
программистом или пользователем и
аппаратной частью ЭВМ (операционная
система, программы-оболочки) и выполнять
вспомогательные функции (программы-утилиты)
Современная
операционная система обеспечивает
следующее:

1) Управление
процессором путем передачи управления
программам.

2) Обработка прерываний,
синхронизация доступа к ресурсам.

3) Управление памятью.

4) Управление
устройствами ввода-вывода.

5)
Управление инициализацией программ,
межпрограммные связи.

  1. Управление
    данными на долговременных носителях
    путем поддержки файловой системы.

См.
также стандарты в (1).

  1. Общее
    понятие архитектуры. Принципы построения
    ВС 4-го поколения.

Архитектура –
совокупность технических средств и их
конфигураций, с помощью которых
реализована ЭВМ. ЭВМ 4 поколения, имеет,
как правило, шинную архитектуру, что
означает подключение всех устройств к
одной электрической магистрали, наз.
шиной. Если устройство выставило сигнал
на шину, другие могут его считать. Это
свойство используется для организации
обмена данными. С этой целью шина
разделена на 3 адреса – шина адреса,
шина данных и шина управляющего сигнала.
Все современные ЭВМ также включают
устройство, наз. арбитром шины, которое
определяет очередность занятия ресурсов
шины разными устройствами. В PC
распространены
шины ISA,
EISA, PCI, VLB.

Процессор

Опер.
память


Уст-ва
ввода-вывода




ШИНА

Соседние файлы в папке Экзамен

  • #
  • #
  • #
  • #

Системы программирования.

Курс записан со слов Тамары Васильевны РУДЕНКО студентами 2 потока 2 курса 2005 года запуска. За ошибки дорогая редакция ответственности не несёт.

План курса:

1. Системы программирования.

2. Элементы теории трансляции.

3. Язык C++.

Рекомендуемая литература:

C++:

  • Б. Страуструп. ‘Язык C++. Специальное издание’. Бином, 2001.

  • Г. Шилдт. ‘Самоучитель C++’.

  • Ира Пол. ‘ООП на C++’.

  • Стандарт C++. ISO/IEC 14882. (1998)

  • Б. Страуструп. ‘Дизайн и эволюция языка C++’.

  • Г. Буч. ‘Об’ектно-ориентированный анализ и проектирование с примерами приложений на C++’. http://vmk.ugatu.ac.ru/book/buch/index.htm

  • Г. Буч, Д. Рэмбо, А. Джакобсон. ‘Язык UML. Руководство пользователя’. http://povt.zaural.ru/edocs/uml/content.htm

СП:

  • А.Ю. Молчанов. ‘Системное программное обеспечение’, 2003.

  • А.В. Гордеев, А.Ю. Молчанов. ‘Системное программное обеспечение’, 2001.

  • А. Ахо, Р. Сети, Дж. Ульман. ‘Компиляторы. Принципы, технологии, инструменты’.

  • А. Ахо, Дж. Ульман. “Green Dragon”. ‘Теория компиляции’.

  • Волкова И.А., Руденко Т.В. ‘Формальные грамматики и языки. Элементы теории трансляции. 1999.

Материалы в поддержку лекций и практикума доступны на http://cmcmsu.no-ip.info/

Системы программирования. Вводные понятия.

Система программирования – комплекс программных средств, которые поддерживают весь технологический цикл разработки программного продукта.

Программа – текст на языке программирования, который его автор способен запустить на выполнение на ЭВМ в рамках некоторой конкретной среды, дать входные данные, получить результаты и понять их. Например, мы пишем программы в процессе обучения на ВМК.

Программный продукт – программа, которую пользователь может инсталлировать, задать ей входные данные, сам анализировать результаты, а так же сопровождать её, то есть программный продукт может жить без присутствия автора (отличительное свойство – отчуждаемость). Для этого программа должна быть хорошо документирована, тщательно протестирована, должна быть возможность настройки. Расходы при разработке программного продукта возрастают примерно в три раза относительно разработки программы.

Интегрированный программный продукт – программный продукт, который может быть интегрирован с другими программными продуктами в рамках некоторой программной системы. Интегрированные программные продукты одной системы, как правило, имеют похожий пользовательский интерфейс, средства обмена данными друг с другом. Возникает проблема совместного доступа к ресурсам (процессор, память).

Например, Microsoft Office. Приложения имеют похожие кнопочки и менюшки, могут обмениваться данными с помощью технологии OLE (Object Linking Environment).

При разработке интегрированного программного продукта расходы возрастают ещё в три раза.

Технологический цикл программного продукта.

Технологический цикл (жизненный цикл) – последовательность действий, выполняющихся при разработке программного продукта.

По статистике Standish Group, разработка программ не всегда заканчивается успешно. Было исследовано 300 компаний и 24 тысячи проектов. Только 26% из них были завершены в срок, бюджет не был превышен, вся функциональность была реализована. 46% были завершены не вовремя, бюджет был превышен, функциональность реализована не полностью. 28% проектов вообще не были завершены. Поэтому выбор технологии программирования – очень важная и нетривиальная задача. Он зависит от различных факторов: от специфики проекта, от компании-разработчика и т.д.

Технология программирования – набор рекомендаций по разработке программного продукта, включающий в себя разбиение на этапы, выбор инструментальной поддержки и т.д.

Этапы технологического цикла:

  1. анализ требований (требования заказчика уточняются, документируются, хотя бы частично формализуются. Для этого применяется простое текстовое описание, таблица решений, которая содержит условия на входные данные и эффекты на них, а также специальные языки спецификации, например Use case.)

  2. проектирование (как правило, используется стратегия divide & conquer, проектирование в большом и в малом. Сначала выявляется структура, потом уточняются элементы структуры. Применяется алгоритмическая или об’ектная декомпозиция. При первой процесс обработки данных разбивается на модули, в рамках каждого из которых выбираются некоторые алгоритмы. При второй предметная область разбивается на активные части – об’екты, которые могут взаимодействовать с другими об’ектами. Применяются диаграммы взаимодействия об’ектов, а также UML – Universal Markup Language.)

  3. кодирование (по описанной в спецификации функциональности и интерфейсам кодится модуль/класс)

  4. тестирование и отладка (тестирование – запуск программы на некоторых входных данных с целью обнаружить дефект – несоответствие ожидаемого результата и выданного программой. Отладка – обнаружение причины дефекта и её исправление. Различают тестирование методом белого ящика и методом чёрного ящика (когда известен исходный код, или, соответственно, нет). По цели различают функциональное, нагрузочное, стрессовое, регрессионное, адаптивное тестирование.)

  5. внедрение (перенос продукта на целевую систему с инструментальной)

  6. сопровождение (исправление ошибок, перевод в новую среду, добавление функциональности).

Этапы 1 – 4 относятся к непосредственной разработке продукта. Используют различные модели чередования этапов:

    • каскадная (устар.)

    • каскадно-возвратная (появляется возможность возврата в любой момент)

    • спиральная (итерационная) – сейчас наиболее распространена

Прототипы обладают частичной функциональностью и могут быть показаны заказчику. Достоинством этой модели является возможность на каждой итерации согласовывать требования заказчика со своим видением задачи. Сопровождение продукта при использовании этой модели не требует перестройки работы.

Идеальная система программирования

Идеальная система программирования должна включать в себя некоторые составные части, поддерживающая технологический цикл.

1, 2. Анализ требований и проектирование:

    • средство для создания текстовых материалов и диаграмм

    • контролёр непротиворечивости (например, в таблице решений – неперекрываемость входных данных)

    • браузер, который показывает взаимодействие компонентов системы

    • средства вывода этой информации

    • репозиторий проекта – организованное хранилище всех этих материалов, для него должны быть обеспечены:

      • согласованность изменений (непротиворечивость дополнений по сравнению со старой архитектурой)

      • непротиворечивость

      • санкционированный доступ (разрешение прав группам – проектировщикам, которые могут менять структуру проекта, кодеры могут менять интерфейс об’ектов, которые они описывают, но только в разрешённых пределах)

      • контроль версий (конфигураций) (версии, зависимости, восстановление)

3. Кодирование:

  • частичная автоматизация генерации кода (например, генерация кода пользовательского интерфейса)

  • богатые библиотеки алгоритмов/классов (и программа-библиотекарь)

  • синтаксически-ориентированный редактор (хинты, хоткеи, выделение служебных слов, баланс скобок, дописывание идентификаторов)

  • транслятор (компилятор или интерпретатор) – это нечто, что может помочь человеку, написавшему программу на языке высокого уровня, обеспечить её выполнение в рамках некоторой среды

  • редактор связей (линкер) – программа, получающая на вход отдельные файлы с неразрешёнными внешними ссылками и увязывающая отдельные связи

  • макрогенератор

  • загрузчик – программа, обеспечивающая настройку модуля на конкретные адреса оперативной памяти, функции загрузчика в последнее время выполняет не система программирования, а операционная система

4. Тестирование и отладка:

  • отладчик (желательно общение программы с программистом не в терминах адресов, а в терминах программы – переменных, функций, об’ектов, т.е. использование не только адресно-кодового, но и символьного отладчик)

  • генератор тестов (по частично формализованной спецификации)

  • автоматизация прогона (полезно при регрессивном тестировании). По словам ТВ, в Microsoft проги тестируют автоматически по ночам. Я знал, что их пишут не для людей 

  • частичная автоматизация обработки результатов прогона

  • анализ тестового покрытия – проверка на соответствие выборки заявленному требованию (например, при тестировании методом белого ящика с проверкой всех операторов программы аналайзер проверит, прошлись ли мы по всем ветвям алгоритма)

Кроме того, идеальная система программирования должна включать также средства управления проектом (как оказывается, ни программисты, ни менеджеры не могут эффективно управлять проектом; как показывает практика, для этого необходим человек, выросший из этого или похожего проекта). Средства системы программирования для управления проектом должны включать в себя:

  • средства заблаговременного планирования работ (составление списка задач, графика работ, распределение ответственности)

  • управление рисками – оценка степени рисков и решение проблем (менеджеры говорят, что проблемы возникают, как правило, не технические, а организационные: нестабильные требования заказчика, низкая вовлечённость высшего руководства, низкое привлечение пользователей)

  • координация и отслеживание плана работ

Также важна для систем программирования поддержка виртуальных групп разработчиков. Понятно, что взаимодействие программистов можно организовать с помощью электронной почты, мгновенных сообщений, форумов, видеоконференций. Но при этом возникают проблемы секретности, совмещения разных средств обмена информацией, архивирования и ведения логов.

Близки к нашей идеальной системе программирования так называемые CASE-средства (Computer Aided Software Engineering). Там подразумевается:

  • наличие репозитория проекта

  • поддержка визуальных методов проектирования (мощные графические средства, язык моделирования и т.д.)

  • средства ведения документации

  • интеграция всех этих средств.

Реальные CASE-средства:

  • Rational Suite – очень дорогая система. Компания Rational предлагает не только инструментальные средства, но и методику использования – Rational Unified Process

  • Rational Rose (анализ и проектирование)

  • Rational Team Test (тестирование)

  • Rational Robot – запоминание переходов в пользовательском интерфейсе

  • ERwin от фирмы Computer Outsource Internal

  • Paradigm Plus от Platinum

  • Oracle Design от угадайте кого

Система программирования C в UNIX:

  • компиляторы

  • редакторы

  • отладчики

  • координатор make – программа, которая по описанию зависимостей между частями проекта и действий по их сборке (нужен более широкий термин!) обеспечивает перекомпиляцию только тех частей проекта, которые это требуют (которые были изменены); непосредственно компиляцией и сопутствующими действиями make не занимается, используя указанные ему средства

  • Source Code Control System (SCCS) – управление доступом и сохранение версий

  • lint анализирует код лучше, чем компилятор, но не создаёт об’ектного модуля

  • manual (man man)

  • форматёры nroof (визуализирует специально размеченный текст) и tbl (перевод в таблицу)

  • lex – генератор лексических анализаторов и yacc – генератор синтаксический анализаторов

ЧАСТЬ I

Системы программирования, поддерживающие об’ектно-ориентированную разработку. Принципы об’ектно-ориентированного программирования.

Понравилась статья? Поделить с друзьями:
  • Системная подготовка к егэ по русскому языку
  • Систематические таксоны биология егэ
  • Систематика человека биология егэ
  • Систематика рыб егэ
  • Систематика растений тест егэ