Вход Блог
Строительство и ремонт
Красота
Репетиторы
Фрилансеры
Разные специалисты
Уход за животными
Тренеры
Автоинструкторы

Разработка на C/C++ — удалённая работа в Санкт-Петербурге

Дата: 2022-10-14
Детали
Регион
Санкт-Петербург
Занятость
дистанционно
Стоимость
договорная
Дата публикации
2022-10-14
Описание
Системное программирование. Решить задачу. Реализовать приложение, которое позволяет запустить его из командной строки с параметрами вида --from=<параметр> и --to=<параметр> и отсортировать поступающий на вход в стандартный поток ввода набор целых чисел (не более 100 штук, это гарантируется). Числа разделены пробелами, последним символом является перенос строки. Если было введено менее одного параметра, приложение должно вернуть код возврата -1, если более двух -- код -2. Если один и тот же параметр введён более одного раза -- код -3. Выражения --from=, --to=, --from=<не число>, --to=<не число> следует трактовать как --from=0 и --to=0 соответственно, --from=n<не число>, --to=n<не число> равносильно --from=n и --to=n. При наличии хотя бы одного корректного параметра выполнить работу приложения, используя этот параметр. При наличии двух некорректных параметров вернуть код ошибки -4. При этом в случае наличия первой специальной инструкции в сортировке участвуют лишь числа, строго большие параметра, а остальные, разделённые пробелами, выводятся в стандартный поток вывода. В случае наличия второй инструкции в сортировке участвуют лишь числа строго меньше, а остальные, разделённые пробелами, выводятся в стандартный поток ошибок. Процедура сортировки должна быть реализована на языке ассемблера достаточно оптимальным образом. Кодом возврата приложения является количество элементов, участвовавших в сортировке и изменивших свою позицию. Пример 1: • Args: --from 3 • Input: 2 4 1 5 8 4 • Stdout: 2 1 • Stder : • Exit code: 3 • (Reduced: 4 5 8 4, Sorted: 4 4 5 ) Пример 2: • Args: --to=9 --from 3 • Input: 4 7 10 5 1 6 8 • Stdout: 1 • Stderr: 0 • Exit code: 3 • (Reduced: 4 7 5 6 8, Sorted: 4 5 6 7 ) Пример 3: • Args: --to=9 --from=3 --anotherO e • Exit code: 2 • (Приложение возвращает код возврата -2, больше ничего не елает) Дополнительные соглашения: • В случае использования глобальных переменных в какой-либо функции их нужно явно инициализировать в ней, иначе возможна непредвиденная работа тестов. Но лучше их просто не использовать • Чтение поступающих на вход сортируемых элементов необходимо производить с помощью команды scanf(...) • Вывод данных в стандартный поток вывода осуществлять функцией printf(...) или fprintf(stdout, ...), вывод с стандартный поток ошибок осуществлять функцией fprintf(stderr, ...) • Файлы с кодом приложения должен иметь расширение .c, файл с реализацией сортировки на ассемблере должен иметь расширение .s.
Похожие заказы

Разработка на C/C++

дистанционно
договорная
Консультация. Разработка с нуля.
Санкт-Петербург Фрилансеры

Разработка на C/C++

