Brukerhåndtering av prosesser i Linux

Like dokumenter
Dagens tema. Parallellitet Generelt Fraktaler Polling og avbrudd Multiprosessering i UNIX Opprettelse av prosesser Signaler

Operativsystemets ansvar er å koordinere. programmers bruk av I/O

Prosesser. Dagens tema. Hva er en prosess? En prosess er et program under utførelse.

HW for koordinering med omverdenen. OS syr HW og SW sammen. Tema for denne forelesningen: in 147, våren 1999 Input/Output 2 1

Definisjon av prosess

Dagens tema (kapittel 15 i Englander-boken)

Dagens tema: Parallellisering Generelt Fraktaler Generelt Julia-kurven Vindussystemet X Parallellitet i UNIX Signaler. IN 147 Program og maskinvare

Definisjon av prosess

Prosesstabeller (PCB - Prosess Control Block) Se på PD: kommandoene ps og top Bakgrunnsprosesser Opprettelse av prosesser:

Dagens tema: Liten repetisjon Håndtering av statusverdier

Operativsystemer og grensesnitt

Brukerprogram OS hardware

Betinget eksekvering og logiske tester i shell

Lars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28

Håndtering av filer og kataloger

EKSAMEN. Operativsystemer og nettverk

Oversikt. Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 1 UNIX. 2 Linux. 3 Process. 4 Process models

Filer i Linux og Bourne-again shell

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

Filsikkerhet i Linux

Sikkerhet: Virus Sikkerhet i operativsystemet Maskinstøtte for sikkerhet Trojanske hester Ormer. IN 147 Program og maskinvare.

Scheduling og prosesshåndtering

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

Tildeling av minne til prosesser

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Eksamensinformasjon. Linux kommandolinje. Linux kommandolinje. Eksamensinformasjon. Fakultet: Teknologi, kunst og design. Tid: 3 t.

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

Eksamensinformasjon. Prosesser. Prosesser. Eksamensoppgave. Operativsystemer (DATS/ITPE2500) Bokmål 06. juni 2017 kl

Prøve- EKSAMEN. Operativsystemer med Linux

Filer og kataloger, prosesser og jobber

Tildeling av minne til prosesser

Generelt om operativsystemer

Elektronisk termostat med spareprogram. Lysende LCD display øverst på ovnen for enkel betjening.

Filterprogrammer og redirigering av I/O

Håndtering av filer og kataloger

Filterprogrammer og redirigering av I/O

EKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

Operativsystemer og nettverk

Oppgave 1 - Linux kommandolinje (%)

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Eksamen DAT 103. Oppgave 2. Kandidatnr.: 145 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) A 9) A 10) D

Shellscripting I. Innhold

Lynkurs i shellprogrammering under Linux

Fjerninnlogging over Internett

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning Data

P1 P2 P3 P1 P2 P3 P1 P2. OS gjør Contex Switch fra P1 til P2

Høgskolen i Telemark Fakultet for allmennvitenskapelige fag

MID-TERM EXAM TDT4258 MICROCONTROLLER SYSTEM DESIGN. Wednesday 3 th Mars Time:

Filer i Linux og Bourne-again shell

Dagens program. Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer

oppgavesett 4 INF1060 H16 Hans Petter Taugbøl Kragset Øystein Dale Christian Resell 27. september 2016 Institutt for informatikk, UiO

IT1101 Informatikk basisfag, dobbeltime 18/9. Kommunikasjon med perifere enheter. Kontrollere. Kontrollere (2) I/O-instruksjoner

TDT4258 Eksamen vår 2013

NSA mandag 4. oktober Brukerbehandling Systempolitikk Kontroll av resurser Om system logger Litt om cron og cfengine

Hvorfor lære om maskinvare*?

Dagens tema. Nyttige programmer Programmet make. Hvis én fil endres, hvilke filer må da kompileres på nytt?

Klient (et administrasjonsverktøy med et kommandolinje brukergrensesnitt)

1,r H øgs kolen i Østfol d

Generelt om permanent lagring og filsystemer

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

Operativsystemer og nettverk Løsningsforslag til eksamen Oppgave 1. a) Linux-kommando: java Beregn & b) Shellprogram:

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Dagens tema. Nyttige programmer Programmet make. Flyt-tall Representasjon av flyt-tall. Standarden IEEE 754. Systemkall i Unix

