Zbigniew S. Szewczak Systemy Operacyjne. Wykład 2 Jądro systemu. Zarządzanie procesami.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Zbigniew S. Szewczak Systemy Operacyjne. Wykład 2 Jądro systemu. Zarządzanie procesami."

Transkrypt

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

2 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

3 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

4 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, 4.4BSD, Linux Maszyny wirtualne: JavaVM, VMware, Virtual PC, UML (User Mode Linux)

5 Warstwy a mikrojądro tryb jądra użytkownicy systemy plików komunikacja IPC zarządzanie we/wy pamięć wirtualna tryb użytkownika proces klienta moduły sterujące serwer plików serwer procesów pamięć wirtualna zarządzanie procesami sprzęt mikrojądro sprzęt

6 Struktura jądra systemu Unix warstwa użytkownika pułapka program użytkownika biblioteki warstwa jądra interfejs funkcji systemowych podsystem plików cache (bufory) znakowe blokowe moduły sterujące podsystem zarządzania procesami komunikacja międzyprocesowa planista przydziału procesora zarządzanie pamięcią warstwa jądra warstwa sprzętu interfejs sprzętu sprzęt

7 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

8 Windows XP proces logon aplikacje systemu OS/2 aplikacje systemu Win16 aplikacje systemu Win32 aplikacje systemu MS-DOS aplikacje systemu POSIX podsystem bezpieczeństwa podsystem OS/2 Win16 VDM MS-DOS VDM podsystem POSIX pakiet uwierzytelniania baza danych zarządcy bezpieczeństwa kont podsystem Win32 tryb użytkownika zarządca wejścia-wyjścia system plików zarządca pamięci podręcznej moduły obsługi urządzeń moduły obsługi siecii zarządca obiektów monitor bezpieczeństwa odniesień egzekutor jądro zarządca procesów zarządca automatycznego instalowania warstwa abstrakcji sprzętu (HAL) zarządca pamięci wirtualnej udogodnienia wywołania procedur lokalnych tryb jądra zarządca okien moduły sterujące urządzeń graficznych sprzęt

9 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 ( UML ( ), 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

10 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)

11 Model awirtualny a wirtualny maszyna awirtualna maszyna wirtualna proces F proces B proces D proces B proces A proces C proces E proces A jądro sprzęt interfejs programowy jądro jądro sprzęt jądro VM1 VM2 VM3 implementacja maszyny wirtualnej

12 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

13 Virtual PC - VM W98

14 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

15 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

16 Przykłady OS/MVT - Initial Program Load (IPL) ręczne ustawienie adresu MS/DOS - LOADLIN.EXE SYSLINUX LiLo - Linux Loader GRUB - GRand Unified Bootloader Linux+Win9x+Grub-HOWTO Projekt PUPA = GRUBng

17 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 cp /usr/src/linux/system.map /boot/system.map cd /boot ln -sf System.map System.map cd /boot/grub cp -av grub.conf grub.conf.old vi grub.conf dodajemy bzimage

18 System Linux - GRUB (c.d.) Dodanie nowego jądra (c.d.) dodajemy bzimage do /boot/grub/grub.conf default=1 timeout=10 spashimage=(hd0,1)/boot/grub/spash.xpm.gz title Windows 2000 rootverify (hd0,0) chainloader +1 title Red Hat Linux ( ) root (hd0,2) kernel /boot/vmlinuz ro root=/dev/hda3 initrd=/boot/initrd img title Red Hat Linux (2.4.23) root (hd0,2) kernel /boot/bzimage ro root=/dev/hda3

19 System Linux - boot Lilo (Linux Loader) dodanie nowego jądra cd /usr/src/linux/arch/i386/boot cp bzimage /boot/bzimage cp /usr/src/linux/system.map /boot/system.map ln -sf System.map System.map cd /etc cp -av lilo.conf lilo.conf.old vi lilo.conf dodajemy bzimage

20 System Linux - boot (c.d.) Lilo (Linux Loader) dodajemy bzimage 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 label=linux read-only root=/dev/hda1 image=/boot/bzimage label=test read-only root=/dev/hda1

21 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 /mnt/rh90 przeładowanie systemu reboot

22 System Linux - boot (c.d.) Ładowanie z DOS-a : LOADLIN dosutils przykład: loadlin c:\rh90\bzimage 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?

23 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

24 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_3 other=/dev/hda2 label=grupa_1 other=/dev/hda3 label=grupa_2 other=/dev/hda4 label=grupa_3

25 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 ( ) root (hd0,2) kernel /boot/vmlinuz ro root=/dev/hda4 initrd=/boot/initrd img title Red Hat Linux (2.4.23) root (hd0,2) kernel /boot/bzimage ro root=/dev/hd4

26 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 /mnt/usb/vmlinuz cp /boot/initrd 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

27 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 ttys0 vt100 S1:2345:respawn:/sbin/agetty -i -h -L 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

28 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= word=8 --parity=no --stop=1 terminal --timeout=15 serial console #kernel /boot/bzimage ro root=/dev/hda3 console=ttys0,38400 console=tty0 title Fedora Core ( ) root (hd0,1) # kernel /boot/vmlinuz ro root=label=/ rhgb quiet kernel /boot/vmlinuz ro root=/dev/hda2 console=ttys0,38400 console=tty0 initrd /boot/initrd img title Fedora Core (2.6.9-mm1) root(hd0,1) kernel /boot/bzimage mm1 ro root=/dev/hda2 console=ttys0,38400 console=tty0 initrd /boot/initrd mm1.img title Other rootnoverify (hd1,0) chainloader +1

29 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

30 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 ; , nr_poboczny - parzysty to jądro stabilne, nieparzysty to jądro rozwojowe nr_łaty (patch) - numer łaty dla aktualnej wersji jądra np jądro rozwojowe, łata (patch) trzynasta

