cap-01
description
Transcript of cap-01
-
1!
1
Markus Endler Sala RDC [email protected]!
INF 1019: Sistemas de Computao (Sistemas Operacionais)
http://www.inf.puc-rio.br/~endler/courses/inf1019/!
2
INF 1019: Sistemas de Computao I
Bibliografia: Tanenbaum & Woodhull: Operating Systems: Design and
Implementation, 3a.ed, Prentice Hall (Bookman) Peter Galvin e Abraham Silberschatz, Operating System Concepts,
Addison Wesley, 1994. Harvey M. Deitel, Operating Systems (2nd Edition)
Addison Wesley, 1990.
Pgina da Disciplina: www.inf.puc-rio.br/~endler/courses/inf1019/
Atendimento e avisos: 4as. feiras: 9-10 horas (sala RDC 503) Link de Avisos na pgina da disciplina
-
2!
4
Critrio de Avaliao Provas: P1: 20 de setembro, 11-13 horas P2: 17 de novembro, 11-13 horas PF: 29 de novembro, 11-13 horas
3-5 testes-surpresa T Mdia TS (excluindo-se nota mais baixa) Dois Trabalhos Prticos
Em dupla, usando o MINIX (verso 3.1.2) em http://www.minix3.org Entrega de cdigo fonte, imagem e possivelmente demo A cada semana de atraso, desconto de 1.0 ponto
Mdia Final: G1 = (P1 + T1)/2 G2 = (2*P2 + 2*T2 + MTS)/5 Se (G1 + G2)/2 6.0, ento aprovado; Seno, fazer Prova final (PF) Se (G1 + G2 + 2*PF)/4 5.0, aluno aprovado; Seno reprovado.
Sistemas Operacionais existem em toda parte (em
qualquer aparelho com processamento)!!
5
-
3!
Tipos de Sistemas
6
Mica Mote!
Process Control Board!
Personal Comp.!
Cell / Smart Phone!
Game Console!
Mainframe Server!
Cluster/ Server farm para Cloud!MP3 Player!
Tablets!
ipod Touch/ iPhone!
Redes de Sistemas/ Sistemas em Rede
7
Automotive Vehicle Network!Network Routers! Wireless Routers!
UVA Unmanned Aerial Vehicles!Autonomous Robot System!
-
4!
Sistemas Emergentes
8
Car Computer! Wearable Comp.!Watch Computer!
Mini-robots! Nano Computers!
Table Computing !
Sistemas Emergentes
9
Smart Home!
Networked Cloud Computing!
Data Centers!
-
5!
Um S.O. para cada tipo de mquina Alguns Exemplos: PCs/Netbooks: Linux, variantes do UNIX, Windows 7, Vista,
Mac OS X, Cloud Computing: Hadoop, Amazon EC, Xen, Celulares: Symbian, Windows Mobile, Smartphones/PDAs: iOS, PalmOS, Android, Windows Mobile,
BlackBerry, AlyunOS Embarcados: iOS, inferno, Maemo, etc. Sistemas de Tempo Real: QNX, RT-UNIX, e muitos outros Redes de Sensores (MicaMotes): TinyOS, Contiki, Clusters/Sist. distribudos: Mach, Plan9, Amoeba, Beowulf,
Chorus .. WebOS: ChromeOS, JoliOS, DesktopTwo, EyeOS,
10
O Papel do Sist. Operacional
11
Recurso HW1! Recurso HW2! Recurso HW3!
Sistema Operacional!
Aplicativo! Servio 1!Usurio A!Usurio B!
Servio 2!
-
6!
12
O que um Sistema Operacional? uma mquina estendida
Implementa abstraes que escondem (do programador e do usurio final) os detalhes de como usar e controlar os recursos especficos
Fornece ao programador uma mquina virtual, que mais fcil de usar (APIs simples baseada em conceitos independentes do hardware)
um gerenciador de recursos Garante o compartilhamento seguro de recursos pelas vrias
atividades (processos/tarefas) concorrentes Tenta maximizar a eficincia no uso de recursos
Componentes Tpicos de um S.O. Programas utilitrios:
Auxiliam o usurio em tarefa especfica Browser, Compiladores, editores, shell, gerenciador de janelas, etc.
Programas de sistema: So ativados no boot ou periodicamente Permitem configurao do sistema, corrigem erros no disco,fazem
back-up, gerenciam a comunicao pela rede, monitoram e colhem estatsticas sobre a ocupao de recursos, etc.
Bibliotecas e Runtimes Provm funcionalidades bsicas para os programas Exemplo: libc, JVM, etc.
Ncleo (kernel) e drivers: residente na memria RAM Executa as funes mais bsicas para compartilhamento dos recursos
(CPU, Caches, Memria, discos) Gerencia a execuo paralela de tarefas
-
7!
15
Modo de Usurio e de Supervisor As arquiteturas atuais permitem a operao em dois (ou
mais) modos da CPU: Modo supervisor: acesso a todas as instrues de mquina e
regies da memria Modo usurio: apenas conjunto restrito de instrues e
endereamento de apenas parte da memria Exemplo: No modo supervisor possvel trocar de modo,
parar o sistema, iniciar uma E/S, e acessar estruturas de dados do ncleo
No Minix, h 3 modos: INTR_PRIVILEGE: para troca de contexto e tratamento de
interrupes TASK_PRIVILEGE: para escrita/leitura de portas de Entrada/
Saida (E/S) USER_PRIVILEGE: para servidores e processos do sistema (sem
acesso direto a portas de E/S)
Estrutura Tradicional do UNIX
Espao!supervisor/!ncleo!
Espao usurio!
-
8!
18
Uso/Operao Pelo programador (um de cada vez) em
linguagem de mquina
Pelo operador, Job Control Language
Cada usurio em um terminal, time-sharing
PC: Multi-tarefa, nico usurio Interface grfica, em rede Servidores: multi-usurio, alta
disponibilidade
Multi-tarefa, nico usurio (sempre conectado), com localizao/ mapas, updates automticos,
Usurio s configura (rede de sist. embarcados) e usa naturalmente
Operao autnoma em data centros, Service Computing, SLAs
Um breve resumo da Histria 1a. gerao 1945 - 1955
Tubos a vcuo, plug boards 2a. gerao1955 - 1965
transistores, processamento em lotes 3a. gerao1965 1980
Circuitos integrados e multiprogramao 4a. gerao1980 2000
PCs e servidores, rede internet
5. Gerao: > 2000 Mobile: Mem. Flash, vrias interf.
comunicao, eficincia de energia Sistemas embarcados (carros, artefatos
inteligentes) com sensores, e em rede DataCentros: Multi-core,
Compartilhamento de todos recursos Virtualizao, eficincia de energia
Um pouco de Histria Usando Circuitos integrados foi possvel
construir computadores bem mais sofisticados (duas categorias: comerciais ou cientficos).
Sistema Operacional OS 360 foi criado para a familia de computadores IBM System/360, com grandes diferenas de preo, desempenho e utilizao.
Para processamento cientfico e comercial em toda familia IBM System/360.
Sistema Operacional muito grande e complexo, totalmente em linguagem de montagem (assemply)
Mas introduziu : multiprogramao (vrios jobs em
execuo simultnea) compartilhamento de tempo de CPU
(time sharing) 22
-
9!
23
Um pouco de Histria Com os Computadores Pessoais, os SO evoluiram nas seguintes
direes: Exemplo: MS-DOS, Windows e Macintosh nico usurio menor demanda por segurana e controle
de acesso Demanda por maior portabilidade e configurabilidade Hardware mais barato, e menos eficiente e, apesar disso,
tempo de resposta aceitvel Diversos tipos de perifricos para E/S (mouse, disquetes,
CD-ROM, DVD, Impressoras, Pen-drives, etc.) Interface grfica: sistema de janelas Multi tarefa Interconectado em rede (acessando servios) PlugnPlay (e atualizao automtica de software)
Unix: um breve apanhado da sua evoluo
A partir do fracasso do Projeto MULTICS (= um computador para atendimento a populao de uma cidade inteira), criou-se uma verso menor, o UNICS
Em 1971 Dennis Ritchie e Ken Thomspon desenvolveram o UNIX (verso 1) no AT&T Bell Labs: para o minicomputador, o PDP7 grande parte escrita em linguagem C, que facilitou enormemente
a portabilidade Multi-usurio, multi-tarefa, e centrado nos conceitos de
processo e arquivo
Em seguida, surgiram vrias verses de UNIX comerciais (AT&T, AIX da IBM, Solaris da Sun, etc.) e outras de freeware (e.g. BSB de UC Berkeley, e Minix da Vrije Universitt)
24
-
10!
Verses do Unix
25
Conceitos bsicos (UNIX) Usurio invoca comandos (i.e. executa programas) atravs
de interpretador de comandos em linha de comando (shell). Comandos podem ser executados em 1o ou 2o plano Shell tem o terminal como entrada e saida padro (STDIN
e STDOUT) A shell e os comandos herdam o UserID e um GroupID do
programa login Programas acessam, criam e modificam arquivos, que
esto organizados em uma hierarquia, e tm associados a eles atributos e permisses.
Dispositivos de E/S (impressora, pen-drive, cdrom) so representados como arquivos
Pode-se alterar permisses dos prprios arquivos e diretrios 28
-
11!
29
Processos
Exemplo: A = init, B = /etc/rc (script que inicia diversos drivers) C= login shell comandos do usurio
Maioria dos S.O. executa vrios processos concorrentes
Um processo um programa em execuo. Cada comando da shell um programa.
Na inicializao do sistema, alguns processos do sistema so criados (mas executam em modo usurio).
Processo pai pode ou no esperar pelo trmino do processo filho (se no esperar, diz-se que processo filho executa em 2. plano)
Redirecionamento de E/S Todos os programas em primeiro plano possuem:
STDOUT (standard output), default a tela STDIN (standard input), default o teclado STDERR (standard error), default tambm a tela
Redirecionamento de STDIN/STDOUT. Exemplos: who > file, date >> arq, sort < infile > outfile
Pipe uma conexo entre STDOUT e STDIN de dois processos filho Ex: who | sort - saida de who ser exibida ordenada na
tela 30
-
12!
Variveis de Ambiente A shell acessa uma srie de variveis do ambiente, que
definem o comportamento dos programas/comandos executados. Uma das principais a $PATH, $CLASSPATH
>echo $PATH /home/d/da/darin/bin:/opt/local/bin:/opt/local/bin/pbmutils:/usr/bin:/usr/sbin:/
opt/SUNWspro/bin:/usr/ccs/bin:/opt/local/X11/bin:/usr/dt/bin:/usr/openwin/bin:/opt/local/gnu/bin:/opt/local/games/bin:/usr/ucb:./
Outras variveis: HOST what computer youre logged into PAGER program used display man pages PWD current directory GROUP what group youre in USER your login
possvel criar novas variveis e/ou modifica-las, e.g. setenv ou set (comando especfico depende da shell)
31
32
Sistema de Arquivos Arquivo = conceito abstrato para repositrio durvel de
informao binria, que independente do meio Alm do contedo, arquivo possui uma srie de atributos (meta-
dados) Diretrios/Pastas: agrupamentos arquivos e sub-diretrios
-
13!
Sistema de Arquivos: alguns comandos
pwd - report your current directory cd - change your current directory ls -list contents of directory ls -a/l - list also dot-files (-a), list all details (-l) cp - copy mv - move (or rename) rm -delete a file mkdir -make a directory rmdir -remove an empty directory rm -r - recursive removal cp r - recursive copy
33
34
Usurios & Grupos Unix permite o cadastro de vrios usurios, atravs do
administrador (username root) Lista de usurios contida em /etc/passwd com senha cifrada
Cada user pode pertencer a 1+ grupos useradd, groupadd, groupmod, grouprem
A cada instante, um usurio est em um grupo, e pode trocar usando newgrp groups user lista todos os grupos aos quais user pertence Ex: root pertence aos grupos root, bin, daemon, sys, adm,
disk,... Permisses sobre os arquivos esto definidas em termos do
dono, seu grupo corrente e os outros (bits rwx) Cada processo criado recebe o userID e grpID do seu
processo pai
-
14!
Permisses de Arquivos e Diretrios
Cada arquivo/diretrio tem atributos de controle de acesso: Bits rwx rwx rwx (relativos ao dono, seu grupo e
outros), onde 1/0 significam com/sem permisso chmod g+r - acrescentando direto de leitura
aos membros do grupo
chmod 744 - direitos plenos apenas para dono, demais apenas leitura
chown - mudando o dono do arquivo chgrp - alterando a qual grupo o
arquivo pertence 35
Outros comandos teis grep - busca as linhas que contm no
arquivo diff - mostra as diferenas entre o
contedo dos dois arquivos vi ou pine - editores simples de arquivos sed , awk filtros/ processadores de texto Perl - linguagem para scripts make automatizar a gerao de programas a partir de
vrias componentes interdependentes (dependncias em Makefile), e verificando se alguma foi modificada
man manual on-line ftp - transferncia de arquivos rsh - login remoto
38
-
15!
Hierarquia de Memria O ncleo precisa gerenciar a transferncia transparente de dados de um nvel
para outro
41
42
Viso simplificada do Hardware
Atravs do barramento trafegam: Dados Endereos (Memria e portas de E/S) Instrues de mquina (p. CPU controladores de E/S)
Monitor
Bus
-
16!
43
Reviso de Hardware
Arquitetura de um Pentium
44
Processamento de Interrupes
(a) Iniciando uma E/S e obtendo uma interrupo de hardware (b) Fluxo de controle no tratamento de uma interrupo pelo ncleo
(a)! (b)!
Interrupo a forma do hardware avisar o ncleo que alguma coisa ao precisa ser tomada
O processo atual interrompido e um tratador de interrupo ativado.
-
17!
Chamadas de Sistema o conjunto de operaes disponibilizadas pelo ncleo (a
API) para acesso a recursos da mquina (p.ex. Entrada/Sada)
As funes fazem parte de uma biblioteca do sistema (ligada a todo programa). Cada funo executa um TRAP para trocar para o modo ncleo.
Quando um processo faz uma chamada de sistema, ele abre mo do controle, passando-o para o ncleo.
45
46
Etapas de uma Chamada a Sistema Exemplo: read (fd, buffer, nbytes)
Chamada de sistema = interrupo de software Fluxo de controle passa do programa de aplicao, biblioteca de chamadas
de sistema (libc.so) e o ncleo.
-
18!
50
Ocupao da Memria
Cada processo ocupa uma regio prpria (e isolada) na memria e endereos so traduzidos
51
Um processo na memria
Processos possuem 3 segmentos: text (instrues), dados dinmicos, e pilha
Dados e pilha crescem em sentidos opostos Atravs da chamada de sistema BRK(newDataLimitAddr)processo
pode requisitar mais espao de memria.
-
19!
54
Chamadas de Sistema: Process Management
55
Esboo de uma shell
while (TRUE) { /* repeat forever */ type_prompt( ); /* display prompt */ read_command (command, parameters) /* input from terminal */
if (fork() != 0) { /* fork off child process */ /* Parent code */ waitpid( -1, &status, 0); /* wait for child to exit */ } else { /* Child code */ execve (command, parameters, 0); /* execute command */ } }
-
20!
56
Chamadas de Sistema: File Management
57
Chamadas de Sistema: Directory Management
-
21!
58
Chamadas de Sistema: Outras tarefas
59
Chamadas ao Sistema
Algumas chamadas da interface API Win32
-
22!
Estrutura do iOS (Apple)
Espao!supervisor/!ncleo!
Espao usurio!
Low-level networking, gerenc. de memria, !sistema de arquivos!e threads. !
AddressBook Framework, Cora Data Fr., !Core Media Fr., Core Telephony Fr., !Events, Core Location Fr., !Mobile Core services, SQLite, Quick LookFr., !
Video Fr., Text Fr., Graphics Fr.,! OpenGL ES Fr., !Audio Fr., Media Player, Midi Fr.!
UI Kit Fr., Map Kit Fr., Push Notification Service, !AddressBook Fr., Game Kit Fr., Event Kit Fr.!
Fonte:!http://www.techotopia.com/index.php/The_iOS_4_Architecture_and_SDK_Frameworks!
Arquitetura do Android
66
-
23!
Estrutura do Windows NT 4.0
77
Estrutura doMINIX 3
Kernel
Disk Driver
TTY Driver
Ethernet Driver
Drivers
Process Manager
File Server
Netw. Server
Init User Process User
Process User
Process Server Processes
User processes
XYZ Driver
Kernel: troca de contexto, escalonamento & envio de mensagens System Task: interface para operaes priveligiadas (portas de I/O cpia de dados entre reas da memria) Clock Task: driver para interagir com o relgio do HW Process Mngr: trata de sys.calls de processos: fork, exec, brk, singnal, kill, etc. e faz alocao de memria para processos FS trata de sys.calls para arquivos/diretrios: read, mount, chdir, .. Information Server & Reincarnation Server: para depurao e re-ativao automtica de drivers e servidores
Nvel
1
2
3
4
Inform. Server
Clock Task System Task
Reincarn.. Server
-
24!
Tendncias em Arquiteturas de S.O.
Hierarquia de vrios nveis garantem maior proteo Executar drivers e servidores em modo usurio Permitir vrias configuraes de sistemas, a depender do HW e da utilizao Reduzir ao mximo parte dependente do Hardware (micro-ncleo) Virtualizao do Hardware Sistemas de Arquivos heterogneos e distribudos