Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy...

141
Toruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Transcript of Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy...

Page 1: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Toruń, 2006

Zbigniew S. SzewczakSystemy Operacyjne

Wykład 2Jądro systemu. Zarządzanie procesami.

Page 2: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

O czym będzie?

✦ Architektury systemów operacyjnych✦ Rozruch systemu✦ Budowanie jądra systemu

✦ Koncepcja procesu✦ Planowanie procesów✦ Działania na procesach✦ Komunikacja międzyprocesowa✦ Wątki

Page 3: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Struktura systemów operacyjnych

✦ System zarządzania zadaniami (procesami)✦ System zarządzania pamięcią operacyjną✦ System zarządzania plikami✦ System zarządzania wejściem-wyjściem✦ Sieciowy system operacyjny✦ System ochrony ✦ System interpretacji poleceń✦ Generacja systemu

Page 4: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Współczesne systemy operacyjne

✦ Cechy wspólne✦ architektura mikrojądra- zawiera jedynie niezbędne funkcje ✦ architektura monolityczna✦ wielowątkowość

✦ proces (zadanie) składa się z wątków✦ SMP✦ (pod)system sieciowy✦ systemy grafiki (GUI) i wydruku

✦ Windows: 2K/XP/2K3✦ Unix: Solaris 2.x,5.x, 4.4BSD, Linux✦ Maszyny wirtualne: JavaVM, VMware, Virtual PC, UML

(User Mode Linux), Xen

Page 5: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Warstwy a mikrojądro

sprzęt sprzęt

mikrojądro

pamięć wirtualna

zarządzanie we/wy

komunikacja IPC

systemy plików

użytkownicy

zarządzanie procesami

proc

es k

lient

a

pam

ięć

wirt

ualn

a

serw

er p

roce

sów

serw

er p

lików

mod

uły

ster

ując

e

tryb

jądra

tryb

użytkownika

Page 6: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Struktura jądra systemu Unix

interfejs funkcji systemowych

bibliotekiwarstwa użytkownika

warstwa jądra

program użytkownika pułapka

interfejs sprzętu

sprzęt

warstwa jądrawarstwa sprzętu

podsystem plików

moduły sterujące

znakowe blokowe

podsystem zarządzania procesami

komunikacja międzyprocesowa

planista przydziałuprocesora

zarządzaniepamięcią

cache (bufory)

Page 7: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Windows NT/XP - hybrydowa struktura klient - serwer

aplikacja Win32

aplikacja OS/2

aplikacja POSIX

serwer Win32

serwer OS/2

serwer POSIX

jądro jądro

Page 8: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Windows XP

sprzęt

warstwa abstrakcji sprzętu (HAL)

jądro

zarządcaobiektów

monitor bezpieczeństwa

odniesień

zarządcaprocesów

zarządcaautomatycznego

instalowania

zarządcapamięci

wirtualnejzarządca

okien

udogodnieniawywołaniaprocedurlokalnych

modułysterująceurządzeńgraficznych

system plikówzarządca pamięci

podręcznejmoduły obsługi

urządzeńmoduły obsługi

siecii

podsystemWin32

podsystem POSIX

podsystem OS/2

podsystem bezpieczeństwa

proceslogon

Win16VDM

MS-DOSVDM

pakietuwierzytelniania

baza danychzarządcy bezpie-czeństwa kont

aplikacjesystemu OS/2

aplikacjesystemu Win16

aplikacjesystemu Win32

aplikacjesystemu MS-DOS

aplikacjesystemu POSIX

zarządca wejścia-wyjścia

tryb jądra

tryb użytkownika

egzekutor

Page 9: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Maszyny wirtualne

✦ Maszyna wirtualna (ang. virtual machine) jest logiczną konsekwencją podejścia warstwowego: jądro systemu jest traktowane jako sprzęt. ✦ IBM VM/370, JavaOS (JVM), Tryb MS-DOS, Cygwin,