дистанционно
договорная
Системное программирование. Разработка с нуля. Для оптимизации работы с блочными устройствами в ОС существует кэш страниц с данными, которыми мы производим операции чтения и записи на диск. Такой кэш позволяет избежать высоких задержек при повторном доступе к данным, так как операция будет выполнена с данными в RAM, а не на диске (вспомним пирамиду памяти). В данной лабораторной работе необходимо реализовать блочный кэш в пространстве пользователя в виде динамической библиотеки (dll или so). Политику вытеснения страниц и другие элементы задания необходимо сделать согласно варианту При выполнении работы необходимо реализовать простой API для работы с файлами, предоставляющий пользователю следующие возможности: Открытие файла по заданному пути файла, доступного для чтения. Процедура возвращает некоторый хэндл на файл. Пример: int lab2_open(const char *path). Закрытие файла по хэндлу. Пример: int lab2_close(int fd). Чтение данных из файла. Пример: ssize_t lab2_read(int fd, void buf[.count], size_t count). Запись данных в файл. Пример: ssize_t lab2_write(int fd, const void buf[.count], size_t count). Перестановка позиции указателя на данные файла. Достаточно поддержать только абсолютные координаты. Пример: ​​​​​​​off_t lab2_lseek(int fd, off_t offset, int whence). Синхронизация данных из кэша с диском. Пример: int lab2_fsync(int fd). Операции с диском разработанного блочного кеша должны производиться в обход page cache используемой ОС. В рамках проверки работоспособности разработанного блочного кэша необходимо адаптировать программу-загрузчик другой работы (реализовано) , добавив использование кэша. Запустите программу и убедитесь, что она корректно работает. Сравните производительность до и после. Ограничения Программа (комплекс программ) должна быть реализован на языке C или C++. Если по выданному варианту задана политика вытеснения Optimal, то необходимо предоставить пользователю возможность подсказать page cache, когда будет совершен следующий доступ к данным. Это можно сделать либо добавив параметр в процедуры read и write (например, ssize_t lab2_read(int fd, void buf[.count], size_t count, access_hint_t hint)), либо добавив еще одну функцию в API (например, int lab2_advice(int fd, off_t offset, access_hint_t hint)). access_hint_t в данном случае – это абсолютное время или временной интервал, по которому разработанное API будет определять время последующего доступа к данным. Запрещено использовать высокоуровневые абстракции над системными вызовами. Необходимо использовать, в случае Unix, процедуры libc. В качестве варианта использовать Windows Clock Algorithm.
Санкт-Петербург Фрилансеры

Разработка на C/C++

дистанционно
договорная
Системное программирование. Разработка с нуля.
Санкт-Петербург Фрилансеры

Разработка ПО для Linux

дистанционно
договорная
Разработка с нуля. Пожелания и особенности: Разработка драйвера для Linux для периферии.
Санкт-Петербург Фрилансеры

Разработка ПО для Linux

дистанционно
договорная
Кастом ОС. Нужен человек который по описанию и картинкам сможет собрать кастомную версию линукса или виндовса. Последний предпочтительнее. По идее нам нужна ОС без рабочего стола, но с приложением, который запускается со стартом, оно будет вместо рабочего стола. Приложение имеет в себе список других приложений. Условно мы нагрузим туда игрушек 2000-го года и они будут высвечиваться в меню этом. Настройка меню и выбор приложений желательно тоже сделать гибким, дабы в любой момент мы могли бы загрузить еще приложений или удалить ненужные. Пожелания и особенности: Нужен человек который по описанию и картинкам сможет собрать кастомную версию линукса или виндовса. Последний предпочтительнее. По идее нам нужна ОС без рабочего стола, но с приложением, который запускается со стартом, оно будет вместо рабочего стола. Приложение имеет в себе список других приложений. Условно мы нагрузим туда игрушек 2000-го года и они будут высвечиваться в меню этом. Настройка меню и выбор приложений желательно тоже сделать гибким, дабы в любой момент мы могли бы загрузить еще приложений или удалить ненужные.
Санкт-Петербург Фрилансеры

Разработка на C/C++

дистанционно
договорная
Разработка приложений для ПК. Разработка с нуля. Нужен человек, который может объяснить линейные алгоритмы , а также линейные и ветвящиеся алгоритмы.
Санкт-Петербург Фрилансеры

Разработка на C/C++

дистанционно
договорная
Системное программирование. Доработка существующего продукта. Разработка и поддержка встроенного ПО оборудования связи на транспорте, медицинского оборудования (мониторинг физиологических параметров). Используемые платформы — embedded Linux (OpenWRT) либо bare metal.
Санкт-Петербург Фрилансеры