Computer Science
رفتن به کانال در Telegram
По всем вопросам: @altmainf Уважаемый менеджер: @altaiface
نمایش بیشتر7 698
مشترکین
-224 ساعت
-247 روز
-6930 روز
آرشیو پست ها
7 698
Контрольные суммы
Распространенный способ быстро и эффективно обнаружить повреждение данных в современных системах.
Для вычисления простой контрольной суммы нужно лишь сложить байты блока данных, но, конечно, придумано много более изощренных контрольных сумм, в том числе циклический избыточный код (
CRC), контрольная сумма Флетчера и другие [MK09].
В компьютерных сетях контрольные суммы используются следующим образом. Отправитель вычисляет КС байтов сообщения и посылает ее вместе с самим сообщением. Получатель также вычисляет КС поступившего сообщения; если она совпадает с отправленной, то есть надежда, что данные не были повреждены во время передачи.
КС оцениваются по нескольким критериям. Самый важный – сила, или способность к обнаружению ошибок: приводит ли изменение данных к изменению контрольной суммы? Чем сильнее контрольная сумма, тем больше шансов, что изменение данных не останется незамеченным.
Еще один важный критерий – производительность: каковы затраты на вычисление контрольной суммы?
К сожалению, сила и производительность редко уживаются, т. е. высококачественную контрольную сумму труднее вычислить.7 698
Принципы построения современных ОС
1. Принцип модульности
Мы говорим о системных программных модулях, которые являются программными ресурсами и могут быть распределены между выполняющимися процессами. Этот принцип отражает технологические и эксплуатационные свойства системы.
2. Принцип параметрической настраиваемости
Возможность учета ОС параметров конфигурации ВС называется параметрической настраиваемостью. ОС должна быть способна распознавать как старые, так новые устройства и обеспечивать их работу.
3. Принцип функциональной избыточности
Принцип функциональной избыточности состоит во включении в состав ОС различных программных средств, выполняющих одну и ту же функцию, но которые в различных ситуациях работают с различной эффективностью.
4. Принцип функциональной избирательности
Принцип функциональной избирательности состоит в возможности учета целей, для которых используется система. Воплощение этого принципа позволяет в зависимости от области применения сгенерировать такой вариант системы, который был бы эффективен в данном конкретном применении.
5. Принцип абстракции и виртуализации
Использование интерфейсов, отделяющие друг от друга уровни абстракции, облегчает независимую разработку аппаратных и программных подсистем силами разных групп специалистов.
7 698
Как собрать данные с сайта в один клик? Для этого существуют специальные программы — парсеры. Создайте парсер за 3 дня на бесплатном онлайн-интенсиве по Python, который проводит Skillbox.
Подробная программа:✍️ https://clc.to/9Et_6g
Каждому зарегистрированному участнику вышлем на почту подборку скриптов на Python, которые пригодятся начинающему разработчику.
На интенсиве вы научитесь автоматически собирать данные с сайтов и работать с форматами данных JSON, HTML, XML, CSV. С нуля напишете программу, которая будет собирать для вас информацию с сайтов и уведомлять через Telegram. Узнаете о профессии Python-разработчика и карьерных перспективах.
Спикер — Михаил Овчинников. 15 лет работает в сфере IT — от стартапов до крупных компаний.
Всем, кто дойдёт до конца интенсива, подарим электронную книгу «Человек + машина» Пола Доэрти и Джеймса Уилсона. Участвуйте, задавайте вопросы и получите сертификат на 10 000 рублей на любой курс Skillbox.
Увидимся в прямом эфире с 22 по 24 августа в 21:00 по московскому времени!
7 698
Программный интерфейс
API (application program interface) - предназначен для программистов и служит для использования в разрабатываемых про- граммах функции ОС.
Для реализации API используется синхронное прерывание. Вызов из программы функции ядра ОС состоит в выполнении прерывания. Предварительно в регистры загружаются параметры и в определённый регистр код функции. При выполнении прерывания управление передается ядру ОС. Функция ядра, обрабатывающая прерывание, анализирует код функции и передает управление функции ОС, определяемой этим кодом.
7 698
Физический уровень модели OSI
Всего в модели сетевого взаимодействия выделяют 7 уровней, рассмотрим первый из них.
Физический уровень — нижний уровень модели OSI.
Описывает способы передачи бит (не пакетов данных) через физические среды линий связи (кабели), соединяющие сетевые устройства.
Битовый поток может быть сгруппирован в кодовые слова или символы и преобразован в физический сигнал.
Один из основных стандартов среди технологий физического уровня – Ethernet.
7 698
Многие топовые видеокурсы уже давно выложили на YouTube бесплатно.
Вот канал, где собирают все найденные – https://t.me/+WXGqXcJFtX4yNTQy
В нем есть материал по абсолютно всем языкам программирования — Не теряйте и подписывайтесь.
7 698
Криптография
В прошлом сохранение информации в тайне в значительной степени опиралось на принцип «безопасность через неясность», предполагающий сокрытие сообщения или отсутствие у противника ключей для его расшифровки.
В основе современной криптографии лежит математика. Мы предпочитаем использовать криптосистему, спроектированную таким образом, что, даже имея копию зашифрованного текста и зная, как именно он был зашифрован, злоумышленник все равно не сможет прочитать сообщение, не зная общего секретного ключа. Наличие этого ключа позволяет расшифровать сообщение и восстановить исходный текст
7 698
Быстрая сортировка
Ей уже 60 лет, но она до сих пор работает быстро.
За основу, была взята классическая сортировка пузырьком и преобразована таким образом:
1. на очередном шаге выбирается опорный элемент — им может быть любой элемент массива
2. Все остальные элементы массива сравниваются с опорным и те, которые меньше него, уставляться слева от него, а которые больше или равны — справа
3. Далее для двух получившихся блоков массива выполняется пункт 1 и 2.
Особенность алгоритма в том, что так как в пункте 3 мы разбиваем массив на два и для каждой части делаем то же самое, и так снова и снова, то это значит, что в нём используется рекурсия.
Сложность по времени:
Худшее время:
O(n^2)
Среднее время: O(n log n)
Лучшее время: O(n)
Затраты на память: O(n)7 698
👾 Этичный хакер - Уроки по хакингу. Канал c инструкциями по взлому, деанону, защите устройств и бесплатными курсами по информационной безопасности.
7 698
Квантовый компьютер — это сравнительно новая модель вычислений, основанная на квантовой механике.
Там, где в классических компьютерах используются биты, которые могут быть равны
0 или 1, в квантовых компьютерах применяются кубиты. Последние существуют в суперпозиции состояний: каждый бит равен 0 и 1 одновременно. Если байт выражает одно значение от 0 до 255, то квантовый байт выражает все 256 значений одновременно. Если прочитать кубиты, то они свернутся в одно состояние. Другими словами, вместо того, чтобы находиться во всех возможных состояниях сразу, они имеют ровно одно значение. При этом нет гарантии, что это значение будет правильным; алгоритм просто манипулирует кубитами так, что при их измерении они с большой вероятностью придут в правильное состояние.7 698
Плюсы и минусы рекурсивных функций
Плюсы:
1. Снижают время выполнения функции
Рекурсия, в сравнении с циклами, тратят меньше времени до завершении функции. Чем меньше строк кода у нас будет, тем быстрее функция будет обрабатывать вызовы внутри себя.
НО
Если функция плохо написана, то мы рискуем переполнить стек, что в конечном счете приведет к снижению скорости и программным ошибкам.
2. Легче отлаживать
Многие согласятся, что эта причина очень важна. Рекурсия проста в отладке из-за того, что она не содержит сложных и длинных конструкций.
Минусы:
3. Занимают много места
Занимают значительный объем памяти во время своего выполнения. При каждом вызове функции в стек будет добавляться новый элемент, который будет занимать место до тех пор, пока функция не завершит работу.
7 698
Data Science | Machinelearning - самый большой русскоязычный канал с полезными материалами на такие темы как, Machine Learning, Data Science, Алгоритмы. Так же часто публикуются крутые 🔥 вакансии.
Ссылка: @devsp
А если вам нравится читать статьи на английском языке то вам на этот канал
Добро пожаловать!
7 698
Сортировка пузырьком
Один из самых известных и простых алгоритмов сортировки. Его суть заключается в просматривании значений соседних элементов, если предыдущий элемент оказывается больше последующего, то меняем их местами.
Этот алгоритм почти не применяется на практике из-за низкой эффективности. Однако на нем основаны многие другие методы.
Сложность по времени:
Худшее время:
O(n^2)
Среднее время: O(n^2)
Лучшее время: O(n)
Затраты на память: O(1)7 698
Все знают, что без элементарных знаний терминологии в айти делать нечего.
Самые опытные IT терминологи создали свой канал, где дают чёткие определения понятиям программирования.
Терминалоджи – самый простой и удобный способ выучить все IT термины и не только.
Подпишись: @it_terms
7 698
Суть кэширования процессора
Так как скорость работы процессора отличается от скорости работы оперативной памяти, то возникают простои и страдает производительность, чтобы этого избежать, появляется маленькая, но быстрая память под названием кэш.
Суть кэширования заключается в сокращении задержек доступа, касающиеся взаимодействия с оперативной памятью.
Кэш память, которая меньше по объему оперативы примерно в 1000 раз, но по скорости работы сопоставима со скоростью работы процессора отлично вписалась в общую модель работы компьютера, ничего при этом не сломав. Вообще кэш по прежнему можно рассматривать, как обычную ОП, только в уменьшенном размере.
И там, и там используется двоичная адресация, хранятся те же самые данные. И к той, и той памяти идет обращение, как на получение данных, так и на их запись.
Логика в том, что если данные будут находится в кэше, а не в оперативе, то это и избавит нас от задержек.
7 698
Сетевая модель OSI
The Open Systems Interconnection model - сетевая модель стека сетевых протоколов OSI/ISO. Посредством данной модели различные сетевые устройства могут взаимодействовать друг с другом. Модель определяет различные уровни взаимодействия систем.
Выделяют 7 уровней взаимодействия:
1. Физический — работа со средой передачи, сигналами и двоичными данными
2. Канальный — физическая адресация
3. Сетевой — определение маршрута и логическая адресация
4. Транспортный — прямая связь между конечными пунктами и надёжность
5. Сеансовый — управление сеансом связи
6. Представления — представление и шифрование данных
7. Прикладной — доступ к сетевым службам7 698
Домены
Имена в DNS (Domain Name System) называются доменными именами или доменами. Они состоят из текстовых меток, разделенных точками. Метки могут использовать 26 букв от а до z, цифры от 0 до 9, а также дефис (-).
Например:
home-3.coding.exemple — это домен с тремя метками.
Точки обозначают иерархические поддомены. Это домены, контролируемые более коротким родительским доменом: home-3.coding.exemple является поддоменом coding.exemple. Кроме того, coding.exemple является поддоменом однокомпонентного домена exemple. Домены нечувствительны к регистру: coding.exemple и CoDing.eXamplE идентичны.
Домены из одной метки, такие как com, net, а также exemple, называются доменами высшего уровня (Top Level Domains, TLDs). Благодаря своему устройству DNS наиболее эффективен при ограниченном количестве TLD. По этой причине создание новых TLD представляет сложность.7 698
Рекурсия
В программирование рекурсия — вызов функции самой себя. Это используется для реализации большого спектра самых разнообразных задач связанных с перебором (перебор чисел, букв, объектов, файлов и тд).
Чтобы понять как работает рекурсия, желательно понимать как работает стек, так как реализация рекурсивных вызовов функций опирается на механизм стека вызовов — адрес возврата и локальные переменные функции записываются в стек, благодаря чему каждый следующий рекурсивный вызов этой функции пользуется своим набором локальных переменных и за счёт этого работает корректно.
Оборотной стороной этого довольно простого по структуре механизма является то, что на каждый рекурсивный вызов требуется некоторое количество оперативной памяти компьютера, и при чрезмерно большой глубине рекурсии может наступить переполнения стека вызовов.
7 698
Динамическая структура данных — Односвязный список
Односвязный список - это динамическая структура данных, состоящая из узлов. Каждый узел будет иметь некоторое значение и указатель на следующий узел.
При использовании связного списка элементы размещаются где угодно в памяти. И так как в каждом элементе хранится адрес следующего элемента списка, то набор произвольных адресов памяти объединяется в цепочку.
Связные списки очень хорошо справляется со вставкой. Чтобы добавить новый элемент в список, просто разместите его по любому адресу и сохраните этот адрес в предыдущем элементе. Со связными списками ничего в памяти перемещать не нужно.
Время выполнения основных операций:
Чтение -
O(n)
Вставка - O(1)
Удаление - O(1)7 698
Виды адресаций
В оперативной памяти каждый набор ячеек (байт) имеет свой адрес, по которому процессор может к нему обращаться.
Из-за того, что каждый байт имеет свой отдельный адрес, такой вид адресации называется — байтовый.
Но существуют компьютеры, у которых размер одной ячейки памяти равняется машинному слову — это максимальное кол-во бит, которыми может оперировать процессор за раз. То есть в 32-х разрядных процессорах размер регистров и размер машинного слова будет равен 32 бита, а в 64-х — 64 бита и тд (такие компьютеры предназначены для научных целей). Из-за того, что процессор обращается не к байту, а к слову, то такая адресация называется словесной адресацией.