31 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 tar.gz ftp ftp.icm.edu.pl cd /pub/linux/kernel/v2.4 get linux tar.gz get patch gz

32 System Linux - jądro (c.d.) RedHat Linux 9.0 jednolity układ graficzny Open Office, Mozilla,... kernel , GCC Libc Fedora Core 2,3 kernel Fedora Core 4 kernel

33 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 IPv6 NFS v3 ATM TUX WWW Serwer 2.0 zwiększone bezpieczeństwo (czerwiec, 2004)

34 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 tar.bz2 (sierpień, 2004) tar xvfj linux tar.bz2 (październik, 2005) Linus zachowuje numerację x.y.z, numeracja x.y.z.? oznacza jedynie trywialne patche

35 System Linux - jądro (2.4) Rozpakowanie nowego jądra cd /usr/src/ rm linux mkdir linux ln -s linux linux tar xvzf linux tar.gz Stosowanie łat cd /usr/src uname -a : linux !!!!!! gunzip patch gz; patch -p0 patch find /usr/src/linux -follow -name *.rej -print find /usr/src/linux -follow -name *# -print

36 Struktura katalogowa kodu źródłowego systemu Linux linux modules mm net kernel init lib include ipc ext fs unix inet arch drivers nfs mips net linux asm-alpha ext2 proc alpha char asm-i386 xiafs minix sparc block asm-m68k isofs msdos ppc scsi asm-generic hpfs sysv i386 sound asm-mips umsdos kernel boot mm math-emu asm-sparc

37 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]

38 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/?]

39 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 and the Battery Powered Linux mini-howto, available from Note that, even if you say N here, Linux on the x86 architecture will issue the hlt instruction if nothing is to be done, thereby sending the processor to sleep and saving power.

40 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

41 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

42 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

43 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

44 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) y Keepalive and linefill (CONFIG_SLIP_SMART) [N/y/?] (NEW) y Six bit SLIP encapsulation (CONFIG_SLIP_MODE_SLIP6) [N/y/?] (NEW) y

45 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/?]

46 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

47 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/?] y NFS 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

48 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/?] y Proprietary 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

49 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 (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

50 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

51 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

52 System Linux - jądro (2.4) Ładowalne sterowniki urządzeń make modules_install cd /lib/modules/ 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

53 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

54 Jądro 2.6 (FC2,3) rozpakowanie źrodła jak dla 2.4 konfigurowanie wiele opcji, lepsze grupowanie cd /usr/src/linux cp../linux /configs/kernel i686.config.config make menuconfig

55 make xconfig

56 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 img grub.conf Title Fedora Core 2 ( ) root (hd0,2) kernel /boot/bzimage ro root=label=/ rhgb quiet initrd /boot/initrd img

57 Jądro 2.6 (FC4) (c.d.) bzip2 cd linux tar.bz2 tar xvf - -C /usr/src cd /usr/src ln s linux linux cd linux patch -p0 < kernel.patch cp av../kernels/ _fc4-i686/.config. make menuconfig make all make modules_install make install Nvidia driver SATA driver

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

59 Modyfikowanie jądra (FC2) Przykład: Intel PRO/Wireless ipw2100-firmware at.noarch.rpm ipw2100-firmware at.src.rpm /usr/lib/hotplug/firmware atrpms.net instalacja gotowych modułów kernel-module-hostap _10.rhfc2.at rhfc2.at.i686.rpm kernel-module-ipw _10.rhfc2.at rhfc2.at.i686.rpm Nałożenie patchy na jądro hostap-driver rhfc2.at.src.rpm ipw rhfc2.at.src.rpm konfigurowanie jądra (hostap, ipw2100), kompilacja (długo), instalacja

60 Debugery jądra systemu Linux (1) gdb /usr/src/linux/vmlinux /proc/core kgdb linux kernel source level debugger 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

61 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 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 0xc kdb>rd kdb>bp sys_write

62 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) < SG 7 <--> 7 DTR > (6+8) Testowanie - Windows: Hyperterminal, Linux: Minicom Zastosowanie Linux<->Linux (TCP/IP), SLIP, PPP

63 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

64 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

65 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

66 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

67 Procesy a zasoby A B C pamięć wirtualna zasoby procesor we/wy we/wy pamięć

68 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

69 Diagram stanów procesu nowy przyjęcie przerwanie wyjście zakończony gotowy aktywny obsłużenie zdarzenia lub operacja we/wy decyzja planisty czekający oczekiwanie na zdarzenie lub na wykonanie operacji we/wy

70 Diagram stanów procesu - SVR5 brak pamięci gotowy swap out wakeup uśpiony swap out utworzony (fork) swap in swap out swap out fork gotowy wakeup uśpiony w pamięci wywłaszczony decyzja planisty return preempt aktywny (kernel) sleep exit return aktywny (user) zombie przerwanie, funkcja systemowa przerwanie, powrót z przerwania

71 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

72 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

73 Blok kontrolny procesu (c.d.) wskaźnik stan procesu numer procesu licznik rozkazów rejestry ograniczenia pamięci wykaz otwartych plików...

74 Przełączanie procesora wykonywanie proces A system operacyjny przerwanie lub wywołanie systemowe proces B... przechowaj stan w bloku kontrolnym 0 odtwórz stan z bloku kontrolnego 1 bezczynność bezczynność przerwanie lub wywołanie systemowe wykonywanie... przechowaj stan w bloku kontrolnym 1 odtwórz stan z bloku kontrolnego 0 bezczynność wykonywanie

75 Struktura tablic kontrolnych pamięć urządzenia pliki procesy tablice pamięci tablice we/wy tablice plików tablica procesu proces 1 proces 2... proces n obraz procesu proces 1 obraz procesu proces n

76 Przykład - IBM/360 & OS/MVT TCB TCB task A save save link ep=a link ep=b TCB task B save return attach ep=c, ECB=E TCB task C return wait 1,E return post E Supervisor ECB