Samtidige prosesser. Prosessor modus. Hvordan kan OS effektivt kontrollere brukerprosesser? Hvordan kan OS. kontrollere brukerprosesser?

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

Tildeling av minne til prosesser

EKSAMEN Innføring i Linux

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

OS Struktur Prosesser Kommandotolker Distribuert Filer Skript Mer?

Hendelser Apprentice ComputerCraft PDF

1. Profiler og variabler

Løsningsforslag til eksamen 24. november 2015

-/tmp med navn på alle kataloger og filer etter at disse

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

faks: Avdeling for Ingeniørutdanning. Cart Aælersgate Oslo - tlf 05. iu@hio.no

Steg 1: Vår første datamaskin

Slutteksamen in115 Nettverksdrift (bokmål)

IN1020. Datamaskinarkitektur

Generelt om operativsystemer

Minnehåndtering i operativsystemer

ytelsen til hukommelseshierarkier

EKSAMEN. Operativsystemer. Dato: 10. desember 2008 Eksamenstid: kl til kl

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.

Brukerveiledning for ArkN4

TwidoSuite kommunikasjon

Læringsmål og pensum. v=nkiu9yen5nc

Faglig kontakt under eksamen: Orestis Gkorgkas

Threads Threads (tråder) threads vs prosesser threads vs prosesser Definisjoner av

Versjon Side : 1

Linux-programmer som bruker regulæruttrykk: grep, sed, awk

dynamiske data dynamiske data statiske data program dynamiske data statiske data reservert program dynamiske data statiske data reservert program

Trådløsnett med Windows XP. Wireless network with Windows XP

4. KOMMANDOER OG FORKORTELSER 6. UTLOGGING (07) STYRESPRAK GENERELT. Paul Gundersen. Styrespråk. --Innlogging Kommandoer NORD SINTRAN

Kom i gang med emedia

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

STE6221 Sanntidssystemer Løsningsforslag

SpeedSonic.dk. START / STOP RESET / EL NEXT / SAVE MODE / SET

Kortversjon av brukerdokumentasjon Solman

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

Transkript:

Brukerhåndtering av prosesser i Linux

Oppstart av prosesser fra shellet Prosesser startes ved å gi en kommando som svarer til navnet på det eksekverbare programmet Hvis programmet ikke ligger i stående katalog: Katalogen der programmet ligger må enten være lagret i PATH-variabelen, eller søkesti må angis eksplisitt Hvis programmet ligger i stående katalog: Angi./ foran kommandonavnet, hvis ikke. ligger i listen av kataloger i PATH Husk å redirigere input/output hvis det trengs:./somescript < my data > my results

PID: Identifisering av prosesser i Linux Alle prosesser har en unik PID prosessidentifikator: Et heltall prosessene nummereres fortløpende etterhvert som de opprettes PID-nummere gjenbrukes når de blir ledige Den første prosessen som startes, init, har PID lik 1 Prosesser har også: Parent ID (PPID), som er PID til forelderprosessen User ID (UID), en bruker som eier prosessen Group ID (GID), tilhørighet til en brukergruppe

Prosesseier og -gruppe Alle Linux-brukere har en UID og en GID UID: Et heltall som er unikt for brukeren GID: Et heltall som angir brukergruppen man tilhører Prosessen arver UID og GID fra bruker som starter den Det finnes tilfeller (f.eks. endring av passord) der man av sikkerhetshensyn ønsker at bruker ikke skal være eier av prosessen, og/eller at gruppetilhørigheten skal endres Kan sette spesielle tilgangsrettigheter (execution bit) på den eksekverbare filen, for å styre eierskapet og gruppe for prosessen når et program kjøres * *: Se avsnitt 4.3.1 i læreboken for detaljer

Forgrunns- og bakgrunnsprosesser Linux-programmer som startes på vanlig måte fra kommandolinjen, kjøres i forgrunnen : $ program_navn Shellet oppretter her en ny prosess ved å bruke systemkallet wait shellet blir suspendert og må vente til den nye prosessen er ferdig Ved å bruke tegnet & ( og-tegn ) etter en Linuxkommando, kjøres kommandoen i bakgrunnen : $ program_navn & Shellet oppretter nå i stedet ny prosess ved å bruke systemkallet fork venter ikke på den nye prosessen

