es
Feedback

¡No caigas en manos de tramposos! Telemetrio encuentra y marca estos canales 👉 Si quieres ver la etiqueta, suscríbete

Computer Science

Computer Science

Ir al canal en Telegram

По всем вопросам: @altmainf Уважаемый менеджер: @altaiface

Mostrar más
7 698
Suscriptores
-224 horas
-247 días
-6930 días
Archivo de publicaciones
Согласно Таненбауму, вычислительную систему можно представить в виде ряда уровней абстракции. Каждому уровню соответствует свой язык, программы на котором путём компиляции или интерпретации переводятся на язык нижележащего уровня. Большинство современных систем включает шесть уровней: - уровень языка прикладных программистов; - уровень ассемблера; - уровень операционной системы; - уровень архитектуры команд; - микроархитектурный уровень; - цифровой логический уровень. Над этой иерархией языков находится прикладной программист и воплощаемый им алгоритм; под цифровым логическим уровнем - физическая элементная база. Современная шестиуровневая структура сформировалась далеко не сразу и не является пределом развития. Примитивные счётные устройства (абак, суанпан, русские счёты) рассчитаны на взаимодействие человека напрямую с элементной базой. Развитие вычислительной техники и программной инженерии ведёт к постепенному наращиванию уровней абстракции.

Кэш Состоит из двух частей: контроллер (управляет кэш-памятью) и саму кэш-память. Чтение и запись в ОП происходит сразу целыми пакетами данных, которые могут состоять из нескольких машинных слов. Такой объем информации процессор не может напрямую поместить в свой регистр, поэтому данные сохраняются в кэше, как в некотором промежуточном хранилище. Так как оставлять кэш пустым хотя бы частично нерационально, поэтому на протяжении всей работы, он всегда будет заполнен различными данными. Когда процессор формирует запрос на получение данных, он перехватывается контролером, который определяет, имеется ли копия требуемых данных в кэше, если они есть, то данные, минуя оперативу, передаются процессору, если их нет, запрос передается ОП. Измененные данные записываются обратно в кэш, где в один прекрасный момент они будут выгружены обратно в оперативу, на то место, где эти данные располагались.

Сортировки вставками Сортировки вставками — простой алгоритм сортировки. Общая суть сортировок в том, что перебираются элементы в неотсортированное части массива, а потом каждый элемент вставляется в отсортированную на то место, где он должен находится (стоит отметить что массив из 1-го элемента считается отсортированным). Таким образом, сортировки вставками всегда делят массив на две части — отсортированную и неотсортированную. Самое слабое место в этом подходе — вставка элемента в отсортированную часть массива. Существует много разных подходов, чтобы выполнить этот шаг:  ⁃ сортировка простыми вставками  ⁃ сортировка простыми вставками с бинарным поиском  ⁃ Парная сортировка простыми вставками  ⁃ сортировка Шелпа  ⁃ сортировка деревом Сложность по времени будет отличаться в зависимости от выбранного подхода.

Постоянное запоминающее устройство – элемент электронной вычислительной техники, обеспечивающий эффективное хранение массива неизменяемых данных пользователя. ПЗУ – энергонезависимая память. Такое устройство менее быстродействующее, чем ОЗУ, но способное хранить большой объем информации. ПЗУ можно только считывать. Как правило, ПЗУ применяют для начальной загрузки компьютера. В ПЗУ хранятся специальные инструкции, которые управляют в момент включения питания работой компьютера и посылают сигналы (инструкции) для его дальнейшей работы. В современных ПК в качестве ПЗУ используется HDD/SSD емкостью около сотни миллиардов машинных слов. ОЗУ и ПЗУ имеют адресную организацию. Доступ к их ячейкам памяти для записи и чтения информации осуществляется с помощью многоразрядного адреса, воздействующего на групповое управление.

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

⁉️К чему нужно быть готовым дата-инженеру в новых реалиях? 🚀Присоединяйтесь 6 сентября в 20:00 мск на бесплатный вебинар «Да
⁉️К чему нужно быть готовым дата-инженеру в новых реалиях? 🚀Присоединяйтесь 6 сентября в 20:00 мск на бесплатный вебинар «Дата инженер и Spark в новых реалиях». 📚На открытом уроке разберем: - Как изменятся источники и получатели данных, объемы данных, языки для ETL, кластера, облака и IDE. - Насколько будут востребованы дата-инженеры на рынке труда и к чему нужно быть готовым. - Open source технологии и примеры миграционных проектов. 👉Регистрация на вебинар: https://otus.pw/TURy/ Вебинар является частью онлайн-курса «Spark Developer» для дата-инженеров с опытом от OTUS.