77 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

78 Kolejka zadań i kolejki do urządzeń we/wy kolejka procesów gotowych jednostka taśmowa jednostka dyskowa 0 czoło ogon czoło ogon czoło ogon blok kontrolny 7 blok kontrolny 2 rejestry... rejestry blok kontrolny 3 blok kontrolny 14 blok kontrolny 6... jednostka dyskowa 1 jednostka terminali czoło ogon czoło ogon blok kontrolny 2

79 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

80 Diagram kolejek w planowaniu procesów kolejka procesów gotowych CPU we/wy kolejka operacji we/wy zamówienia operacji we/wy zużycie kwantu czasu potomek działa powołanie procesu potomnego wystąpienie przerwania czekanie na przerwanie

81 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

82 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)

83 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) - swapping (wymiana) w celu uzyskania lepszego doboru procesów

84 Planista średnioterminowy sprowadź do pamięci (swap in) usunięte procesy częściowo wykonane usuń z pamięci (swap out) kolejka procesów gotowych CPU koniec we/wy kolejki procesów oczekujących na we/wy

85 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)

86 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

87 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

88 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

89 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

90 Przykład new.c int main() { } gcc -o new new.c./new ps execlp("/bin/ps","ps",0);

91 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

92 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

93 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. cascading termination)

94 Zombie zombie.c #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); } ps -al

95 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

96 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

97 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)

98 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?

99 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

100 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

101 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ę

102 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

103 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

104 Komunikacja klient/serwer - implementacje Gniazda (ang. sockets) RPC (ang. Remote Procedure Calls) RMI (ang. Remote Method Invocation)

105 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

106 Architektura RPC aplikacja klienta zdalna aplikacja serwera odpowiedź lokalna odpowiedź lokalna odpowiedź lokalna lokalne wywołanie procedury lokalne wywołanie procedury aplikacja lokalna lub system operacyjny namiastka mechanizm RPC przetaczanie RPC namiastka mechanizm RPC

107 RPC - implementacja Sun użytkownik zleca jądru wysłanie komunikatu RPC do procedury X jądro wysyła komunikat do demona randezvous z pytaniem o numer portu from: klient; to: serwer port: randezvous re: adres dla RPC X randezvous otrzymuje komunikat i przygotowuje odpowiedź jądro wstawia port P do komunikatu RPC użytkownika from: serwer; to: klient port: kernel; re: adres adres dla RPC X <P> randezvous odpowiada klientowi: port P jądro wysyła komunikat RPC użytkownika from: klient; to: serwer port: P ; <treść> demon nasłuchujący na porcie P otrzymuje komunikat jądro otrzymuje odpowiedź i przekazuje ją do użytkownika from: RPC; port: P to: klient; port: jądro <wyniki> demon obsługuje żądanie i przygotowuje wyniki klient komunikaty serwer

108 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

109 RMI - przetaczanie klient zdalny obiekt val=serwer.metoda(a,b) boolean metoda(obiekt x, Obiekt y) { implementacja metody metoda } namiastka szkielet A, B metoda zmienna boolowska

110 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

111 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

112 Procesy wielowątkowe kod dane pliki kod dane pliki rejestry stos rejestry rejestry rejestry stos stos stos

113 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

114 Przykład RPC - jeden wątek czas żądanie RPC żądanie RPC proces serwer 1 serwer 2 zablokowany, oczekuje na odpowiedź od RPC zablokowany, oczekuje na procesor używany przez wątek B wykonywany

115 Przykład RPC - dwa wątki czas żądanie RPC serwer 1 wątek A proces wątek B żądanie RPC serwer 2 zablokowany, oczekuje na odpowiedź od RPC zablokowany, oczekuje na procesor używany przez wątek B wykonywany

116 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

117 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

118 Stany wątku gotowy aktywny zablokowany

119 Typy wątków Wątki (ang. kernel-level) obsługiwane przez jądro Mach, OS/2, Windows 9x/NT/2K, Linux, BeOS Wątki tworzone na poziomie użytkownika (ang. userlevel) za pomocą funkcji bibliotecznych system Andrew POSIX: 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

120 Relacje międzywątkowe przestrzeń użytkownika biblioteka wątków biblioteka wątków P przestrzeń jądra P P wątki poziomu użytkownika wątki poziomu jądra wątki mieszane P wątek poziomu użytkownika wątek poziomu jądra P proces

121 Sposoby odwzorowań wątków Wiele do jednego (ang. Many-to-One) Jeden do jednego (ang. One-to-One) OS/2, Windows 9x/NT/2K Wiele do wielu (ang. Many-to-Many) Solaris 2, IRIX, HP-UX, Windows NT/2K (ThreadFiber)

122 Many-to-One wątek użytkownika wątek jądra

123 One-to-one wątek użytkownika wątek jądra

124 Many-to-many wątek użytkownika wątek jądra

125 Solaris 2 - wątki wątek użytkownika proces lekki wątek jądrowy procesor

126 Java - wątki Język Java dostarcza mechanizmów do tworzenia i zarządznie wątkami Rozszerzenie klasy Thread html Zarządzanie wątkami przez JVM Odwzorowanie wątków: jądro - JVM W9x/NT/2K - one-to-one Solaris 2 - many-to-one (green threads)

127 Przykłady poleceń: Solaris 2 vmstat licznik [przedział] licznik - liczba raportów przedział - przerwa między raportami (w sek.) vmstat 5 4 r - ilość działających procesów czekających na CPU cs - ilość przełączeń kontekstu us - procent cykli CPU w trybie użytkownika sy - procent cykli CPU w trybie jądra id - procent niewykorzystanych cykli CPU

