1. Trang chủ
  2. » Công Nghệ Thông Tin

IT training 20110314 01 yaCIT lecture os intro

41 38 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 41
Dung lượng 714,19 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Что приложения хотят от ОС?Абстракцию оборудования Координацию совместной работы с устройствамиИзоляцию сбойных приложений Обмен между приложениями... Что плохо в этом примере?... Вызов:

Trang 1

Операционные системы

В иктор Ашик

Куратор практик

Trang 2

#yakit

Trang 4

Какие ОС вы знаете?

Trang 5

Сколько ОС у меня в телефоне?

Trang 6

1969 (AT&T/Bell Labs: Томпсон, Керниган, Ритчи)Распространялась свободно

Стандарт де-факто и де-юро (POSIX)

AIX, Solaris, Mac OS X/FreeBSD/NetBSD/OpenBSD —генетически UNIX®

Linux, Minix — реализации

Trang 8

Что приложения хотят от ОС?

Абстракцию оборудования

Координацию совместной работы с устройствамиИзоляцию сбойных приложений

Обмен между приложениями

Trang 9

Как устроена ОС?

Trang 11

int 0x80 ;call kernel

mov eax,1 ;system call number (sys_exit) int 0x80 ;call kernel

section data

msg db 'Hello, world!',0xa

len equ $ - msg

Trang 12

Что плохо в этом примере?

Trang 14

Как это записать на C?

ABI - syscalls

#include <unistd.h>

/* */

const char msg[] = "Hello world";

write( STDOUT_FILENO, msg, sizeof( msg ) - 1 );

Trang 15

ltrace

strace

Trang 16

Shell: /bin/*sh

Интерпретатор команд *nix

While (1) {

write (1, "$ ", 2);

readcmd (cmd, args); // parse user input

if ((pid = fork ()) == 0) { // child?

exec (cmd, args, 0);

} else if (pid > 0) { // parent?

wait (0); // wait for child to terminate } else {

perror ("fork");

}

Trang 18

– PID

Trang 19

Вызов: exec

Замещает содержимое памяти

вызвавшего процесса инструкциями и данными из файла на диске

То есть исполняет файл

Процесс остается тем же (сохраняет pid, uid, …)

Trang 23

Зачем? Так проще писать приложения

*nix, Windows NT

Trang 24

Пример: виртуализация ЦПУ

Цель: эмулировать отдельный ЦПУ для каждого процесса

Trang 25

Пример: виртуализация ЦПУ

Как это достигается?

– ОС сохраняет и восстанавливает состояние (контекст) ЦПУ при каждом переключении

Что сохраняется?

– Регистры, флаги, указатели на таблицы виртуальной памяти

Где сохраняется?

– В таблице процессов

Trang 26

vmstat

cat /proc/1/status

ps

Trang 27

Сколько у процесса может быть

состояний?

man ps

/STATE

Trang 29

– При обращении к такой странице возникает прерывание и страницу можно

Trang 30

vmstat

cat /proc/swaps

swapon -s

Trang 33

– Планировщик ЦПУ в ядре

Trang 36

– Гарантировать исполнение запросов не позднее крайнего срока

Trang 39

Main memory reference 100

Compress 1KB bytes with Zippy 3,000

Send 2K bytes over 1 Gbps network 20,000

Read 1MB sequentially from memory 250,000

Roundtrip within same datacenter 500,000

Disk seek 10,000,000

Trang 40

Производительность в числах

Operation Time (nsec)

System call overhead 400

Context switch between processes 3000

fork() (statically-linked binary) 70,000

fork() (dynamically-linked binary) 160,000

Ngày đăng: 05/11/2019, 13:22