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

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

1

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

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

2

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

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

3

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

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

4

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

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

5

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

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

Логотип ДевстанцииАвторизуйтесь, чтобы просматривать следующий контент
7

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
8

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
9

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
10

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
11

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
12

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
13

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

Логотип ДевстанцииАвторизуйтесь, чтобы получить доступ
Хотите стать частью сообщества Девстанции?
Вступайте в наш чат в Telegram

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

Вопросник
  11 вопросов

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

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

653 просмотра
От 12 октября 2023
Вопросник
  13 вопросов

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

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

500 просмотров
От 7 октября 2023
Вопросник
  28 вопросов

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

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

616 просмотров
От 7 октября 2023
Вопросник
  15 вопросов

Вопросы с собеседований по DDD

Ответы на вопросы про Domain-Driven Design

572 просмотра
От 4 июня

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

Вопросник
  60 вопросов

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

Ответы на вопросы с собеседований по БД и SQL

880 просмотров
От 4 июня
Вопросник
  7 вопросов

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

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

515 просмотров
От 12 октября 2023
Вопросник
  11 вопросов

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

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

557 просмотров
От 10 октября 2023
Вопросник
  10 вопросов

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

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

576 просмотров
От 8 октября 2023

Топ тредов

: Предложите идею и получите спонсорский доступ на месяц

Последнее сообщение:
: Ой, не увидела. Круто, спасибо!
8 сообщений
185 просмотров

: Можно добавить таймер на решение задач

Последнее сообщение:
: да, с момента открытия и до успешных тестов. Чтобы трекать время выполнения )
3 сообщения
116 просмотров

Gravatar for 253malvina
Malvina
: Добавьте angular раздел

Последнее сообщение:
: Раздел открыт!
3 сообщения
137 просмотров

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