128 Przykłady poleceń: Solaris 2 (c.d.) dispadmin -l dispadmin -g -c TS ts_quantum - kwant czasu ts_tqexp - nowy priorytet po wykorzystaniu czasu ts_slpret - nowy priorytet po wyjściu z uśpienia ts_maxwait - maksymalny czas pozostawania gotowym ts_lwait - nowy priorytet po przekroczeniu ts_maxwait priocntl -d -i all

129 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

130

131

132

133

134

135 Literatura 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

136 Linux w Internecie - WWW - dokumentacja strona G. Singletona - strona J. Go - Linux Journal - Linux Gazette Linux Weakly News

137 Linux w Internecie - grupy dyskusyjne (Usenet) comp.os.linux.advocacy - zalety Linuxa comp.os.linux.alpha - Linux na DEC Alpha comp.os.linux.announce - ogłoszenia comp.os.linux.answers - pytania, FAQ, HOWTO comp.os.linux.development.apps - aplikacje comp.os.linux.development.system - jądro comp.os.linux.hardware - sprzęt obsługiwany comp.os.linux.misc - pozostałe zagadnienia comp.os.linux.networking - połączenia sieciowe

138 Linux w Internecie - grupy dyskusyjne (Usenet) (c.d.) comp.os.linux.portable - Linux na laptopy comp.os.linux.setup - instalacja Linuxa comp.os.linux.security - bezpieczeństwo comp.os.linux.x - X windows w Linuxie pl.comp.os.linux - system Linux pl.comp.os.linux.sprzet - jaki komputer należy sobie kupić jeśli chcemy zainstalować system operacyjny Linux

Jądro systemu Linux jest bezpłatnie rozpowszechniane Jądro systemu Linux jest utrzymywane przez Linusa Torvaldsa Numeracja jądra

Jądro systemu Linux jest bezpłatnie rozpowszechniane Jądro systemu Linux jest utrzymywane przez Linusa Torvaldsa Numeracja jądra 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ę

Bardziej szczegółowo

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

Proces y i y w i ąt ą ki

Proces y i y w i ąt ą ki Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

Zbigniew S. Szewczak Systemy Operacyjne. Wykład 2 Jądro systemu. Zarządzanie procesami.

Zbigniew S. Szewczak Systemy Operacyjne. Wykład 2 Jądro systemu. Zarządzanie procesami. Zbigniew S. Szewczak Systemy Operacyjne Wykład 2 Jądro systemu. Zarządzanie procesami. Toruń, 2004 O czym będzie? Architektury systemów operacyjnych Rozruch systemu Budowanie jądra systemu Koncepcja procesu

Bardziej szczegółowo

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie. Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych. Wykład 13 Instalacja systemu operacyjnego.

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych. Wykład 13 Instalacja systemu operacyjnego. Zbigniew S. Szewczak Podstawy Systemów Operacyjnych Wykład 13 Instalacja systemu operacyjnego. Toruń, 2004 O czym będzie? Instalowanie systemu Linux Instalowanie Windows Start systemu (booting) Generacja

Bardziej szczegółowo

projektowanie systemu

projektowanie systemu projektowanie systemu cel użytkownika: system operacyjny powinien być wygodny, łatwy w użyciu, prosty do nauczenia, niezawodny, bezpieczny i szybki cel producenta: system operacyjny powinien być łatwy

Bardziej szczegółowo

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 3 Procesy i wątki Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Pojęcie procesu Program = plik wykonywalny na dysku Proces = uruchomiony i wykonywany program w pamięci

Bardziej szczegółowo

Wprowadzenie do systemów operacyjnych

Wprowadzenie do systemów operacyjnych SOE - Systemy Operacyjne Wykład 1 Wprowadzenie do systemów operacyjnych dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW System komputerowy Podstawowe pojęcia System operacyjny

Bardziej szczegółowo

Procesy, wątki i zasoby

Procesy, wątki i zasoby Procesy, wątki i zasoby Koncepcja procesu i zasobu, Obsługa procesów i zasobów, Cykl zmian stanów procesu i kolejkowanie, Klasyfikacja zasobów, Wątki, Procesy i wątki we współczesnych systemach operacyjnych.

Bardziej szczegółowo

Koncepcja procesu. Procesy i wątki. Diagram stanów procesu. Stan procesu. Blok kontrolny procesu Process Control Block (PCB)

Koncepcja procesu. Procesy i wątki. Diagram stanów procesu. Stan procesu. Blok kontrolny procesu Process Control Block (PCB) Procesy i wątki Koncepcja procesu Koncepcja procesu Szeregowanie procesów (process scheduling) Operacje na procesach Procesy współpracujące Komunikacja między procesami Komunikacja w systemach typu Klient

Bardziej szczegółowo

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań Budowa systemu komputerowego Przerwania Jednostka centralna Sterownik dysku Szyna systemowa (magistrala danych) Sterownik drukarki Sterownik pamięci operacyjnej Pamięć operacyjna Sterownik sieci Przerwanie

Bardziej szczegółowo

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań Budowa systemu komputerowego Przerwania Jednostka centralna Sterownik dysku Szyna systemowa (magistrala danych) Sterownik drukarki Sterownik pamięci operacyjnej Pamięć operacyjna I NIC Sterownik sieci

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie

Bardziej szczegółowo

Zarządzanie procesami i wątkami

Zarządzanie procesami i wątkami SOE - Systemy Operacyjne Wykład 4 Zarządzanie procesami i wątkami dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pojęcie procesu (1) Program zbiór instrukcji dla procesora

Bardziej szczegółowo

Jądro systemu operacyjnego

Jądro systemu operacyjnego Jądro systemu operacyjnego Jądro (ang. kernel) jest to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Zapewnia ono usługi systemowe takie jak: komunikacja między

Bardziej szczegółowo

System operacyjny MACH

System operacyjny MACH Emulacja w systemie MCH System operacyjny MCH 4. SD Systemu V HP/UX MS-DOS VMS inne Mikrojądro Zbigniew Suski Zbigniew Suski Podstawowe cele projektu MCH! Dostarczenie podstawy do budowy innych systemów