VMware, Virtual PC 2004, Bochs (http://bochs.sf.net/), UML (http://user-mode-linux.sf.net/ ), XEN (http://www.cl.cam.ac.uk/Research/SRG/netos/xen)

✦ Maszyna wirtualna dostarcza identycznego interfejsu dla sprzętu

✦ System operacyjny tworzy wirtualne systemy komputerowe, każdy proces ma do dyspozycji własne (wirtualne) jądro, dyski, pamięć, drukarki

Page 10: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Maszyny wirtualne (c.d.)

✦ Zasoby fizycznego komputera są dzielone w celu utworzenia maszyn wirtualnych✦ planowanie przydziału procesora jest tak wykorzystane, że

użytkownik ma wrażenie jakoby miał do dyspozycji własny procesor

✦ spooling i system zarzadzania plikami jest wykorzystany tak, że powstaje wrażenie użytkowania drukarki, czytnika na wyłączność

✦ zwykłe terminale użytkownika funkcjonują jak konsole operatorskie maszyny wirtualnej ( system interakcyjny CMS)

Page 11: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Model awirtualny a wirtualnymaszyna awirtualna maszyna wirtualna

jądro

sprzęt

proces B

proces Ajądro

sprzęt

proces B

proces A

jądro

proces D

proces C

jądro

proces F

proces E

VM1 VM2 VM3

implementacja maszyny wirtualnej

interfejs programowy

Page 12: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykład - Virtual PC 2004

✦ aplikacja na system Windows✦ deklaracja ilości pamięci RAM ✦ kreator wirtualnego hdd, fdd✦ podłączanie rzeczywistych urządzeń : CD, FD,

COM, LPT✦ karta sieciowa: Microsoft Loopback ✦ prawy Alt do zmiany ekranu

Page 13: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Virtual PC - VM W98

Page 14: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Start systemu - Booting

✦ Rozruch systemu (ang. bootstrapping,booting) - mały fragment kodu, przechowywany w ROM, określany jako program rozruchowy (ang. bootstrap program) lub elementarny program ładujący (ang. bootstrap loader)

✦ Program ładujący jest w stanie zlokalizować kod jądra systemu, wprowadzić go do pamięci i rozpocząć jego wykonanie✦ dwuetapowy program ładujący sprowadza do pamięci bardziej złożony

program ładujący, który powoduje załadowanie jądra systemu

Page 15: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Start jądra systemu - Unix

✦ Pierwszy sektor na dysku (ang. Master Boot record, MBR) zawiera program boot, który zostaje wczytany do pamięci

✦ Uruchomiony zostaje program boot, który✦ relokuje się aby zwolnić początkowe adresy pamięci na

jądro systemu✦ czyta katalog root na dysku✦ wczytuje jądro systemu✦ przekazuje sterowanie jądru systemu

✦ asemblerowy kod inicjujący jądra systemu

Page 16: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykłady

✦ OS/MVT - Initial Program Load (IPL)✦ ręczne ustawienie adresu

✦ MS/DOS - LOADLIN.EXE ✦ SYSLINUX✦ LiLo - Linux Loader✦ GRUB - GRand Unified Bootloader

✦ www.gnu.org/software/grub/✦ Linux+Win9x+Grub-HOWTO

✦ Projekt PUPA = GRUBng✦ www.nognu.org/pupa/

Page 17: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Edytor vi

✦ Tryby✦ i - insert; a - append; o - open; ✦ Esc - wyjście z i/a/o do trybu komend (np. :q);

✦ Edycja✦ x - usuń znak; dw - usuń słowo; dd - usuń linię;✦ nyy - wytnij n linii do bufora; P/p - wstaw z bufora przed/po;✦ :w - zapisz; :q - zakończ; :wq - zapisz i zakończ; ✦ u - undo; :r file - wstaw file; :!cmd - wykonaj cmd; ✦ :1,$s/abcd/efgh/g - zamień abcd na efgh w liniach 1,$;✦ 1G - początek; G - koniec; Ctrl f /b - ekran następny/poprzedni;✦ 0/$ - początek/koniec linii; w/b - następne/poprzednie słowo;✦ /abcd - znajdź abcd; Ctrl L - odśwież ekran;

Page 18: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - GRUB

✦ GRUB - instalacja✦ /sbin/grub-install /dev/hda

✦ Dodanie nowego jądra✦ cd /usr/src/linux/arch/i386/boot✦ cp bzImage /boot/bzImage-2.4.23✦ cp /usr/src/linux/System.map /boot/System.map-2.4.23✦ cd /boot✦ ln -sf System.map-2.4.23 System.map✦ cd /boot/grub✦ cp -av grub.conf grub.conf.old✦ vi grub.conf

✦ dodajemy bzImage-2.4.23

Page 19: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - GRUB (c.d.)

✦ Dodanie nowego jądra (c.d.)✦ dodajemy bzImage-2.4.22 do /boot/grub/grub.conf

default=1 timeout=10 spashimage=(hd0,1)/boot/grub/spash.xpm.gz title Windows 2000 rootverify (hd0,0) chainloader +1title Red Hat Linux (2.4.18-3) root (hd0,2) kernel /boot/vmlinuz-2.4.18-3 ro root=/dev/hda3 initrd=/boot/initrd-2.4.18-3.imgtitle Red Hat Linux (2.4.23) root (hd0,2) kernel /boot/bzImage-2.4.23 ro root=/dev/hda3

Page 20: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - boot

✦ Lilo (Linux Loader)✦ dodanie nowego jądra

✦ cd /usr/src/linux/arch/i386/boot✦ cp bzImage /boot/bzImage-2.4.22✦ cp /usr/src/linux/System.map /boot/System.map-2.4.22✦ ln -sf System.map-2.4.22 System.map✦ cd /etc✦ cp -av lilo.conf lilo.conf.old✦ vi lilo.conf

✦ dodajemy bzImage-2.4.22

Page 21: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - boot (c.d.)

✦ Lilo (Linux Loader)✦ dodajemy bzImage-2.4.22 do /etc/lilo.conf

boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 message=/boot/message linear default=linux image=/boot/vmlinuz-2.4.2-2

label=linux read-only root=/dev/hda1

image=/boot/bzImage-2.4.23 label=test read-only root=/dev/hda1

Page 22: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - boot (c.d.)

✦ Lilo (Linux Loader) (c.d.)✦ wpisanie nowego jądra

✦ lilo -t -v -v -v✦ lilo -v -v -v

✦ dobrze jest wkopiować nowe jądro na partycję DOS✦ mount /dev/hda1 /mnt✦ mkdir /mnt/rh90✦ cp /boot/bzImage-2.4.22 /mnt/rh90

✦ przeładowanie systemu ✦ reboot

Page 23: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - boot (c.d.)

✦ Ładowanie z DOS-a : LOADLIN✦ dosutils✦ przykład:

loadlin c:\rh90\bzImage-2.4.22 root=/dev/hda3 ro

✦ Wykorzystanie w instalacji Windows 98✦ /dev/hda3 - linux; /dev/hda1 - msdos✦ problem chcemy zainstalować Windows - instalacja usunie

LiLo (GRUB) i jak zbootować Linuxa, jeśli nie zrobiliśmy dyskietki startowej systemu?

Page 24: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - boot (c.d.)

✦ Rozwiązanie ✦ boot (LiLo) Linuxa ✦ mkdir /mnt/hda1✦ mount /dev/hda1 /mnt/hda1✦ mkdir /mnt/hda1/rh90✦ cp /boot/vmlinuz /mnt/hda1/rh90✦ reboot✦ instalacja Windows✦ reboot ->F8-> Tylko wiersz poleceń✦ cd rh90✦ c:\dosutils\loadlin vmlinuz root=/dev/hda3✦ lilo -v -v -v

Page 25: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - boot (c.d.)

✦ Rozwiązanie na ćwiczenia ✦ boot: vmlinuz root=/dev/hda4 -s

✦ /etc/lilo.conf # (wszystkie grupy) boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 message=/boot/message lba32 default=grupa_3other=/dev/hda2

label=grupa_1 other=/dev/hda3 label=grupa_2 other=/dev/hda4 label=grupa_3

Page 26: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - boot (c.d.)

✦ Rozwiązanie na ćwiczenia ✦ /boot/grub/grub.conf # grupa_2

default=1 timeout=10 spashimage=(hd0,1)/boot/grub/spash.xpm.gz title Red Hat Linux (2.4.18-3) root (hd0,2) kernel /boot/vmlinuz-2.4.18-3 ro root=/dev/hda4 initrd=/boot/initrd-2.4.18-3.imgtitle Red Hat Linux (2.4.23) root (hd0,2) kernel /boot/bzImage-2.4.23 ro root=/dev/hd4

Page 27: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

syslinux - boot (USB)

✦ urządzenie USB w linuxie: /dev/sda1✦ system plików FAT16 ✦ komenda linuxowa: syslinux /dev/sda1✦ mount –t msdos /dev/sda1 /mnt/usb✦ syslinux.cfg

✦ default FC2✦ prompt 0✦ label FC2 ✦ kernel vmlinuz✦ append root /dev/hda3 lang =devfs=nomount

✦ kopiowanie linuxa✦ cp /boot/vmlinuz-2.6.5-1.385 /mnt/usb/vmlinuz✦ cp /boot/initrd-2.6.5-1.358.img /mnt/usb/initrd.img

✦ utworzenie DOSa✦ dd if=/dev/fd0 of=dos.bss bs=512 count=1

✦ Shift lub Alt w czasie boot daje prompt

Page 28: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykład – konsola ttyS0✦ null modem na /dev/ttyS0 i /dev/ttyS1 (+konsola szeregowa w opcjach jądra)✦ aplikacja na porcie szeregowym 1,2: kermit, nc, minicom, hyperterminal,.....✦ /etc/inittab

✦ S0:2345:respawn:/sbin/agetty -i -h -L 38400 ttyS0 vt100 S1:2345:respawn:/sbin/agetty -i -h -L 38400 ttyS1 vt100 # Run xdm in runlevel 5x:5:respawn:/etc/X11/prefdm -nodaemon

✦ /etc/lilo.conf ✦ boot=/dev/hda

map=/boot.b install=/boot/boot.b prompt timeout=50 lba32 serial=0,38400n8 append="console=ttyS0,38400n8 console=tty0„ default=system_1 other=/dev/hda2 label=system_1 other=/dev/hda3 label=system_2 other=/dev/hda4 label=system_3

Page 29: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykład – konsola ttyS0 (c.d.)

✦ /boot/grub/grub.conf✦ # grub.conf generated by anaconda

boot=/dev/hda2 default=0 timeout=10 splashimage=(hd0,1)/boot/grub/splash.xpm.gz serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1 terminal --timeout=15 serial console #kernel /boot/bzImage-2.6.6 ro root=/dev/hda3 console=ttyS0,38400 console=tty0 title Fedora Core (2.6.5-1.358)

root (hd0,1) # kernel /boot/vmlinuz-2.6.5-1.358 ro root=LABEL=/ rhgb quiet kernel /boot/vmlinuz-2.6.5-1.358 ro root=/dev/hda2 console=ttyS0,38400 console=tty0

initrd /boot/initrd-2.6.5-1.358.img title Fedora Core (2.6.9-mm1)

root(hd0,1) kernel /boot/bzImage-2.6.9-mm1 ro root=/dev/hda2 console=ttyS0,38400 console=tty0 initrd /boot/initrd-2.6.9-mm1.img title Otherrootnoverify (hd1,0)

chainloader +1

Page 30: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Start ręczny systemu✦ AIX

✦ bootlist✦ diag

✦ FreeBSD✦ boot -s✦ unload ; load newkernel; boot

✦ HP-UX✦ hpux -is✦ hpux /stand/newvmunix✦ hpux ll /stand

✦ Linux✦ boot: linux single✦ grub> root (hd0,0).....

✦ Solaris✦ stop+a✦ boot -s✦ boot cdrom✦ devalias

✦ True64✦ boot -fl s✦ boot -file newvmunix

Page 31: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro

✦ Jądro systemu Linux jest bezpłatnie rozpowszechniane

✦ Jądro systemu Linux jest utrzymywane przez Linusa Torvaldsa

✦ Numeracja jądra✦ nr_głowny.nr_poboczny.nr_łaty

✦ nr_główny - rzadko się zmienia ✦ 0 - 13.05.1991; 1 - 13.03.1994, 2 - 13.06.1996

✦ nr_poboczny - parzysty to jądro stabilne, nieparzysty to jądro rozwojowe

✦ nr_łaty (patch) - numer łaty dla aktualnej wersji jądra ✦ np. 2.1.13 - jądro rozwojowe, łata (patch) trzynasta

Page 32: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (c.d.)

✦ Po co nam nowe jądro✦ usunięcie zbędnego kodu poprawia działanie✦ errare humanum est - nowe jądro nie ma starych błędów

✦ ma za to nowe błędy!!!!!!!✦ aby móc używać nowego kompilatora lub biblioteki

✦ Pobieranie kodu źródłowego jądra✦ publikowane w postaci linux-2.4.23.tar.gz✦ ftp ftp.icm.edu.pl

✦ cd /pub/Linux/kernel/v2.4✦ get linux-2.4.23.tar.gz✦ get patch-2.4.23.gz

Page 33: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (c.d.)✦ RedHat Linux 9.0

✦ jednolity układ graficzny✦ Open Office, Mozilla, .....✦ http://www.redhat.com/software/linux/features/✦ kernel 2.4.20, GCC 3.2.1 Libc 2.3.2 .... ✦ http://www.redhat.com/software/linux/technical/packages.html

✦ Fedora Core 2,3✦ http://www.fedora.org✦ http://www.fedorafaq.org✦ kernel 2.6.5.1

✦ Fedora Core 4✦ kernel 2.6.11.1

✦ Fedora Core 5✦ kernel 2.6.16, Gnome 3.5, GCC 4.1, glibc 2.4, Xen 3.0.1, Samba 3.0.2

Page 34: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (c.d.)✦ Jądro 2.4

✦ obsługa do 64GB RAM✦ obsługa wielu procesorów (SMP)✦ obsługa USB (HID - Human Interface Device)✦ nowe sterowniki urządzeń

✦ Aironet 802.11✦ IPv6✦ NFS v3✦ ATM

✦ TUX WWW Serwer 2.0✦ zwiększone bezpieczeństwo✦ 2.4.33.3 (październik, 2006)

Page 35: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (c.d.)

✦ Jądro 2.6 (grudzień, 2003)✦ architektura 64-bitowa ✦ wywłaszczanie jądra✦ 16 procesorów✦ ulepszone aplikacje baz danych✦ wydajność ✦ niezawodność

✦ tar xvfj linux-2.6.8.1.tar.bz2 (sierpień, 2004)✦ tar xvfj linux-2.6.13.4.tar.bz2 (październik, 2005)✦ tar xvfj linux-2.6.18.1.tar.bz2 (październik, 2006)✦ Linus zachowuje numerację x.y.z, numeracja x.y.z.?

oznacza jedynie trywialne patche

Page 36: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Rozpakowanie nowego jądra✦ cd /usr/src/✦ rm linux✦ mkdir linux-2.4.23✦ ln -s linux-2.4.23 linux✦ tar xvzf linux-2.4.23.tar.gz

✦ Stosowanie łat✦ cd /usr/src✦ uname -a : linux-2.4.22 !!!!!!✦ gunzip patch-2.4.23.gz; patch -p0 patch-2.4.23✦ find /usr/src/linux -follow -name ”*.rej” -print✦ find /usr/src/linux -follow -name ”*#” -print

Page 37: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Struktura katalogowa kodu źródłowego systemu Linux

linux

modules mm net kernel init lib include ipc

fs arch driverslinuxunix inet

asm-alpha

asm-i386

asm-m68k

asm-generic

asm-mips

asm-sparc

net

char

block

scsi

sound

mips

alpha

sparc

ppc

i386

nfs

proc

minix

msdos

sysv

ext

ext2

xiafs

isofs

hpfs

umsdos kernel boot mm math-emu

Page 38: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)✦ Budowanie (generowanie) jądra

