112 lines
4.7 KiB
Markdown
112 lines
4.7 KiB
Markdown
# Лабораторная работа 0. Подготовка окружения
|
|
|
|
**Время на работу:** 1 пара. **Оценка:** зачёт/не зачёт.
|
|
|
|
## Цель работы
|
|
|
|
Подготовить рабочее окружение и убедиться, что все механизмы параллельного
|
|
программирования доступны на вашей машине — до того, как вы начнёте основную
|
|
лабораторную.
|
|
|
|
## Теория (минимум)
|
|
|
|
### Виртуальное окружение (venv)
|
|
|
|
Виртуальное окружение — изолированная папка с собственной копией Python и
|
|
своим набором библиотек. Оно нужно, чтобы зависимости курса не конфликтовали
|
|
с другими проектами. Активированное окружение видно в терминале по префиксу
|
|
`(.venv)`.
|
|
|
|
### Почему не Google Colab / онлайн-интерпретаторы
|
|
|
|
Параллельность — это про реальные ядра CPU и реальную ОС. В облаке вы не
|
|
получите ни честного числа ядер, ни контроля над фоновыми процессами, ни
|
|
Windows-специфики `spawn`. Работаем локально.
|
|
|
|
### Модель памяти Python: всё передаётся по ссылке
|
|
|
|
В Python переменные — ссылки на объекты. Для потоков это значит: **все потоки
|
|
одного процесса видят одни и те же объекты** — отсюда гонки данных (лаба 5).
|
|
Для процессов это значит: **каждый процесс получает свою копию данных**
|
|
(через pickle) — отсюда накладные расходы (лаба 4).
|
|
|
|
## Задание
|
|
|
|
### Шаг 1. Установите Python 3.10+
|
|
|
|
Windows: python.org → Downloads → «Windows installer (64-bit)».
|
|
**Обязательно** отметьте «Add python.exe to PATH» на первом экране установщика.
|
|
|
|
Проверка (новое окно терминала):
|
|
|
|
```bat
|
|
python --version
|
|
```
|
|
|
|
### Шаг 2. VS Code
|
|
|
|
Установите VS Code и расширение **Python** (издатель Microsoft). Откройте
|
|
папку курса: File → Open Folder. Терминал: Terminal → New Terminal
|
|
(или `` Ctrl+` ``).
|
|
|
|
### Шаг 3. Виртуальное окружение и зависимости
|
|
|
|
В терминале VS Code **из корня курса**:
|
|
|
|
```bat
|
|
python -m venv .venv
|
|
.venv\Scripts\activate
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
macOS/Linux: `source .venv/bin/activate`.
|
|
|
|
Если VS Code спросит интерпретатор — выберите `.\.venv\Scripts\python.exe`.
|
|
|
|
### Шаг 4. Git (кратко, если ещё не знакомы)
|
|
|
|
```bat
|
|
git init
|
|
git add .
|
|
git commit -m "lab 0: окружение готово"
|
|
```
|
|
|
|
Дальше фиксируйте прогресс коммитами — это история вашей работы (и аргумент
|
|
в спорах о списывании).
|
|
|
|
### Шаг 5. Проверка окружения
|
|
|
|
```bat
|
|
python lab00_intro\check_env.py
|
|
```
|
|
|
|
Скрипт проверит версию Python, наличие библиотек, число ядер CPU и работоспособность
|
|
потоков, процессов и asyncio. Все проверки должны быть `[OK]`.
|
|
|
|
### Шаг 6. Свой вариант
|
|
|
|
```python
|
|
from common.tasks import get_variant
|
|
print(get_variant(<ваш номер в журнале>))
|
|
```
|
|
|
|
Запишите параметры — они понадобятся во всех следующих лабораторных.
|
|
|
|
## Контрольные вопросы
|
|
|
|
1. Зачем нужно виртуальное окружение? Что произойдёт, если его не создавать?
|
|
2. Чем процесс отличается от потока? (Подсказка: общая память.)
|
|
3. Почему для этого курса важна работа на локальной машине, а не в облаке?
|
|
|
|
## Что сдаётся
|
|
|
|
- Скриншот вывода `check_env.py` (все проверки `[OK]`);
|
|
- короткий ответ на контрольные вопросы (можно в чате при сдаче).
|
|
|
|
## Критерии зачёта
|
|
|
|
| Пункт | Баллы |
|
|
|---|---|
|
|
| Окружение развёрнуто, check_env.py всё `[OK]` | 1 |
|
|
| Ответы на контрольные вопросы | 1 |
|