Bardziej szczegółowo

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz Podstawy informatyki System operacyjny dr inż. Adam Klimowicz System operacyjny OS (ang. Operating System) Program komputerowy bądź zbiór programów, który zarządza udostępnianiem zasobów komputera aplikacjom.

Bardziej szczegółowo

Struktury systemów operacyjnych

Struktury systemów operacyjnych Struktury systemów operacyjnych Zadania s.o. Usługi s.o. Budowa s.o. Podejście warstwowe Przykładowe konstrukcje Funkcje systemowe Programy systemowe Maszyny wirtualne Tworzenie i uruchamianie s.o. Procesy

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Procesy, zasoby i wątki Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów Wątki Procesy i wątki

Bardziej szczegółowo

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy Systemy operacyjne Systemy operacyjne Dr inż. Ignacy Pardyka Literatura Siberschatz A. i inn. Podstawy systemów operacyjnych, WNT, Warszawa Skorupski A. Podstawy budowy i działania komputerów, WKiŁ, Warszawa

Bardziej szczegółowo

Procesy i wątki. Wątki. Procesy

Procesy i wątki. Wątki. Procesy Procesy i wątki Procesy Koncepcja procesu. Planowanie procesów. Działania na procesach. Procesy współpracujące. Komunikacja międzyprocesowa. Wątki Implementacja wątków. Modele wielowątkowości. Schematy

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Dariusz Wawrzyniak Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów Wątki Procesy i wątki we współczesnych systemach operacyjnych Plan

Bardziej szczegółowo

2.1 Pojęcie wątku... 13 2.2 Modele wielowątkowości... 15 2.3 Wybrane zagadnienia wielowątkowości... 16 2.4 Wątki POSIX... 18

2.1 Pojęcie wątku... 13 2.2 Modele wielowątkowości... 15 2.3 Wybrane zagadnienia wielowątkowości... 16 2.4 Wątki POSIX... 18 Spis treści Spis treści 1 Procesy 1 1.1 Definicja procesu............................................. 1 1.2 Operacje na procesach.......................................... 3 1.3 Planowanie procesów...........................................

Bardziej szczegółowo

System komputerowy. System komputerowy

System komputerowy. System komputerowy System komputerowy System komputerowy System komputerowy układ współdziałających ze sobą (według pewnych zasad) dwóch składowych: sprzętu komputerowego (hardware) oraz oprogramowania (software) po to,

Bardziej szczegółowo

Zarządzanie procesorem

Zarządzanie procesorem Zarządzanie procesorem 1. Koncepcja procesu 2. Blok kontrolny procesu 3. Planowanie (szeregowanie) procesów! rodzaje planistów! kryteria planowania 4. Algorytmy planowania! FCFS! SJF! RR! planowanie priorytetowe!

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej

Bardziej szczegółowo

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego Cel ćwiczenia: Celem zajęć jest zdobycie doświadczenia i umiejętności instalacji systemu operacyjnego z rodziny Unix bez wykorzystania

Bardziej szczegółowo

Systemy operacyjne. Paweł Pełczyński

Systemy operacyjne. Paweł Pełczyński Systemy operacyjne Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie Struktura systemów operacyjnych Procesy i Wątki Komunikacja międzyprocesowa Szeregowanie procesów Zarządzanie

Bardziej szczegółowo

1. Etapy rozwoju systemów komputerowych

1. Etapy rozwoju systemów komputerowych 1 Sieciowe Systemy Operacyjne Wprowadzenie do wykładu, podstawowe definicje, rola 1 systemu operacyjnego Procesy POSIX, zarządzanie procesami 2 Pliki, komunikacja przez pliki, blokowanie 1 Łącza nazwane

Bardziej szczegółowo

Programowanie współbieżne Wykład 2. Iwona Kochańska

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

Bardziej szczegółowo

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Etapy uruchamiania systemu 010 2 Systemy operacyjne i sieci komputerowe. Część 010. I. Etapy uruchamiania systemu Windows

Bardziej szczegółowo

Budowa systemów komputerowych

Budowa systemów komputerowych Budowa systemów komputerowych Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Współczesny system komputerowy System komputerowy składa

Bardziej szczegółowo

Linux wykład 9. Paweł Rajba.

Linux wykład 9. Paweł Rajba. Linux wykład 9 Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Plan wykładu Lilo Grub LILO Lilo Skrót od LInux LOader Program uruchamiający systemy LILO /sbin/lilo program zarządzający bootloaderem

Bardziej szczegółowo

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego Systemy operacyjne wprowadzenie 1 Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) System operacyjny jest zbiorem ręcznych i automatycznych procedur, które pozwalają grupie osób na

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD 2 Jan Kazimirski 1 Procesy w systemie operacyjnym 2 Proces Współczesne SO w większości są systemami wielozadaniowymi. W tym samym czasie SO obsługuje pewną liczbę zadań procesów

Bardziej szczegółowo

INSTRUKCJA U YTKOWNIKA. Karty synchroniczne V.35 TAHOE 931/932 WOLNOή KOMUNIKACJI

INSTRUKCJA U YTKOWNIKA. Karty synchroniczne V.35 TAHOE 931/932 WOLNOŒÆ KOMUNIKACJI INSTRUKCJA U YTKOWNIKA Karty synchroniczne V.35 TAHOE 931/932 WOLNOŒÆ KOMUNIKACJI SPIS TREŒCI 1. Wprowadzenie... 1 2. Monta karty... 2 3. Instalacja sterowników... 3 3.1. Kompilacja j¹dra Linuxa ze sterownikami...

Bardziej szczegółowo

DOS COMMAND.COM. Rys. 2. Główne moduły programowe systemu operacyjnego DOS. Interpreter poleceń. Rys. 3. Warstwowa struktura systemu DOS