✦ cd /usr/src/linux✦ make config lub make menuconfig :Y (tak), N (nie) lub m -

moduł jądra ✦ jądro eksperymentalne

✦ Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [N/y/?] y

✦ obsługa modułów ładowalnych ✦ Enable loadable module support (CONFIG_MODULES) [Y/n/?]

✦ rodzaj procesora ✦ Processor family (386, 486, 586/K5/5x86/6x86/6x86MX,

Pentium-Classic, Pentium-MMX, Pentium-Pro/Celeron/Pentium-II, Pentium-III/Celeron(Coppermine), Pentium-4, K6/K6-II/K6-III, Athlon/Duron/K7, Crusoe, Winchip-C6, Winchip-2, Winchip-2A/Winchip-3, CyrixIII/C3) [Pentium-4]

Page 39: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ obsługa symetrycznej wieloprocesorowości

✦ Symmetric multi-processing support (CONFIG_SMP) [Y/n/?] n

✦ obsługa sieci (networking support)✦ Networking support (CONFIG_NET) [Y/n/?]

✦ obsługa PCI✦ PCI support (CONFIG_PCI) [Y/n/?]

✦ funkcje IPC✦ System V IPC (CONFIG_SYSVIPC) [Y/n/?]

✦ obsługa sysctl✦ Sysctl support (CONFIG_SYSCTL) [Y/n/?]

✦ obsługa ELF✦ Kernel support for ELF binaries (CONFIG_BINFMT_ELF) [Y/m/n/?]

Page 40: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ zarządzanie zasilaniem

✦ Power Management support (CONFIG_PM) [N/y/?] ? CONFIG_PM: "Power Management" means that parts of your computer are shut off or put into a power conserving "sleep" mode if they are not being used. There are two competing standards for doing this: APM and ACPI. If you want to use either one, say Y here and then also to the requisite support below. Power Management is most important for battery powered laptop computers; if you have a laptop, check out the Linux Laptop home page on the WWW at http://www.cs.utexas.edu/users/kharker/linux-laptop/ and the Battery Powered Linux mini-HOWTO, available from http://www.linuxdoc.org/docs.html#howto . Note that, even if you say N here, Linux on the x86 architecture will issue the hlt instruction if nothing is to bedone, thereby sending the processor to sleep and saving power.

Page 41: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ zarządzanie zasilaniem (c.d.)

✦ Power Management support (CONFIG_PM) [N/y/?] n✦ obsługa portu równoległego

✦ Parallel port support (CONFIG_PARPORT) [N/y/m/?] y✦ PC-style hardware (CONFIG_PARPORT_PC) [N/y/m/?] y

✦ obsługa Plug and Play ( nie dotyczy PCI)✦ Plug and Play support (CONFIG_PNP) [Y/m/n/?] n

✦ obsługa urządzeń blokowych (np. floppy)✦ Normal PC floppy disk support (CONFIG_BLK_DEV_FD) [Y/m/n/?] ✦ Loopback device (CONFIG_BLK_DEV_LOOP) [N/y/m/?] y✦ RAM disk support (CONFIG_BLK_DEV_RAM) [N/y/m/?] y

✦ obsługa RAID i LVM (multi-device)✦ Multiple devices (RAID and LVM) (CONFIG_MD) [N/y/?] n

Page 42: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ opcje sieciowe

✦ Packet socket (CONFIG_PACKET) [Y/m/n/?] ✦ Netlink device emulation (CONFIG_NETLINK_DEV) [N/y/m/?] y ✦ Socket Filtering (CONFIG_FILTER) [N/y/?] y✦ Unix domain sockets (CONFIG_UNIX) [Y/m/n/?] ✦ TCP/IP networking (CONFIG_INET) [Y/n/?] ✦ IP: multicasting (CONFIG_IP_MULTICAST) [Y/n/?] n

✦ protokól IPX✦ The IPX protocol (CONFIG_IPX) [N/y/m/?] y✦ IPX: Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?]

(NEW) y

Page 43: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ QoS

✦ QoS and/or fair queueing (CONFIG_NET_SCHED) [N/y/?] n

✦ testowanie sieci✦ obsługa telefonii

✦ Linux telephony support (CONFIG_PHONE) [N/y/m/?] n

✦ obsługa ATA, IDE and ATAPI✦ ATA/IDE/MFM/RLL support (CONFIG_IDE) [Y/m/n/?] ✦ Include IDE/ATAPI CDROM support (CONFIG_BLK_DEV_IDECD)

[Y/m/n/?] y

✦ obsługa chipsetu IDE ✦ RZ1000 chipset bugfix/support (CONFIG_BLK_DEV_RZ1000) [Y/n/?] n

Page 44: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ obsługa dysków SCSI

✦ SCSI support (CONFIG_SCSI) [Y/m/n/?] n

✦ obsługa IEEE 1394 (FireWire) ✦ obsługa urządzeń sieciowych

✦ Network device support (CONFIG_NETDEVICES) [Y/n/?] ✦ Dummy net driver support (CONFIG_DUMMY) [M/n/y/?] y✦ Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET) [Y/n/?] n✦ Ethernet (1000 Mbit)✦ Intel(R) PRO/1000 Gigabit Ethernet support (CONFIG_E1000)

[N/y/m/?] y

Page 45: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ obsługa protokołów sieciowych

✦ PLIP (parallel port) support (CONFIG_PLIP) [N/y/m/?] m ✦ PPP (point-to-point protocol) (CONFIG_PPP) [N/y/m/?] y ✦ PPP support for async serial ports (CONFIG_PPP_ASYNC) [N/y/m/?]

