cap-01

24
1 1 Markus Endler – Sala RDC 503 [email protected] INF 1019: Sistemas de Computação (Sistemas Operacionais) http://www.inf.puc-rio.br/~endler/courses/inf1019/ 2 INF 1019: Sistemas de Computação 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. Página 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 página da disciplina

Upload: lipones

Post on 03-Oct-2015

5 views

Category:

Documents


3 download

DESCRIPTION

Apresentação do Curso de Sistemas Operacionais.

TRANSCRIPT

  • 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