Kjøring av bakgrunnsprosesser Prosessen kjøres samtidig med shellet Shellet venter ikke til kommandoen er ferdig, men er klar for å motta en ny kommando med en gang Shellet vil skrive ut et jobbnummer og PID for bakgrunnsprosessen som opprettes Bakgrunnsprosesser kjøres med lavere prioritet Kan ikke kommunisere interaktivt med shellet eller med bruker

Håndtering av bakgrunnsprosesser Kan bare være én aktiv forgrunnsprosess Prosessen i forgrunnen kan suspenderes (settes i waittilstand) ved å taste CTRL Z Kommandoen bg vil starte opp igjen siste suspenderte jobb som en bakgrunnsprosess For å se liste over alle prosesser i bakgrunnen, med status og jobbnummer: jobs Kommandoen fg jobbnummer brukes for å flytte prosesser fra bakgrunn til forgrunn

Prosessinformasjon og -status i Linux Kan bruke (gode) GUI-verktøy for System Monitoring Fra shellet kan bl.a. disse kommandoene brukes: top ps pstree * Løpende systemstatus og informasjon om alle prosessene på systemet Skriv ut (deler av) prosesstabellen i Linux Skriver ut hele eller deler av slektstreet for prosessene *: Se forelesningsnotater om Prosesser og tråder

GUI System Monitor

top: Dynamisk prosessinformasjon top viser: Systemstatus øverst på skjermen Liste med info om alle prosesser på systemet Sortert på ressursbruk grådige prosesser øverst Listen oppdateres hvert tredje sekund (default) Fullskjerm blokkerer kommandolinjen inntil exit Interaktiv tastetrykk fra bruker forandrer virkemåten* *: Trykk h når top kjører for å se en oversikt over ulike opsjoner/kommandoer

Eksempel: Skjermbilde fra top

Tastetrykk som endrer virkemåte for top A Use alternate display mode D Alter interval time L Turn on/off load statistics T Turn on/off task statistics M Turn on/off memory statistics f, o Add/remove fields or alter display order H Show threads U Show specified user owned processes only N Show specific number of processes only Q Quit I Turn on/off including idle processes

ps skriver ut prosesstabellen ps gir et snapshot av prosessene akkurat nå Svært mange opsjoner * for å spesifisere: Hvilke prosesser som skal vises Hva slags informasjon som skal vises ps er spesiell mht. opsjoner (historisk begrunnet): Opsjoner som begynner med Opsjoner som begynner med Opsjoner som ikke begynner med en bindestrek

Noen eksempler på ps-kommandoer ps Gir kun informasjon om prosesser som kjører i nåværende shell av deg, innlogget bruker Oftest bare bash, ps og evt. bakgrunnsprosesser ps a Viser alle prosessene tilhørende dette terminal-vinduet, inkludert systemprosesser som eies av root ps x Viser alle prosessene til innlogget bruker, inkludert GUI ps u user-oriented, mer info. om CPU- og minnebruk. etc.

Noen av outputkolonnene fra ps PID PPID UID GID %CPU %MEM VSZ RSS/RSZ TTY START TIME COMMAND NI STAT Prosess- og forelderprosess-indentifikatorer Prosessens eier og gruppetilhørighet CPU-bruk Minnebruk Forbruk av (virtuelt) minne (KB) Forbruk av fysisk RAM (KB) Terminalvinduet (? hvis ingen TTY) Når prosessen startet Totalt forbruk av CPU-tid Kommando som startet prosessen Prioritet (niceness value) Prosess-status, en tegnkode, se neste lysark

ps koder for prosess-status (STAT) D R S T W X Z uninterruptible sleep (usually IO) running or runnable (on run queue) interruptible sleep (waiting for an event to complete) stopped paging dead (should never be seen) "zombie" process, terminated, not killed by parent < high-priority (not nice to other users) N low-priority (nice to other users)