(NEW) y ✦ PPP over Ethernet (EXPERIMENTAL) (CONFIG_PPPOE) [N/y/m/?]

(NEW) y✦ SLIP (serial line) support (CONFIG_SLIP) [N/y/m/?] y

CSLIP compressed headers (CONFIG_SLIP_COMPRESSED) [N/y/?] (NEW) yKeepalive and linefill (CONFIG_SLIP_SMART) [N/y/?] (NEW) ySix bit SLIP encapsulation (CONFIG_SLIP_MODE_SLIP6) [N/y/?] (NEW) y

Page 46: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ obsługa radia amatroskiego

✦ Amateur Radio support (CONFIG_HAMRADIO) [N/y/?] ✦ obsługa Input core dla HID

✦ Input core support (CONFIG_INPUT) [N/y/m/?] y ✦ Keyboard support (CONFIG_INPUT_KEYBDEV) [N/y/m/?] m ✦ Mouse support (CONFIG_INPUT_MOUSEDEV) [N/y/m/?] m

✦ obsługa urządzeń znakowych✦ Parallel printer support (CONFIG_PRINTER) [N/y/m/?] (NEW) m

✦ obsługa myszy✦ PS/2 mouse (aka "auxiliary device") support

(CONFIG_PSMOUSE) [Y/n/?]

Page 47: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ obsługa systemów plików

✦ Ext3 journalling file system support (CONFIG_EXT3_FS) [N/y/m/?] y

✦ DOS FAT fs support (CONFIG_FAT_FS) [N/y/m/?] y ✦ MSDOS fs support (CONFIG_MSDOS_FS) [N/y/m/?] y ✦ VFAT (Windows-95) fs support (CONFIG_VFAT_FS) [N/y/m/?] y✦ ISO 9660 CDROM file system support (CONFIG_ISO9660_FS)

[Y/m/n/?]✦ NTFS file system support (read only) (CONFIG_NTFS_FS)

[N/y/m/?] y✦ Second extended fs support (CONFIG_EXT2_FS) [Y/m/n/?] m

Page 48: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)

✦ obsługa sieciowych systemów plików✦ NFS file system support (CONFIG_NFS_FS) [Y/m/n/?]

Provide NFSv3 client support (CONFIG_NFS_V3) [N/y/?] yNFS server support (CONFIG_NFSD) [Y/m/n/?] Provide NFSv3 server support (CONFIG_NFSD_V3) [N/y/?] y

✦ SMB file system support (to mount Windows shares etc.) (CONFIG_SMB_FS) [N/y/m/?] y

Page 49: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ obsługa sieciowych systemów plików (c.d.)

✦ NCP file system support (to mount NetWare volumes) (CONFIG_NCP_FS) [N/y/m/?] y

Packet signatures (CONFIG_NCPFS_PACKET_SIGNING) [N/y/?] yProprietary file locking (CONFIG_NCPFS_IOCTL_LOCKING) [N/y/?] y Clear remove/delete inhibit when needed (CONFIG_NCPFS_STRONG) [N/y/?] y Use NFS namespace if available (CONFIG_NCPFS_NFS_NS) [N/y/?] y Lowercase DOS filenames (CONFIG_NCPFS_SMALLDOS) [N/y/?] y

Page 50: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ obsługa stron kodowych (NLS)

✦ Codepage 852 (Central/Eastern Europe) (CONFIG_NLS_CODEPAGE_852) [N/y/m/?] (NEW) y

✦ Windows CP1250 (Slavic/Central European Languages) [CONFIG_NLS_CODEPAGE_1250] [N/y/m/?] (NEW) y

✦ NLS ISO 8859-2 (Latin 2; Slavic/Central European Languages) (CONFIG_NLS_ISO8859_2) [N/y/m/?] (NEW) y

✦ obsługa dźwieku✦ Sound card support (CONFIG_SOUND) [Y/m/n/?] n

Page 51: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ obsługa portu USB

✦ Support for USB (CONFIG_USB) [Y/m/n/?] ✦ Preliminary USB device filesystem (CONFIG_USB_DEVICEFS)

[N/y/m/?] y ✦ EHCI HCD (USB 2.0) support (EXPERIMENTAL)

(CONFIG_USB_EHCI_HCD) [N/y/m/?] m✦ UHCI Alternate Driver (JE) support (CONFIG_USB_UHCI_ALT)

[N/y/m/?] m ✦ USB Human Interface Device (full HID) support

(CONFIG_USB_HID) [N/y/m/?] m✦ USS720 parport driver (CONFIG_USB_USS720) [N/y/m/?] y✦ USB Serial Converter support (CONFIG_USB_SERIAL) [N/y/m/?] y

Page 52: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Budowanie jądra (c.d.)✦ kernel hacking

✦ Kernel debugging (CONFIG_DEBUG_KERNEL) [N/y/?] n

✦ make dep✦ zależności pomiędzy plikami źródłowymi ->Makefile

✦ make clean✦ gwarantuje kompilację jądra „od początku”

✦ make bzImage✦ cd /usr/src/linux/arch/i386/boot✦ ls -lr

✦ make modules

Page 53: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

System Linux - jądro (2.4)

✦ Moduły ładowalne urządzeń✦ make modules_install

✦ cd /lib/modules/2.4.23✦ depmod -a (przebudowanie bazy modułów)✦ zarządzanie modułami

✦ insmod /lib/modules/2.4.23/kernel/drivers/net/plip.o✦ lsmod✦ rmmod plip

✦ automatyczne ładowanie modułów✦ kerneld (w czasie konfiguracji jądra)

✦ potrzebne System V IPC✦ kmod - nowsze wersje jądra

Page 54: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Jądro 2.6

✦ Zmiany✦ instalacja: module-init-tools

✦ ./configure --prefix=/✦ make moveold✦ make✦ make install✦ ./generate-modprobe.conf /etc/modprobe.conf

✦ sysfs (w /etc/fstab)✦ none /sys sysfs defaults 0 0

✦ Inne: RPM, USB, Wireless, Sound, HotPlug ✦ http://en.wikipedia.org/wiki/Linux_kernel

Page 55: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Jądro 2.6 (FC2,3)

✦ rozpakowanie źrodła jak dla 2.4✦ konfigurowanie – wiele opcji, lepsze grupowanie

✦ cd /usr/src/linux✦ cp ../linux-2.6.5-1.358/configs/kernel-2.6.5-i686.config .config✦ make menuconfig

Page 56: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

make xconfig

Page 57: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Jądro 2.6 (FC2,3) (c.d.)✦ make ✦ make modules ✦ make modules_install

✦ kopiowanie jądra do katalogu /boot (jak dla 2.4)

✦ fragmenty kodu (np. ext3) biorące udział w rozruchu są modułami - potrzebny ram dysk✦ cd /boot✦ /sbin/mkinitrd /boot/initrd-2.6.8.1.img 2.6.8.1

✦ grub.conf ✦ Title Fedora Core 2 (2.6.8.1)✦ root (hd0,2)✦ kernel /boot/bzImage-2.6.8.1 ro root=LABEL=/ rhgb quiet✦ initrd /boot/initrd-2.6.8.1.img

✦ http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html

Page 58: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Jądro 2.6 (FC4) (c.d.)✦ bzip2 –cd linux-2.6.13.4.tar.bz2 | tar xvf - -C /usr/src✦ cd /usr/src✦ ln –s linux-2.6.13.4 linux✦ cd linux✦ patch -p0 < kernel.patch✦ cp –av ../kernels/2.6.11-1.1369_FC4-i686/.config . ✦ make menuconfig✦ make all ✦ make modules_install✦ make install✦ Nvidia driver

✦ http://www.mjmwired.net/resources/mjm-kernel-fc4.html✦ SATA driver

✦ http://www.keffective.com/mvsata/fc4_howto.html

Page 59: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Jądro 2.6 (FC4) (c.d.)

Page 60: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Modyfikowanie jądra (FC2)✦ Przykład: Intel PRO/Wireless 2100

✦ http://ipw2100.sourceforge.net✦ ipw2100-firmware-1.3-4.at.noarch.rpm✦ ipw2100-firmware-1.3-4.at.src.rpm✦ /usr/lib/hotplug/firmware

✦ atrpms.net ✦ instalacja gotowych modułów

✦ kernel-module-hostap-2.6.8-1.541_10.rhfc2.at-0.1.3-4.rhfc2.at.i686.rpm✦ kernel-module-ipw2100-2.6.8-1.541_10.rhfc2.at-0.55-20.rhfc2.at.i686.rpm

