255 просмотров
От 27 января

Потоки, процессы, конкурентность и прочие понятия из мира ОС

1. Что такое многозадачность (multitasking)?

Многозадачность (multitasking) — свойство операционной системы или среды выполнения обеспечивать возможность параллельной (или псевдопараллельной)) обработки нескольких задач. Истинная многозадачность операционной системы возможна только в распределённых вычислительных системах. Существует 2 типа многозадачности: - Процессная многозадачность (основанная на процессах — одновременно выполняющихся программах). Здесь программа — наименьший элемент управляемого кода, которым может управлять планировщик операционной системы. Более известна большинству пользователей (работа в текстовом редакторе и прослушивание музыки). - Поточная многозадачность (основанная на потоках). Наименьший элемент управляемого кода — поток (одна программа может выполнять 2 и более задачи одновременно).

2. Что такое процесс (process)?

Процесс — экземпляр программы во время выполнения, независимый объект, которому выделены системные ресурсы (например, процессорное время и память). Каждый процесс выполняется в отдельном адресном пространстве: один процесс не может получить доступ к переменным и структурам данных другого. Если процесс хочет получить доступ к чужим ресурсам, необходимо использовать межпроцессное взаимодействие. Это могут быть конвейеры, файлы, каналы связи между компьютерами и многое другое.

3. Что такое поток (thread)?

Поток использует то же самое пространства стека, что и процесс, а множество потоков совместно используют данные своих состояний. Как правило, каждый поток может работать (читать и писать) с одной и той же областью памяти, в отличие от процессов, которые не могут просто так получить доступ к памяти другого процесса. У каждого потока есть собственные регистры и собственный стек, но другие потоки могут их использовать. В Linux (в ядре) понятие «threads» отсутствует. С точки зрения ядра все потоки — это полноценные, отдельные, процессы (просто с общим адресным пространством)

4. Что такое конкурентность (concurrency)?

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

5. Что такое параллельное исполнение?

Поддержите проект и получите доступ ко всему контенту всего за 290

6. Что такое многопоточность (multithreading)?

Поддержите проект и получите доступ ко всему контенту всего за 290

7. Что такое асинхронное исполнение?

Поддержите проект и получите доступ ко всему контенту всего за 290

8. Что такое CPU-bound и IO-Bound операции?

Поддержите проект и получите доступ ко всему контенту всего за 290

9. Что такое состояние гонки (race condition)?

Поддержите проект и получите доступ ко всему контенту всего за 290

10. Что такое совместная или кооперативная многозадачность?

Поддержите проект и получите доступ ко всему контенту всего за 290

11. Что такое вытесняющая (приоритетная) многозадачность?

Поддержите проект и получите доступ ко всему контенту всего за 290

12. Что такое системный вызов (system call)?

Поддержите проект и получите доступ ко всему контенту всего за 290
Хотите стать частью сообщества Девстанции?
Вступайте в наш чат в Telegram

Также в этой категории

Шпаргалка
  11 вопросов

HTTP, SSL, WebSocket и прочее

Вопросы для собеседования бэкенд-разработчика

301 просмотр
От 12 октября 2023
Шпаргалка
  13 вопросов

Общие принципы и понятия ООП

Вопросы для собеседования по теме ООП

254 просмотра
От 7 октября 2023
Шпаргалка
  28 вопросов

Паттерны проектирования с примерами

Раскрытие на примерах почти всех паттернов проектирования

320 просмотров
От 7 октября 2023
Шпаргалка
  15 вопросов

Шпаргалка по Domain-Driven Design

Вопросы и ответы про предметно-ориентированное проектирование

234 просмотра
От 27 января

Вам может быть интересно

Шпаргалка
  10 вопросов

Всё о репликации баз данных

Описание понятий и процессов репликации БД

267 просмотров
От 8 октября 2023
Шпаргалка
  7 вопросов

Коллекция полезных команд для Docker

Большая шпаргалка по всем командам Docker

262 просмотра
От 12 октября 2023
Шпаргалка
  11 вопросов

Теория шардинга баз данных

О распределении данных между серверами

313 просмотров
От 10 октября 2023
Шпаргалка
  60 вопросов

60 вопросов про базы данных и SQL

Вопросы и ответы с собеседования по базам данных и SQL

411 просмотров
От 20 февраля

Топ тредов

Gravatar for 9tokio
Tokio:
то что раньше было бесплатным теперь платное - вот это я понимаю

Последнее сообщение:
Логотип Девстанции
Девстанция:
Спасибо за поддержку проекта :) Повышение качества контента - один из важнейших приоритетов. Этому м...
3 сообщения
266 просмотров

Логотип Девстанции
Девстанция:
Поиск людей для совместной разработки IT-стартапов

Последнее сообщение:
В этом треде пока нет сообщений
0 сообщений
139 просмотров

Логотип Девстанции
Девстанция:
Какой язык программирования выбрать в качестве первого?

Последнее сообщение:
Gravatar for 2kokke
Kokke:
Python или JS - универсально. Но по уму надо бы с чего-то строгого начинать и достаточно низкоуровне...
1 сообщение
175 просмотров

Все категории