Состав программного обеспечения вычислительной системы (ВС) Индивидуальные программы – программы, которые пишут для личных целей (проверка или иллюстрация какого-то метода, расчет каких-то значений и тд) Прикладные программы – это рыночный продукт, который производится и распространяется в соответствии с существующими законами и нормами.  Программы технического обслуживания – служат для управления и обслуживания аппаратной части ВС.  Обрабатывающие программы – программы, которые выполняют различные вспомогательные функции, связанные с ведением журналов событий, поддержкой различных протоколов и другие действия.  Управляющая программа – ее часто называют ядром системы. Ядро ОС как правило реализует функции управления основной памятью, процессами, устройствами, вводом/выводом, файлами.

Как войти в IT с нуля? Получите бесплатно навыки программиста на курсе от GeekBrains за 7 дней! Вы напишите свою первую прогр
Как войти в IT с нуля? Получите бесплатно навыки программиста на курсе от GeekBrains за 7 дней! Вы напишите свою первую программу абсолютно без подготовки: https://clc.to/wjtezA Подойдет для тех, кто хочет: 1. Попробовать себя в IT с нуля. 2. Сменить профессию. 3. Работать в перспективной сфере. 4. Начать зарабатывать удаленно/на фрилансе. После регистрации вам откроются: ● Доступ к эксклюзивным лекциям по основам программирования с платной  программы обучения ● Мастер-класс по созданию первой программы на Python ● Карьерные лекции про рынок IT, смену профессии, трудоустройство Регистрируйтесь по ссылке:  https://clc.to/wjtezA

Когда следует использовать язык ассемблера Программисты, которые пишут код на языке ассемблера, говорят, что у такого подхода есть три преимущества. Первые два очевидны: код занимает меньше места и работает быстрее. Третье не столь очевидно: если в коде есть ошибка, то она, как правило, приводит к катастрофическому сбою. На первый взгляд это не кажется преимуществом, однако сразу дает понять, что вы сделали что-то не так. В подавляющем большинстве случаев проще работать на высокоуровневом языке. Язык ассемблера стоит использовать при работе со встроенными системами с ограниченной вычислительной мощностью, особенно когда экономия места позволяет задействовать более дешевые процессоры. В случае создания крупномасштабных приложений экономия на процессорах может более чем компенсировать дополнительное время разработчика. Например, программы DSP (цифровой обработки сигналов) часто пишутся на языке ассемблера.

Point-to-Point протоколы (PPP) PPP уникален по своим функциям, он применяется для коммуникации между двумя маршрутизаторами без участия хоста или какой-либо сетевой структуры в промежутке. При необходимости, PPP обеспечивает аутентификацию, шифрование, а также сжатие данных. У PPP есть два подвида — PPPoE (PPP по Ethernet) и PPPoA (PPP через асинхронный способ передачи данных — ATM). PPP формально относится к межсетевому уровню TCP/IP, но в силу особого принципа работы, иногда выделяются в отдельную категорию. Преимущество PPP в том, что для установки соединения не требуется сетевая инфраструктура, а необходимость маршрутизаторов отпадает. Эти факторы обуславливают специфику использования PPP протоколов.

Виды рекурсии  Существует два вида рекурсии, так называемая головная и хвостовая (иногда головную рекурсией называют просто рекурсией). Рекурсия будет "хвостовой", если рекурсивный вызов будет последним действием функции перед возвратом результата.  Использование хвостовой рекурсии позволяют некоторым компилятор автоматически выполняет преобразование рекурсии в итерацию. Хвостовая рекурсия часто применяется в программах на функциональных языках программирования. Многие вычисления на таких языках естественно выражать в виде рекурсивных функций, а возможность автоматической замены транслятором хвостовой рекурсии на итерацию означает, что по вычислительной эффективности она равна эквивалентному коду, записанному в итеративном виде.

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

По-хорошему, безопасный сайт не позволит вам восстановить утерянный пароль, поскольку никогда его не сохраняет. Вместо этого он объединяет пароль с так называемой солью (уникальной для каждого пользователя секретной строкой), хеширует полученное значение и сохраняет хешированное значение. Таким образом, даже если база данных паролей будет скомпрометирована, злоумышленнику все равно придется взламывать каждый пароль по отдельности.

Оперативное запоминающее устройство – быстродействующее оперативное запоминающее устройство. В ОЗУ хранится вся информация, необходимая для работы компьютера в данный момент времени. После выключения питания информация, содержащаяся в ОЗУ, пропадает. Информацию ОЗУ можно не только считывать, но и записывать. Скорость работы ОЗУ прямо влияет на производительность всей компьютерной системы в целом. Физически ОЗУ выполняется в виде отдельных модулей, которые устанавливаются в специальные разъемы (слоты) материнской платы. Решение многих задач требует памяти большой емкости для хранения необходимого количества информации. Поэтому ЭВМ обычно помимо ОЗУ емкостью в несколько тысяч или десятков тысяч слов содержит ПЗУ, способное хранить миллионы машинных слов.