✦ Nałożenie patchy na jądro 2.6.8.1✦ hostap-driver-0.1.3-4.rhfc2.at.src.rpm✦ ipw2100-0.55-20.rhfc2.at.src.rpm✦ konfigurowanie jądra (hostap, ipw2100) , kompilacja (długo), instalacja

Page 61: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

FC 5,6

✦ Przykład: kernel-2.6.18-1.2200.fc5, moduł ipw2200✦ http://fedoraproject.org/wiki/Docs/Beats/Kernel

✦ update kernel-devel✦ http://fedoranews.org/cms/node/1696

✦ moduły firmaware✦ http://www.ces.clemson.edu/linux/fc2-ipw2200.shtml

✦ Atrpms ✦ http://atrpms.net/dist/fc5/

Page 62: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Debugery jądra systemu Linux (1)

✦ http://lxr.linux.no/✦ gdb /usr/src/linux/vmlinux /proc/core ✦ kgdb – linux kernel source level debugger

✦ http://kgdb.linsyssoft.com/✦ Kprobes – funkcja printk, klucz SysRq

✦ łaty na jądro✦ CONFIG_KPROBES, CONFIG_MAGIC_SYSRQ włączone✦ /usr/src/linux/Documentation/sysrq.txt ✦ echo ”1” > /proc/sys/kernel/sysrq✦ Alt+SysRq+W ✦ http://www-128.ibm.com/developerworks/linux/library/l-

kprobes.html

Page 63: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Debugery jądra systemu Linux (2)

✦ kdb – built-in kernel debugger (zdalny debuger)✦ połączenie null-modem na porcie szeregowym ✦ definicja w /etc/inittab

✦ S0:2345:respawn:/sbin/agetty -i -h -L 38400 ttyS0 vt100 ✦ łaty na jądro ✦ opcja SELinux wyłączona w jądrze ✦ /usr/src/linux/Documentation/kdb*✦ echo ”1” >/proc/sys/kernel/kdb✦ Ctrl-A lub Esc-KDB (na konsoli szeregowej)

✦ kdb>md 0xc000000 15✦ kdb>rd ✦ kdb>bp sys_write

✦ http://oss.sgi.com/projects/kdb/✦ http://192.168.128.230/index.php?pagename=Diagn

Page 64: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Modem zerowy

✦ Modem zerowy (ang. null-modem)✦ GND 1 <--> 1✦ TxD 2 ---> 3✦ RxD 3 <--- 2✦ RTS 4 ---> 5✦ CTS 5 <--- 4✦ DSR+DCD (6+8) <--- 20✦ SG 7 <--> 7✦ DTR 20 ---> (6+8)

✦ Testowanie - Windows: Hyperterminal, Linux: Minicom✦ Zastosowanie – Linux<->Linux (TCP/IP), SLIP, PPP

Page 65: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Lokalizacja i opcje jądra w różnych systemach✦ AIX

✦ /unix✦ brak

✦ FreeBSD✦ /kernel✦ /usr/src/sys/i386/conf

✦ HP-UX✦ /stand/vmunix✦ /stand/build

✦ Linux✦ /boot/vmlinuz✦ /usr/linux/src

✦ Solaris✦ /kernel/genunix✦ brak

✦ True64✦ /vmunix; /genvmunixb✦ /usr/sys/conf

Page 66: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Parametry różnych systemów✦ AIX

✦ ls -lattr -Ehl sys0✦ chdev -l sys0 -a maxuproc=500

✦ FreeBSD✦ sysctl -a✦ sysctl kern.maxfiles=1066

✦ HP-UX✦ System Adminstration Manager✦ /usr/lbin/sysadm/system/system_prep✦ /stand/build/mk_kernel✦ /stand/system✦ sysdef

✦ Linux✦ /usr/linux/src/.config

✦ Solaris✦ modinfo✦ prtconf✦ sysdef✦ /etc/system

✦ True64✦ sysconfig✦ /etc/sysconfigtab

Page 67: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Konfigurowanie jądra - Solaris

✦ Jądro systemu w pliku /kernel/unix✦ modinfo – wyświetla moduły ładowalne✦ prtconf – pokazuje konfigurację sprzętową✦ sysdef – wyświetla moduły ładowalne, konfigurację

sprzętową i wartości paramatrów jądra✦ Plik /etc/system pozwala ustalić niektóre wartości

parametrów jądra oraz które moduły mają być ładowane✦ Schillix 0.5 – Live CD, Solaris 5.11, 256MB RAM,

✦ http://www.schillix.org/

✦ BeleniX0.5✦ http://www.genunix.org/distributions/belenix_site

Page 68: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Struktura systemów operacyjnych

✦ System zarządzania zadaniami (procesami)✦ System zarządzania pamięcią operacyjną✦ System zarządzania plikami✦ System zarządzania wejściem-wyjściem✦ Sieciowy system operacyjny✦ System ochrony ✦ System interpretacji poleceń✦ Generacja systemu

Page 69: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Koncepcja procesu

✦ System operacyjny wykonuje wykonuje różne programy ✦ system wsadowy - zadania✦ system z podziałem czasu - programy użytkownika (ang. user

programs) lub prace (ang. tasks)

✦ Będziemy utożsamiać zadanie i proces !✦ Proces - program wykonywany sekwencyjnie✦ Koncepcja procesu zawiera

✦ licznik rozkazów (ang. program counter)✦ stos (ang. stack) procesu - parametry, adresy powrotu✦ sekcję danych (ang. data section) - zmienne globalne

Page 70: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykłady procesów (Unix)

✦ Proces to program działający we własnej przestrzeni adresowej✦ proces wsadowy – polecenie batch, at, cron✦ procesy interakcyjne

✦ procesy pierwszoplanowe – związane z terminalem (np. polecenie ls)

✦ procesy drugoplanowe – wykonywane w tle

✦ demony (ang. daemons) – wystartowane serwisy✦ init, syslogd, sendmail, lpd, cdrond, getty, bdflush,

pagedaemon, swapper, inetd, named, routed, dhcpd, portmap, nfsd, smbd, httpd, ntpd

✦ Limity zasobów procesów: polecenia limit, ulimit

Page 71: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Sterowanie procesami

✦ Uruchamianie w tle: & ✦ np. ls –R / &

✦ Zatrzymanie proces pierwszoplanowy: ^Z✦ Ponowne uruchamianie procesu w tle: bg✦ Listowanie procesów w tle: jobs✦ Odwołanie do procesu n w tle: %n✦ Odwołanie do procesu xyz w tle: %?xyz ✦ Przenoszenie z tła na pierwszy plan: fg %

Page 72: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Procesy a zasoby

A B C

procesor we/wy we/wy pamięć

pamięć wirtualna

zasoby

Page 73: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Stan procesu

✦ Wykonujący się proces zmienia swój stan (ang. state)

✦ nowy (ang. new): proces został utworzony✦ aktywny (ang. running): są wykonywane instrukcje✦ oczekiwanie (ang. waiting): proces czeka na zdarzenie (np.

zakończenie we/wy)✦ gotowy (ang. ready): proces czeka na przydział procesora✦ zakończony (ang. terminated): proces zakończył działanie

Page 74: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Diagram stanów procesu

nowy

gotowy aktywny

zakończony

czekający

przerwanieprzyjęcie wyjście

decyzja planistyobsłużenie zdarzenia lub operacja we/wy

oczekiwanie na zdarzenie lub na wykonanie operacji we/wy

Page 75: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Diagram stanów procesu - SVR5

utworzony (fork)

gotowy swap out

aktywny(kernel)

zombie

wywłaszczonybrak pamięci

preempt

decyzja planisty

uśpionyswap out

gotowy

uśpiony w pamięci

aktywny (user)

fork

swap out

wakeup

wakeup

swap out

swap in

sleepexit

przerwanie,funkcja

systemowa

return

return

przerwanie, powrót z przerwania

Page 76: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykłady stanów procesu✦ polecenie ps - BSD (STAT): ps aux; System V (S): ps –ef

✦ R – wykonywany lub gotowy do wykonania✦ S – uśpiony✦ I – bezczynny (BSD); stan pośredni (System V)✦ T – zatrzymany✦ Z – proces zombi✦ D – czekający na dysk (BSD)✦ X – czekający na pamięć (System V)✦ K – dostępny proces jądra (AIX)✦ W – przeniesiony w obszar wymiany (BSD)✦ N – o obniżonym priorytetcie (BSD)✦ < – o podwyższonym priorytetcie✦ TIME – całkowity zużyty czas CPU