DOS COMMAND.COM. Rys. 2. Główne moduły programowe systemu operacyjnego DOS. Interpreter poleceń. Rys. 3. Warstwowa struktura systemu DOS System Operacyjny DOS DOS (ang. Disc Operating System) jest to 16-bitowy jednozadaniowy system operacyjny. Głównym zadaniem systemu jest obsługa plików w systemie FAT (ang. File Allocation Table) i wsparcie

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 11 Wejście - wyjście Urządzenia zewnętrzne Wyjściowe monitor drukarka Wejściowe klawiatura, mysz dyski, skanery Komunikacyjne karta sieciowa, modem Urządzenie zewnętrzne

Bardziej szczegółowo

Kernel Kompilacja jądra

Kernel Kompilacja jądra Kernel Kompilacja jądra systemu Co to jest jądro systemu operacyjnego Jądro systemu operacyjnego jest rozpowszechniane na licencji GNU General Public License (GPL) określonej przez konsorcjum Free Software

Bardziej szczegółowo

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux. Kod szkolenia: Tytuł szkolenia: PS/LINUX Programowanie systemowe w Linux Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać

Bardziej szczegółowo

Warstwy systemu Windows 2000

Warstwy systemu Windows 2000 Warstwy systemu Windows 2000 Tryb użytkownika (User Mode) Tryb jądra (Kernel Mode) Tryb użytkownika (User Mode) Zarządzanie pamięcią wirtualną Cechy charakterystyczne systemu Windows XP: system bardzo

Bardziej szczegółowo

IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com

IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com IdyllaOS www.idyllaos.org Prosty, alternatywny system operacyjny Autor: Grzegorz Gliński Kontakt: milyges@gmail.com Co to jest IdyllaOS? IdyllaOS jest to mały, prosty, uniksopodobny, wielozadaniowy oraz

Bardziej szczegółowo

Q E M U. http://www.qemu.com/

Q E M U. http://www.qemu.com/ http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