Этапы процесса компиляции: 1. Предварительная проверка. Исходная программа обрабатывается путём подстановки имеющихся макросов и заголовочных файлов. 2. Лексический и синтаксический анализ. Программа преобразовывается в цепочку лексем, а затем во внутреннее представление в виде дерева. 3. Семантический анализ. Дерево разбора обрабатывается с целью установления его семантики (смысла) — например, привязка идентификаторов к их декларациям, типам, проверка совместимости, определение типов выражений и т. д. Результат обычно называется «промежуточным представлением/кодом», и может быть дополненным деревом разбора, новым деревом, абстрактным набором команд или чем-то ещё, удобным для дальнейшей обработки. 4. Оптимизация. Внутреннее представление программы неоднократно преобразовывается с целью сокращения размера и времени исполнения программы. 5. Генерация кода. Внутреннее представление преобразовывается в блоки команд процессора, которые преобразовываются в объектный код. 6. Сборка. Компоновщик соединяет несколько объектных файлов в исполняемый файл или библиотеку.

IT образование в 2022 стало бесплатным!  Шпаргалки, справочники, статьи и гайды топовых вузов страны тут: https://t.me/code_guru

Сортировка выбором Идея сортировок выбором в том, что в неотсортированном подмассиве ищется локальный максимум(минимум), потом найденный максимум (минимум) меняется местами с последним (первым) элементом в подмассиве, и если в массиве остались неотсортированные подмассивы, то процедура повторяется. Сортировка простым выбором представляет из себя грубый двойной перебор.  Сложность по времени: Худшее время: O(n^2) Среднее время: O(n^2) Лучшее время: O(n^2) Затраты на память: O(1) вспомогательной, O(n) основной Можно провести несколько модификаций и получим двухстороннюю сортировку выбором.  Похожая идея используется в сортировке перемешиванием. Проходя по неотсортированной части массива, мы кроме максимума также находим и минимум. Минимум ставим на первое место, максимум на последнее.  Может показаться, что это ускоряет алгоритм в 2 раза, но это не так, т.к. в этом случае кол-во сравнений увеличилось в два раза. Двойной выбор лишь незначительно увеличивает скорость алгоритма

Канальный уровень модели OSI (2) Data link layer предназначен для обмена данными между узлами, находящимися в том же сегменте локальной сети, путем передачи специальных блоков данных, которые называются кадрами (frame). В процессе формирования кадров данные снабжаются служебной информацией (заголовком), необходимой для корректной доставки получателю, и, в соответствии с правилами доступа к среде передачи, отправляются на физический уровень. На уровне условно выделяют следующие подуровни управления: ⁃ уровень управления логическим каналом (logical link control, LLC) ⁃ уровень доступа к среде (media access layer, MAC) Устройствами второго уровня считаются мосты и коммутаторы.

Какого размера может быть кэш-память? Чтобы кэш-память можно было полностью заполнить, ее размер должен быть кратен степени числа 2, по тем же причинам что и оперативная память. Это касается и кэш строк, поэтому например кэш-память размером в 14 байт, не удасться полностью заполнить кэш-строками по 4 байта Размер кэша, о котором мы говорим, называется полезный размер кэша. Именно он и указывается в документации, то есть это размер без указания служебных данных, которые тоже будут храниться в кэш-памяти. Поэтому полный размер кэша складывается из самих данных, которые записываются в него из оперативной памяти + различные служебные данные.

Сортировка расческой Сортировка расческой — улучшенная версия сортировки пузырьком.  Проблема пузырьковой сортировки в том, что если в массиве в начале будет много больших элементов, то в ходе алгоритма будет очень много перестановок, которые тормозят скорость работы алгоритма. Чтобы уменьшить их кол-во, можно перекидывать элементы не на соседнее место, а подальше. Но отправлять каждый большой элемент в конец массива очень самонадеянно, т.к. мы не знаем на сколько он большой по сравнению с другими, поэтому в сортировке расческой сравниваются элементы, которые находятся на каком-то расстоянии друг от друга. Опытным путём программисты установили оптимальное расстояние между элементами — это длина массива, поделённая на 1,247 Сложность по времени: Худшее время: O(n^2) Среднее время: O(n^2 / 2^p), где p - кол-во инкрементов Лучшее время: O(n log n) Затраты на память: O(1)