Page 77: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Blok kontrolny procesu (PCB)

✦ Każdy proces w systemie operacyjnym jest reprezentowany przez blok kontrolny procesu (ang. process control block - PCB) zawierający✦ stan procesu - gotowy, nowy, aktywny, czekający,

zatrzymany✦ numer procesu (PID)✦ licznik rozkazów - adres następnego rozkazu do

wykonania w procesie✦ rejestry procesora - zależą od architektury komputera:

akumulatory, rejestry (ogólne, bazowe, indeksowe) wskaźniki stosu przechowywane aby proces mógł być kontynuowany po przerwaniu

Page 78: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Blok kontrolny procesu (PCB)

✦ (c.d.)✦ informacje o planowaniu przydziału procesora - priorytet

procesu, wskaźniki do kolejek porządkujących zamówienia✦ informacje o zarządzaniu pamiecią - zawartości rejestrów

granicznych, tablice stron, tablice segmentów w zależności od systemu używanej pamięci

✦ informacje do rozliczeń - ilość zużytego czasu procesora i czasu rzeczywistego, ograniczenia czasowe, numery kont, numery zadań

✦ informacje o stanie we/wy - lista zaalokowanych urządzeń, wykaz otwartych plików

Page 79: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Blok kontrolny procesu (c.d.)

.

.

.

licznik rozkazów

wskaźnik stan procesu

numer procesu

rejestry

ograniczenia pamięci

wykaz otwartych plików

Page 80: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przyczyny przełączania procesu

✦ Przerwanie (ang. interrupt) – zdarzenie zewnętrzne w stosunku do procesu

✦ Pułapka (ang. trap) – zdarzenie wewnątrz aktualnie przetwarzanego procesu, błąd lub warunek wyjątku

✦ Polecenie administracyjne (ang. supervisor call) – wywołanie funkcji systemu operacyjnego

Page 81: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przełączanie procesora

proces A proces Bsystem operacyjny

przechowaj stan w bloku kontrolnym 0

odtwórz stan z bloku kontrolnego 1

przechowaj stan w bloku kontrolnym 1

odtwórz stan z bloku kontrolnego 0

przerwanie lub wywołanie systemowe

przerwanie lub wywołanie systemowebezczynność

bezczynność

bezczynność

wykonywanie

wykonywanie

wykonywanie

.

.

.

.

.

.

Page 82: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Struktura tablic kontrolnych

.

.

.

pamięć

urządzenia

pliki

procesy

tablice pamięci

tablice we/wy

tablice plików

proces 1

proces 1

proces 2

proces n

proces n

tablica procesu

obraz procesu

obraz procesu

Page 83: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykład - IBM/360 & OS/MVT

ECB

TCB

TCB

TCB

save save

savelink ep=Alink ep=B

return

returnattach ep=C,

ECB=E

wait 1,E

return

TCB

post ESupervisor

task B

task A

task C

Page 84: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Kolejki planowania procesu

✦ Wchodzące do systemu procesy tworzą kolejkę zadań (ang. job queue)

✦ Gotowe do działania procesy oczekujące w pamięci głównej na wykonanie tworzą kolejkę procesów gotowych (ang. ready queue)

✦ Procesy czekające na konkretne urządzenie tworzą kolejkę do urządzenia (ang. device queue)

✦ Procesy migrują między kolejkami

Page 85: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Kolejka zadań i kolejki do urządzeń we/wy

czoło

czoło

czoło

czoło

czoło

ogon

ogon

ogon

ogon

ogon

rejestry rejestry

blok kontrolny 7 blok kontrolny 2

blok kontrolny 3 blok kontrolny 14 blok kontrolny 6

blok kontrolny 2

jednostkataśmowa

kolejka procesów gotowych

jednostkadyskowa 0

jednostkadyskowa 1

jednostkaterminali

.

.

.

.

.

.

Page 86: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Diagram kolejek

✦ Diagram kolejek służy do opisu planowania procesów

✦ prostokąt określa kolejkę; kółko to zasoby; strzałka to przepływ✦ nowy proces jest w kolejce procesów gotowych✦ zostaje wybrany (ang. dispatched) i otrzymuje procesor

✦ proces może zamówić we/wy i trafia do kolejki oczekujących na we/wy

✦ proces może utworzyć potomka i czekać na jego zakończenie✦ proces może zostać wywłaszczony wskutek przerwania i

przeniesiony do kolejki procesów gotowych

Page 87: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Diagram kolejek w planowaniu procesów

kolejka procesów gotowych

kolejka operacji we/wy

zamówienia operacji we/wy

zużycie kwantuczasu

powołanie procesu potomnego

czekanie na przerwanie

wystąpienieprzerwania

potomekdziała

CPU

we/wy

Page 88: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Planiści

✦ Planista długoterminowy (ang. long-term scheduler) lub planista zadań (ang. job scheduler) - wybiera procesy, które powinny być sprowadzone do pamięci z kolejek procesów (niegotowych)

✦ Planista krótkoterminowy (ang. short-term scheduler) lub planista przydziału procesora (ang. CPU scheduler) - wybiera proces następny do wykonania z kolejki procesów gotowych i przydziela mu procesor

Page 89: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Planiści (c.d.)

✦ Planista krótkoterminowy jest wołany bardzo często (milisekundy) dlatego musi być bardzo szybki

✦ Planista długoterminowy jest wołany rzadko (sekundy, minuty) dlatego może nie być szybki

✦ Planista długoterminowy nadzoruje stopień wieloprogramowości (liczbę procesów w pamięci)

Page 90: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Planiści (c.d.)✦ Proces może być opisany jako jeden z

✦ ograniczony przez we/wy (ang. I/O bound) - więcej czasu zajmuje we/wy niż dostęp do procesora

✦ ograniczony przez dostęp do procesora (ang. CPU bound) - więcej czasu zajmują obliczenia, we/wy sporadyczne

✦ Planista długoterminowy powinien dobrać mieszankę procesów (ang. process mix) zawierającą zarówno procesy ograniczone przez we/wy jak i procesor

✦ Planista średnioterminowy (ang. medium-term scheduler) –usuwa procesy z pamięci, zmniejszając stopień wieloprogramowości, a później sprowadza je ponownie ✦ uzyskanie lepszej mieszanki procesów✦ żądania przydziału pamięci przekraczają ilość dostępnej pamięci✦ wymiana, ang.swapping

Page 91: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Planista średnioterminowy

kolejka procesów gotowych

we/wy

CPU

kolejki procesów oczekujących na we/wy

usunięte procesy częściowo wykonane

koniec

usuń z pamięci(swap out)

sprowadź do pamięci(swap in)

Page 92: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przełączanie kontekstu

✦ Gdy procesor przełącza do innego procesu system musi zachować stan starego procesu i załadować zachowany stan nowego procesu. Czynność tę nazywamy przełączaniem kontekstu (ang. context switch)

✦ Przełączanie kontekstu jest ceną za wieloprogramowość; system operacyjny nie wykonuje wtedy żadnej użytecznej pracy

✦ Czas przełączenia kontekstu zależy od sprzętu (zwykle od 1 do 1000 milisekund)

Page 93: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Działania na procesach -tworzenie procesu

✦ Proces macierzysty (ang. parent process) tworzy nowy proces - potomka (ang. child process) i każdy nowy proces może tworzyć nowe procesy, które tworzą drzewo procesów

✦ Dzielenie zasobów✦ proces macierzysty i potomek dzielą wszystkie zasoby ✦ proces macierzysty i potomek dzielą część zasobów✦ proces macierzysty i potomek nie dzielą żadnych zasobów

✦ Drzewo procesów: polecenie pstree

Page 94: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Drzewo procesów w UNIXie

proces root

proces pagedaemon

proces swapper

proces init

proces użytkownika 1

proces użytkownika 2

proces użytkownika 3

Page 95: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Tworzenie procesu (c.d.)

✦ Wykonanie✦ proces macierzysty i potomek działają współbieżnie✦ proces macierzysty czeka aż potomek zakończy

✦ Przestrzeń adresowa nowego procesu✦ potomek jest kopią procesu macierzystego✦ potomek ładuje do przestrzeni adresowej nowy program

Page 96: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykłady

✦ UNIX✦ funkcja systemowa fork tworzy nowy proces zawierający

kopię przestrzeni adresowej procesu pierwotnego✦ funkcja systemowa execlp użyta po fork powoduje