SYSTEMY OPERACYJNE WYKLAD 6 - wątki Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - wątki Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 1. Wątki 2. Planowanie przydziału procesora (szeregowanie

Bardziej szczegółowo

Prezentacja systemu RTLinux

Prezentacja systemu RTLinux Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach

Bardziej szczegółowo

Struktury systemów operacyjnych

Struktury systemów operacyjnych Struktury systemów operacyjnych Składowe systemu. Usługi systemu operacyjnego. Wywołania systemowe. Programy systemowe. Struktura systemu. Maszyny wirtualne. Projektowanie i implementacja systemu. Generowanie

Bardziej szczegółowo

Tomasz Greszata - Koszalin

Tomasz Greszata - Koszalin T: Wirtualizacja systemu Linux Ubuntu w maszynie wirtualnej VirtualBox. Zadanie1. Odszukaj w serwisie internetowym dobreprogramy.pl informacje na temat programu Oracle VM VirtualBox. VirtualBox to oprogramowanie

Bardziej szczegółowo

Przegląd współczesnych systemów operacyjnych

Przegląd współczesnych systemów operacyjnych SOE - Systemy Operacyjne Wykład 2 Przegląd współczesnych systemów operacyjnych dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Wstęp Cechy współczesnych systemów operacyjnych

Bardziej szczegółowo

Struktury systemów operacyjnych

Struktury systemów operacyjnych Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Sieciowe Systemy Operacyjne

Sieciowe Systemy Operacyjne 1 Sieciowe Systemy Operacyjne 1. Etapy rozwoju systemów komputerowych System scentralizowany System sieciowy System rozproszony 1.1 System scentralizowany Zastosowane duże komputery (mainframes ) Użytkownicy

Bardziej szczegółowo

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz 2009. Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz 2009. Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA SYSTEMY OPERACYJNE PROWADZI: dr inż. Jarosław Bilski Katedra Inżynierii Komputerowej Politechnika Częstochowska Wykład dla kierunku Informatyka 2 ZAJĘCIA: Obowiązkowe Wykład Laboratorium 2 godziny tygodniowo

Bardziej szczegółowo

Struktura systemów komputerowych

Struktura systemów komputerowych Struktura systemów komputerowych Działanie systemu komputerowego Struktury WE/WY Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Ogólna architektura systemu Wykład 6, Systemy operacyjne (studia

Bardziej szczegółowo

Kompilacja jądra systemu Linux

Kompilacja jądra systemu Linux Instytut Teleinformatyki Wydział Inżynierii Elektrycznej i Komputerowej Politechnika Krakowska Laboratorium Administrowania Systemami Komputerowymi Kompilacja jądra systemu Linux ćwiczenie numer: 2 2 Spis

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V.

Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V. T: Wirtualizacja instalacji serwera Windows. Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V. VirtualBox to

Bardziej szczegółowo

5. Model komunikujących się procesów, komunikaty

5. Model komunikujących się procesów, komunikaty Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć

Bardziej szczegółowo

ĆWICZENIE NR 4 KONFIGURACJA JĄDRA, USŁUGI SIECIOWE. KATEDRA ELEKTRONIKI POLITECHNIKA LUBELSKA

ĆWICZENIE NR 4 KONFIGURACJA JĄDRA, USŁUGI SIECIOWE. KATEDRA ELEKTRONIKI POLITECHNIKA LUBELSKA ĆWICZENIE NR 4 KONFIGURACJA JĄDRA, USŁUGI SIECIOWE. KATEDRA ELEKTRONIKI POLITECHNIKA LUBELSKA A. ZAGADNIENIAZ DO POWTÓRZENIA PRZED WYKONANIEM ĆWICZENIA Budowa jądra. B. ZAKRESZ ĆWICZENIA Instalacja oprogramowania.

Bardziej szczegółowo

System plików. Warstwowy model systemu plików

System plików. Warstwowy model systemu plików System plików System plików struktura danych organizująca i porządkująca zasoby pamięci masowych w SO. Struktura ta ma charakter hierarchiczny: urządzenia fizyczne strefy (partycje) woluminy (w UNIXie:

Bardziej szczegółowo

GRUB (GRand Unified Bootloader) - jest bootloaderem instalowanym standardowo w Ubuntu, potrafiącym obsłużyć kilka systemów jednocześnie (Multiboot).

GRUB (GRand Unified Bootloader) - jest bootloaderem instalowanym standardowo w Ubuntu, potrafiącym obsłużyć kilka systemów jednocześnie (Multiboot). GRUB (GRand Unified Bootloader) - jest bootloaderem instalowanym standardowo w Ubuntu, potrafiącym obsłużyć kilka systemów jednocześnie (Multiboot). GRUB ładuje system operacyjny do pamięci przekazuje

Bardziej szczegółowo

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa... 9. Wstęp... 11

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa... 9. Wstęp... 11 Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1 Spis treúci Przedmowa... 9 Wstęp... 11 1. Komputer PC od zewnątrz... 13 1.1. Elementy zestawu komputerowego... 13 1.2.

Bardziej szczegółowo

Architektura systemu komputerowego

Architektura systemu komputerowego Architektura systemu komputerowego Klawiatura 1 2 Drukarka Mysz Monitor CPU Sterownik dysku Sterownik USB Sterownik PS/2 lub USB Sterownik portu szeregowego Sterownik wideo Pamięć operacyjna Działanie

Bardziej szczegółowo

Stan procesu. Procesy i zarządzanie procesorem. Koncepcja procesu. Diagram stanów procesu

Stan procesu. Procesy i zarządzanie procesorem. Koncepcja procesu. Diagram stanów procesu Procesy i zarządzanie procesorem Stan procesu Koncepcja procesu i wątku Szeregowanie procesów (process scheduling) Operacje na procesach Procesy współpracujące Komunikacja między procesami Komunikacja

Bardziej szczegółowo

Wstęp 5 Rozdział 1. SUSE od ręki 13

Wstęp 5 Rozdział 1. SUSE od ręki 13 Wstęp 5 Rozdział 1. SUSE od ręki 13 KDE czy GNOME? 13 Jak uruchomić SUSE Live-CD z interfejsem GNOME? 14 Jak uruchomić SUSE Live-CD z interfejsem KDE? 15 Jak zmienić rozdzielczość ekranu? 16 Jak wyświetlić

Bardziej szczegółowo

Instrukcja do konwertera USB-RS232

Instrukcja do konwertera USB-RS232 1. Przeznaczenie Instrukcja do konwertera USB-RS232 Komputery coraz częściej nie posiadają portów szeregowych, natomiast wyposażone są w porty USB. Konwerter USB-RS232 to urządzenie rozwiązujące problem

Bardziej szczegółowo

Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.

Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej. Procesy Proces (zwany też zadaniem) jest jednostką aktywną, kontrolowaną przez system operacyjny i związaną z wykonywanym programem. Proces ma przydzielone zasoby typu pamięć (segment kodu, segment danych,

Bardziej szczegółowo

Informatyka, systemy, sieci komputerowe

Informatyka, systemy, sieci komputerowe Informatyka, systemy, sieci komputerowe Systemy operacyjne wykład 2 Procesy i wątki issk 1 SO koncepcja procesu i zasobu Proces jest elementarną jednostką pracy zarządzaną przez system operacyjny, wykonującym

Bardziej szczegółowo

Systemy operacyjne Procesy i wątki

Systemy operacyjne Procesy i wątki Systemy operacyjne Procesy i wątki [2] Proces w systemie operacyjnym Procesem nazywamy wykonujący się program wraz z jego środowiskiem obliczeniowym. Proces stanowi podstawowy obiekt dynamiczny w systemie

Bardziej szczegółowo

Podstawy technologii informacyjnej. Beata Kuźmińska

Podstawy technologii informacyjnej. Beata Kuźmińska Podstawy technologii informacyjnej Beata Kuźmińska Podstawowe definicje Informatyka - nazwa powstała w 1968 roku, stosowana w Europie. Informatyka zajmuje się całokształtem przechowywania, przesyłania,

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

SYSTEMY OPERACYJNE WYKLAD 6 - procesy Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - procesy Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 Zasoby: PROCES wykonujący się program ; instancja programu

Bardziej szczegółowo

MODEL WARSTWOWY PROTOKOŁY TCP/IP

MODEL WARSTWOWY PROTOKOŁY TCP/IP MODEL WARSTWOWY PROTOKOŁY TCP/IP TCP/IP (ang. Transmission Control Protocol/Internet Protocol) protokół kontroli transmisji. Pakiet najbardziej rozpowszechnionych protokołów komunikacyjnych współczesnych

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

WINDOWS NT. Diagram warstw systemu Windows NT

WINDOWS NT. Diagram warstw systemu Windows NT WINDOWS NT Diagram warstw systemu Windows NT logon process OS/2 application Win16 application Win32 application MSDOS application POSIX application security subsystem OS/2 subsystem Win16 VDM MSDOS VDM

Bardziej szczegółowo

T: Instalacja systemu Windows 2008 Serwer w maszynie wirtualnej VirtualBox.

T: Instalacja systemu Windows 2008 Serwer w maszynie wirtualnej VirtualBox. T: Instalacja systemu Windows 2008 Serwer w maszynie wirtualnej VirtualBox. Wstępna konfiguracja oprogramowania VirtualBox: Program VirtualBox zainstalowany jest w katalogu c:\programy\virtualbox. Po uruchomieniu

Bardziej szczegółowo

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

U M L.  System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux) http://user-mode-linux.sourceforge.net/ System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux) Autor: Jeff Dike Koncepcja powstała w 1999 r. Początkowo jako patch do jądra 2.0

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt

Bardziej szczegółowo

Administracja systemem Linux p. 1

Administracja systemem Linux p. 1 Administracja systemem Linux mgr inż. Łukasz Kuczyński lkucz@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Administracja systemem Linux p. 1 Start systemu Linux Administracja systemem Linux

Bardziej szczegółowo

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016

Bardziej szczegółowo

Architektura komputerów. Układy wejścia-wyjścia komputera

Architektura komputerów. Układy wejścia-wyjścia komputera Architektura komputerów Układy wejścia-wyjścia komputera Wspópraca komputera z urządzeniami zewnętrznymi Integracja urządzeń w systemach: sprzętowa - interfejs programowa - protokół sterujący Interfejs

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

Uruchomienie Raspberry Pi

Uruchomienie Raspberry Pi Imie i nazwisko Nr indeksu Liczba punktów: Ramki oznaczone kolorem żółtym należy uzupełnić odpowiednią informacją! Po zakończeniu ćwiczenia niniejszą formatkę należy wysłać na adres: iwona.kochanska@eti.pg.gda.pl

Bardziej szczegółowo

Klient-Serwer Komunikacja przy pomocy gniazd

Klient-Serwer Komunikacja przy pomocy gniazd II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu

Bardziej szczegółowo

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie System komputerowy System komputerowy (ang. computer system) to układ współdziałaniadwóch składowych: sprzętu komputerowegooraz oprogramowania, działających coraz częściej również w ramach sieci komputerowej.

Bardziej szczegółowo

Połączenia. Instalowanie drukarki lokalnie (Windows) Co to jest drukowanie lokalne?

Połączenia. Instalowanie drukarki lokalnie (Windows) Co to jest drukowanie lokalne? Strona 1 z 6 Połączenia Instalowanie drukarki lokalnie (Windows) Uwaga: Jeśli dysk CD Oprogramowanie i dokumentacja nie obejmuje obsługi danego systemu operacyjnego, należy skorzystać z Kreatora dodawania

Bardziej szczegółowo

Mechanizmy pracy równoległej. Jarosław Kuchta

Mechanizmy pracy równoległej. Jarosław Kuchta Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy

Bardziej szczegółowo

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy: Współpraca mikroprocesora z urządzeniami zewnętrznymi Urządzenia wejścia-wyjścia, urządzenia których zadaniem jest komunikacja komputera z otoczeniem (zwykle bezpośrednio z użytkownikiem). Do najczęściej

Bardziej szczegółowo

WYKŁAD 3 Jądro systemu i procesy. Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania

WYKŁAD 3 Jądro systemu i procesy. Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania SYSTEMY OPERACYJNE WYKŁAD 3 Jądro systemu i procesy Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania Program wykładu 2 Jądro systemu Możliwości procesorów Działanie procesów i wątków Zarządzanie procesami

Bardziej szczegółowo

2009-03-21. Paweł Skrobanek. C-3, pok. 321 e-mail: pawel.skrobanek@pwr.wroc.pl pawel.skrobanek.staff.iiar.pwr.wroc.pl

2009-03-21. Paweł Skrobanek. C-3, pok. 321 e-mail: pawel.skrobanek@pwr.wroc.pl pawel.skrobanek.staff.iiar.pwr.wroc.pl Wrocław 2007-09 SYSTEMY OPERACYJNE WPROWADZENIE Paweł Skrobanek C-3, pok. 321 e-mail: pawel.skrobanek@pwr.wroc.pl pawel.skrobanek.staff.iiar.pwr.wroc.pl 1 PLAN: 1. Komputer (przypomnienie) 2. System operacyjny

Bardziej szczegółowo

PC0060. ADAPTER Kabel Easy Copy PC-Link USB 2.0 Proste kopiowanie, bez instalacji. Instrukcja obsługi

PC0060. ADAPTER Kabel Easy Copy PC-Link USB 2.0 Proste kopiowanie, bez instalacji. Instrukcja obsługi PC0060 ADAPTER Kabel Easy Copy PC-Link USB 2.0 Proste kopiowanie, bez instalacji Instrukcja obsługi Rozdział 1 Produkt 1.1 Instrukcja Produkt PC0060 to najlepsze rozwiązanie w zakresie przesyłania danych.

Bardziej szczegółowo

Linux Kernel. Wprowadzenie

Linux Kernel. Wprowadzenie Linux Kernel Wprowadzenie Trochę historii (1) Rozpoczęło się od Bell Labolatories we wczesnych latach 70- tych XX wieku, kiedy rozpoczęto prace nad systemem UNIX: UNIX był pierwszym systemem operacyjnym

Bardziej szczegółowo

HARD DISK MANAGER 2010 - PORÓWNANIE EDYCJI

HARD DISK MANAGER 2010 - PORÓWNANIE EDYCJI HARD DISK MANAGER 2010 - PORÓWNANIE EDYCJI Funkcja Partycjonowanie dysku Tworzenie nowej partycji Ekspresowe tworzenie partycji Formatowanie partycji Usuwanie partycji Przywracanie usuniętej partycji Przeniesienie/zmiana

Bardziej szczegółowo

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski Struktura systemu operacyjnego Schemat budowy systemu operacyjnego model warstwowy Schemat budowy systemu operacyjnego części składowe Większość systemów operacyjnych opiera się o koncepcję jądra, która

Bardziej szczegółowo

Przegląd dostępnych hypervisorów. Jakub Wojtasz IT Solutions Architect jwojtasz@atom-tech.pl

Przegląd dostępnych hypervisorów. Jakub Wojtasz IT Solutions Architect jwojtasz@atom-tech.pl Przegląd dostępnych hypervisorów Jakub Wojtasz IT Solutions Architect jwojtasz@atom-tech.pl Agenda Podział hypervisorów Architektura wybranych rozwiązań Najwięksi gracze na rynku Podział hypervisorów Hypervisor

Bardziej szczegółowo