nice prioritering av prosesser i Linux Prosesser får en nice-verdi (default 0) ved oppstart Nice-verdier er heltall med verdier fra -20 til 19 19 : Super-nice prosess, prioriteres lavt, langsom -20 : Grådig prosess, prioriteres på topp, rask Brukere kan sette positiv nice-verdi for en prosess: nice 15 program Bare sys.adm./root kan bruke negative nice-verdier Prioritet til kjørende prosess kan endres med renice

Stoppe/drepe prosesser Prosesser terminerer vanligvis når de kommer til slutten av programkoden under eksekvering En prosess kan avslutte unormalt pga. run-time feil OS legger da ofte igjen en fil med navn core Dette er en core dump, som inneholder minnet for prosessen slik det var da den terminerte unormalt Noen ganger kan prosesser henge eller oppføre seg unormalt, og må stoppes av bruker Ofte vil en Ctrl C (interrupt) fra kommandolinjen stoppe forgrunnsprossessen i shellet

Stopping av barneprosesser Hvis en barneprosess terminerer uten at forelder er tilgjengelig (f.eks. i sleep-status): Barnet terminerer, men tas ikke ut av systemet Barn må først rapportere exit til forelder Barn blir til en zombie -prosess inntil forelder våkner Hvis forelderprosessen dør mens barnet fortsatt kjører, får vi en orphan prosess Feilsituasjon, ingen andre enn init får være foreldreløs init (evt. forelders forelder) vil da vanligvis adoptere barneprosessen

Brukerkommandoer for å drepe prosesser Tre ulike alternativer: 1. Prøv å terminere programmet normalt med en exit -kommando e.l. 2. Stop prosessen fra en GUI process monitor : Menyvalg: Stop process / Kill process 3. Stopp prosessen ved å sende den et signal med kommandoen kill

Linux-prosesser og signaler Alle prosesser i Linux responderer på signaler Signaler er beskjeder fra OS-et om at en prosess skal avslutte eller endre oppførsel fordi noe uventet har skjedd Kommandoen kill kan brukes for å sende et signal fra OS til en prosess Signalene identifiseres med nummer eller navn, noen vanlige signaler er gitt på de neste to sidene

Name # Description SIGHUP 1 Hangup SIGINT 2 Terminal interrupt SIGQUIT 3 Terminal quit SIGILL 4 Illegal instruction SIGTRAP 5 Trace trap SIGIOT 6 IOT Trap SIGBUS 7 BUS error SIGFPE 8 Floating point exception SIGKILL 9 Kill (can't be caught or ignored) SIGUSR1 10 User defined signal 1 SIGSEGV 11 Invalid memory segment access SIGUSR2 12 User defined signal 2 SIGPIPE 13 Write on a pipe with no reader, broken pipe SIGALRM 14 Alarm clock SIGTERM 15 Termination

Name # Description SIGSTKFLT 16 Stack fault SIGCHLD 17 Child process has stopped or exited, changed SIGCONT 18 Continue executing, if stopped SIGSTOP 19 Stop executing(can't be caught or ignored) SIGTSTP 20 Terminal stop signal SIGTTIN 21 Background process trying to read, from TTY SIGTTOU 22 Background process trying to write, to TTY SIGURG 23 Urgent condition on socket SIGXCPU 24 CPU limit exceeded SIGXFSZ 25 File size limit exceeded SIGPWR 30 Power failure restart

kill kommandoen kill: Send et signal til en prosess Brukere kan bare sende signaler til egne prosesser Liste over alle signaler: kill l Spesielt signal: SIGKILL (9) for å stoppe prosess: Sendes ikke videre til prosessen fra OS-et Kalles en sure kill : Prosessen kan ikke selv stoppe eller håndtere en SIGKILL

Bruk av kill * kill PID Terminér en bestemt prosess kill signal PID Send et gitt signal til en prosess kill KILL PID kill KILL 1 kill HUP PID Sure kill Massemord Brukes ofte for å restarte serverprosesser (web, ftp, o.l.) *: Se også kommandoene pkill og killall

Avslutte og stenge ned Linix shutdown time [message] Starter nedstenging av Linux til angitt tid Stenger for nye login Tid kan angis på mange måter, svært fleksibelt shutdown stopper bare Linux-kjernen Maskinen venter oftest på hva som skal gjøres videre: halt halt the system but leave the power on poweroff halt the system and turn the power off reboot