zastąpienie zawartości pamięci przez nowy program (ładuje plik binarny do pamięci niszcząc obraz pamięci zawierający wywołanie execlp)

✦ proces macierzysty czeka aż potomek skończy (funkcja systemowa wait) w kolejce procesów gotowych

✦ Przykład pod Cygwinem

Page 97: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykład ✦ new.c

✦ gcc -o new new.c✦ ./new ✦ ps

int main()

{execlp("/bin/ps","ps",0);

}

Page 98: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykłady (c.d.)

✦ DEC VMS✦ tworzy proces i ładuje do niego program

✦ Windows NT/XP - oba modele✦ duplikowanie przestrzeni adresowej procesu macierzystego✦ proces macierzysty może określić nazwę programu do

załadowania do przestrzeni adresowej nowego procesu

Page 99: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Kończenie procesu

✦ Proces kończy się (ang. terminate) wówczas, gdy wykona swoją ostatnią instrukcję i za pomocą funkcji systemowej exit poprosi system operacyjny aby go usunął a także aby✦ przekazał dane wyjściowe z potomka do procesu

macierzystego (za pośrednictwem funkcji systemowej wait wydanej w procesie macierzystym)

✦ wszystkie zaalokowane zasoby (pamięć fizyczna i wirtualna, otwarte pliki, bufory we/wy) odebrał potomkowi

Page 100: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Kończenie procesu (c.d.)

✦ Proces macierzysty wywołuje funkcję systemową abort bowiem✦ potomek nadużył zasobów✦ wykonywanie potomka stało się jałowe✦ proces macierzysty kończy się

✦ system operacyjny nie pozwala potomkowi na działanie jeśli proces macierzysty kończy działanie

✦ system operacyjny wymusza zakończenie wszystkich potomków - kończenie kaskadowe (ang. cascadingtermination)

✦ Polecenie: kill [-sygnał] pid

Page 101: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Zombie✦ zombie.c

✦ ps -al

#include <stdlib.h>#include <sys/types.h>#include <unistd.h>int main (){

pid_t child_pid;

/* Create a child process. */child_pid = fork ();if (child_pid > 0) {/* This is the parent process. Sleep for a minute. */sleep (60);

}else {/* This is the child process. Exit immediately. */exit (0);

}

}

Page 102: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Procesy współpracujące

✦ Procesy współbieżne mogą być niezależne (ang. independent) lub współpracujące (ang. cooperating)

✦ Procesy współpracujące mogą oddziaływać na inne procesy w systemie lub inne procesy w systemie mogą oddziaływać na nie

✦ Korzyści ze współpracy procesów✦ dzielenie informacji✦ przyspieszanie (obliczeń)✦ modularność - możliwość konstruowania systemów✦ wygoda - użytkownik może mieć wiele procesów

Page 103: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Komunikacja międzyprocesowa

✦ Komunikacja międzyprocesowa (ang. interprocess-communication - IPC) udogodnienia systemu pozwalające współpracującym procesom na kontaktowanie się ze sobą

✦ System przekazywania komunikatów (ang. message system) - sposób realizacji komunikacji międzyprocesorowej pozwalający nie odwoływać się do zmiennych dzielonych

Page 104: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Komunikacja międzyprocesowa

✦ Komunikacja międzyprocesowa dostarcza dwóch operacji✦ nadaj (komunikat) (ang. send (message))✦ odbierz(komunikat) (ang. receive(message))

✦ Jeśli procesy P i Q chcą się skomunikować to✦ muszą ustanowić łącze komunikacyjne✦ nadawać i odbierać komunikaty

✦ Implementacja✦ fizyczna (np. pamięć dzielona, szyna sprzętowa)✦ logiczna (np. własności logiczne)

Page 105: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Problemy związane z implementacją

✦ Jak ustanawiać połączenia✦ Czy łącze może być powiązane z więcej niż

dwoma procesami?✦ Ile może być łączy na każdą parę procesów✦ Jaka jest pojemność łącza? Czy łącze ma obszar

buforowy? Jak duży?✦ Jaki jest rozmiar komunikatów (stały, zmienny)?✦ Czy łącze jest jest jedno- czy dwukierunkowe ✦ Komunikacja (bez)pośrednia, (a)symetryczna?

Page 106: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Komunikacja bezpośrednia

✦ Proces musi jawnie nazwać odbiorcę✦ nadaj(P,komunikat) - nadaj komunikat do procesu P✦ odbierz(Q,komunikat) - odbierz komunikat od procesu Q

✦ Własności łącza✦ łącze jest ustanawiane automatycznie, do komunikowania

wystarczy znajomość identyfikatorów✦ łącze dotyczy dokładnie dwóch procesów✦ między każdą parą procesów istnieje dokładnie jedno łącze✦ łącze jest zwykle dwukierunkowe, ale może być

jednokierunkowe

Page 107: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Komunikacja pośrednia

✦ Komunikaty są nadawane i odbierane za pomocą skrzynek pocztowych (ang. mailboxes) nazywanych także portami (ang. ports)✦ każda skrzynka ma swój unikalny identyfikator✦ procesy komunikują się jeśli mają wspólną skrzynkę

✦ Własności łącza✦ łącze jest ustanawiane jedynie wtedy gdy procesy dzielą skrzynkę✦ łącze może być związane z więcej niż dwoma procesami✦ każda para procesów może mieć kilka łączy z których każdy

odpowiada jakiejś skrzynce✦ łącze może być jedno- lub dwukierunkowe

Page 108: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Komunikacja pośrednia (c.d)✦ System operacyjny dostarcza mechanizmów do

✦ tworzenia nowej skrzynki✦ nadawania i odbierania komunikatów za pomocą skrzynki✦ likwidowania skrzynki

✦ Dzielenie skrzynki : P, Q, R dzielą skrzynkę A✦ P nadaje; Q i R odbierają✦ który proces otrzyma komunikat nadany przez P?

✦ Rozwiązanie✦ zezwalać jedynie na łącza między dwoma procesami✦ pozwalać najwyżej jednemu procesowi na odbiór✦ pozwalać aby system wybrał i poinformował odbiorcę

Page 109: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Buforowanie

✦ Łącze ma pojemność określającą maksymalną liczbę komunikatów, które mogą w nim przebywać dlatego musimy mieć kolejkę komunikatów

✦ Metody implementacji kolejki✦ pojemność zerowa - nadawca musi czekać aż odbiorca

odbierze komunikat✦ pojemność ograniczona - nadawca musi poczekać jeśli

kolejka jest pełna✦ pojemność nieograniczona - nadawca nigdy nie czeka

Page 110: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Sytuacje wyjątkowe

✦ Zakończenie procesu✦ system musi powiadamiać o zakończeniu procesu

✦ Utrata komunikatów✦ system powinien wykryć utratę komunikatu✦ proces nadawczy powinien umieć powtórzyć komunikat✦ system zawiadamia proces nadawczy

✦ Zniekształcenie komunikatów✦ sumy kontrolne, sprawdzanie parzystości, CRC

Page 111: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Komunikacja klient/serwer -implementacje

✦ Gniazda (ang. sockets)

✦ RPC (ang. Remote Procedure Calls)

✦ RMI (ang. Remote Method Invocation)

Page 112: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

RPC

✦ Wywołania procedur między systemami ✦ Namiastka (ang. stub, proxy) po stronie klienta do

przekazania parametrów zdalnej procedurze oraz po stronie serwera do wywołania procedury

✦ Klient: namiastka procedury zdalnej lokalizuje port na serwerze i przetacza (ang. marshall) opakowane parametry i komunikaty

✦ Serwer: namiastka procedury na serwerze rozpakowuje parametry, wywołuje procedurę i zwraca wynik w ten sam sposób

Page 113: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Architektura RPC

zdalnaaplikacjaserwera

aplikacjaklienta

namiastka namiastka

mechanizm RPC

mechanizm RPC

aplikacja lokalna lub system operacyjny

przetaczanie

lokalne wywołanieprocedury

odpowiedź lokalna

odpowiedź lokalna

odpowiedź lokalna

lokalne wywołanie

procedury

RPC

Page 114: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

RPC - implementacja Sunużytkownik zleca jądruwysłanie komunikatu RPC do procedury X

jądro wysyła komunikat do demona randezvousz pytaniem o numer portu

from: klient; to: serwer port: randezvous

re: adres dla RPC X

randezvous otrzymuje komunikat i przygotowuje

odpowiedź

randezvous odpowiada klientowi: port P

from: serwer; to: klient port: kernel; re: adres adres dla RPC X <P>

jądro wstawia port P do komunikatu RPC

użytkownika

jądro wysyła komunikat RPC

użytkownika

from: klient; to: serwer port: P ; <treść>

demon nasłuchujący na porcie P otrzymuje

komunikat

demon obsługuje żądanie i przygotowuje

wyniki

from: RPC; port: P to: klient; port: jądro

<wyniki>

jądro otrzymuje odpowiedź i przekazujeją do użytkownika

klient komunikaty serwer

Page 115: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

RMI

✦ Realizacja RPC na maszynie Javy✦ Pozwala jednej maszynie wywołać metodę na

zdalnym obiekcie ✦ Klient: namiastka (ang. stub) tworzy paczkę

(ang. parcel) zawierającą nazwę metody wywoływanej na serwerze oraz parametry i przetacza je do serwera

✦ Serwer: szkielet (ang. skeleton) odpowiada za rozpakowanie parametrów i wywołanie metody

Page 116: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

RMI - przetaczanie

klient zdalny obiekt

namiastka szkielet

A, B metoda

zmienna boolowska

val=serwer.metoda(A,B) boolean metoda(Obiekt x, Obiekt y) {

implementacja metody metoda . . . . . . . . . . .

}

Page 117: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Wątki

✦ Wątek (ang. thread) nazywany niekiedy procesem lekkim (ang. lightweight process -LWP) jest podstawową jednostką wykorzystania procesora. W skład tej jednostki wchodzą✦ licznik rozkazów✦ zbiór rejestrów✦ obszar stosu

Page 118: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Wątki (c.d.)

✦ Wątek współużytkuje z innymi równorzędnymi wątkami ✦ sekcję kodu✦ sekcję danych✦ zasoby systemu (takie jak otwarte pliki i sygnały) zwane

wspólnie zadaniem (ang. task)

✦ Proces tradycyjny lub ciężki (ang. heavyweight) to zadanie o jednym wątku

Page 119: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Procesy wielowątkowe

plikidanekod kod dane pliki

rejestry rejestry rejestry rejestrystos

stos stos stos

Page 120: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Wątki - korzyści

✦ W zadaniu wielowątkowym (ang. multithreaded task) w czasie gdy wątek serwer jest zablokowany i oczekuje, drugi wątek tego samego zadania może się wykonywać ✦ współpraca wielu wątków w tym samym zadaniu zwiększa

przepustowość oraz polepsza wydajność systemu✦ program użytkowy wykorzystujący wspólny bufor (np.

producent-konsument) stosuje wątki

Page 121: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykład RPC - jeden wątek

żądanie RPC

żądanie RPC

serwer 1

czas

zablokowany, oczekuje na odpowiedź od RPC

wykonywany

zablokowany, oczekuje na procesor używany przez wątek B

serwer 2

proces

Page 122: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykład RPC - dwa wątki

żądanie RPC

żądanie RPC serwer 2

serwer 1

czas

zablokowany, oczekuje na odpowiedź od RPC

wykonywany

zablokowany, oczekuje na procesor używany przez wątek B

wątek B

wątek Aproces

Page 123: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Wątki a proces

✦ Zablokowanie procesu powoduje zablokowanie wszystkich jego wątków albowiem dzielą one tę samą przestrzeń adresową

✦ Zakończenie procesu wiąże się z zakończeniem wszystkich jego wątków

Page 124: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Wątki - działanie

✦ Wątki mogą tworzyć wątki potomne (ang. spawn) i blokować (ang. block) się do czasu zakończenia wywołań systemowych

✦ Działanie wątków przypomina działanie procesów (gotowe, zablokowane, aktywne (ang. unblock), kończące (ang. finish)) jednak wątki nie są niezależne od siebie✦ np. oczekiwanie na we/wy ✦ przechowanie kontekstu: rejestry, licznik i stos✦ wybranie nowego wątku z kolejki wątków gotowych

Page 125: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Stany wątku

gotowy aktywny

zablokowany

Page 126: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Typy wątków ✦ Wątki (ang. kernel-level, KLT) obsługiwane przez jądro

✦ Mach, OS/2, Windows 9x/NT/2K, Linux, BeOS

✦ Wątki tworzone na poziomie użytkownika (ang. user-level, ULT) za pomocą funkcji bibliotecznych✦ system Andrew✦ POSIX (IEEE 1003.1c): P-wątki (ang. Pthreads), ✦ Mach: C-threads,✦ Solaris 2: UI-threads ✦ zaleta: szybsze przełączanie, wada: planowanie wątków

✦ Hybrydowe podejście - Solaris 2✦ Wątki zarządzane przez JVM

Page 127: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Relacje międzywątkowe

PP P

P

Pwątki poziomu użytkownika wątki poziomu jądra wątki mieszane

wątek poziomu jądrawątek poziomu użytkownika proces

przestrzeń jądra

przestrzeńużytkownika

biblioteka wątków biblioteka wątków

Page 128: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Sposoby odwzorowań wątków

✦ Wiele do jednego (ang. Many-to-One)✦ biblioteka “green threads” Solaris 2✦ wykonanie blokującego wywołania systemowego blokuje proces

✦ Jeden do jednego (ang. One-to-One)✦ OS/2, Windows 9x/NT/2K/XP✦ równoległe wykonywanie wątków (na procesorach)✦ ograniczona ilość wątków

✦ Wiele do wielu (ang. Many-to-Many)✦ Solaris 2, IRIX, HP-UX, True 64 (Digital UNIX) ✦ funkcjonalność w Windows NT/2K/XP w postaci biblioteki włókien

(ThreadFiber)✦ Jeden do wielu (ang. One-to-Many)

✦ wątek może migrować pomiędzy systemami (Clouds, Emerald)

Page 129: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Many-to-One

wątek jądra

wątek użytkownika

Page 130: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

One-to-one

wątek użytkownika

wątek jądra

Page 131: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Many-to-many

wątek użytkownika

wątek jądra

Page 132: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Solaris 2 - wątki

wątek użytkownika

proces lekki

wątek jądrowy

procesor

Page 133: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Java - wątki

✦ Język Java dostarcza mechanizmów do tworzenia i zarządzanie wątkami

✦ Rozszerzenie klasy Thread✦ http://cs-www.cs.yale.edu/homes/avi/os-book/os6/index.html

✦ Zarządzanie wątkami przez JVM✦ Odwzorowanie wątków: jądro - JVM

✦ W9x/NT/2K/XP - one-to-one✦ Solaris 2 - many-to-one (green threads)

✦ Solaris 2.6 - many-to-many (od wersji 1.1)

✦ Wątki Javy – tworzenie wątku za pomocą metody start (przykład)

Page 134: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Przykłady poleceń: Windows XP✦ Menedżer zadań

✦ Crtl+Shift+Esc✦ Ctrl+Alt+Delete

✦ Procesy✦ Widok✦ Wybierz kolumny

✦ Uruchom✦ start /?✦ msconfig.exe

✦ Logo Win+Break✦ Zaawansowane✦ Wydajność✦ Ustawienia

Page 135: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.
Page 136: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.
Page 137: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.
Page 138: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.
Page 139: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.
Page 140: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Literatura

✦ A. Silberschatz, P.B. Gavin, G. Gagne, Podstawy systemów operacyjnych, wyd. IV, WNT, 2005 (tł. 6th ed.)✦ http://cs-www.cs.yale.edu/homes/avi/os-book/os6/index.html

✦ W. Stallings – Systemy operacyjne, Robomatic, 2004✦ http://williamstallings.com/OS/OS5e.html

Page 141: Zbigniew S. Szewczak Systemy Operacyjnezssz/ZSI2006/W2.pdfToruń, 2006 Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami.

Literatura (c.d.)

✦ M. Beck,H. Bohme,M. Dziadzka,U. Kunitz,R. Magnus, D. Verworver, Linux Kernel. Jądro Linuxa, Mikom, 1999

✦ C. Hunt, Serwery sieciowe Linuksa, MIKOM, Warszawa, 2000

✦ D. P. Bovet & M. Cesati, Linux Kernel, RM, Warszawa, 2001✦ O. Kirch & T. Dawson, Linux - podręcznik administratora

sieci, RM, Warszawa, 2000✦ ftp.icm.edu.pl/pub/Linux/sunsite/docs/LDP/nag2.pdf

✦ Æ. Frisch, Unix – Administracja systemu, RM, 2003 ✦ R. Eckstein, Samba, RM, Warszawa, 2000✦ Linux Magazine✦ LinuxPlus, SOFTWARE, Wyd. Sp. z o.o.✦ Chip, Linux Magazine