Você está na página 1de 19

Principais Aspectos de Sistemas Operacionais Laboratrio de Sistemas Operacionais Aula 1 Flvia Maristela (flavia@flaviamaristela.com) O que veremos nesta aula?

Tudo o que j vimos antes... Introduo Estrutura de sistemas computacionais Sistema operacional na viso do usurio Viso interna de um sistema operacional Processos e Threads Gerncia de Memria Arquivos Entrada e Sada Mas afinal, para que serve um sistema operacional? Viso geral de um sistema computacional Um sistema computacional consiste em: Programas Aplicativos Programas do Sistema Dispositivos de Hardware Hardware Compiladores Editores Interpretadores de Comandos Sistema Bancrio Editor de texto, Planilha Eletrnica Navegador

necessrio um componente capaz de... Gerenciar diferentes recursos CPU, memria, disco, ... Melhorar a performance do computador tempo de resposta, throughput*,... Prover uma arquitetura que facilite a programao: possvel abstrair a camada de hardware! necessrio um componente capaz de... Servir de interface entre o hardware e o resto do computador Sistema Operacional Hardware Compiladores Editores Interpretadores de Comandos Sistema Bancrio Editor de texto, Planilha Eletrnica Navegador Quais as principais funes de um sistema operacional? Gerenciar recursos de hardware Gerenciamento de Processador Gerenciamento de Memria Gerenciamento de E/S Gerncia de Arquivos Gerenciando o hardware (-- processador --) O que faz o processador? Ele crebro do computador! Ele busca suas instrues para execuo na memria Instrues podem ser executadas de duas formas: Modo kernel Modo usurio

Gerenciando o hardware (-- processador --) Modo kernel CPU pode executar qualquer instruo CPU tem acesso direto ao hardware Modo usurio Permite a execuo de apenas um subconjunto de instrues Acesso limitado aos atributos das instrues Funes que envolvem E/S e proteo de memria no so acessveis GerenciandoohardwareGerenciando o hardware ((----memmemriaria ----)) Para que serve a memria? Segundo principal componente do computador. Tipos de Memria: Cache Principal Disco Magntico Fita Magntica GerenciandoohardwareGerenciando o hardware ((----EntradaeSaEntrada e Sadada ----)) Dispositivos de E/S interagem fortemente com o sistema operacional Modos de realizar E/S: Espera ociosa Interrupo Direct Memory Access (DMA) Para pensar um pouco... Existe algum programa que precisa executar no modo kernel? Que programas executam no modo usurio? Como um programa do modo usurio pode acessar os dispositivos de E/S? GerenciandoohardwareGerenciando o hardware ((----processadorprocessador ----)) Modo kernel CPU pode executar qualquer instruo CPU tem acesso direto ao hardware Modo usurio Permite a execuo de apenas um subconjunto de instrues Acesso limitado aos atributos das instrues Funes que envolvem E/S e proteo de memria no so acessveis GerenciandoohardwareGerenciando o hardware ((----memmemriaria ----)) Para que serve a memria? Segundo principal componente do computador. Tipos de Memria: Cache Principal Disco Magntico Fita Magntica GerenciandoohardwareGerenciando o hardware ((----EntradaeSaEntrada e Sadada ----)) Dispositivos de E/S interagem fortemente com o sistema operacional

Modos de realizar E/S: Espera ociosa Interrupo Direct Memory Access (DMA) Para pensar um pouco... Existe algum programa que precisa executar no modo kernel? Que programas executam no modo usurio? Como um programa do modo usurio pode acessar os dispositivos de E/S?

Como o usurio acessa o hardware? Sistema Operacional Hardware Compiladores Editores Interpretadores de Comandos Sistema Bancrio Editor de texto, Planilha Eletrnica Navegador Programas de sistema ou utilitrios Controle permanece com o usurio Chamadas de sistema (system calls) Controle passado para o sistema operacional De fora para dentro... Sistema operacional na viso do usurio: system calls: usadas quando programas solicitam servios ao sistema operacional; transferem a execuo do programa para o sistema operacional; So executadas em modo kernel Exemplo: um usurio deseja ler o contedo de um arquivo texto. #Algoritmo 1. usurio acessa o editor 2. editor faz uma chamada de sistema para o sistema operacional 3. sistema operacional verifica se o arquivo existe 4. se arquivo existe 5. chamada de sistema para ler contedo do arquivo 6. chamada de sistema para exibir contedo no terminal 7. seno 8. Sistema operacional informa ao editor que arquivo no existe Outros tipos de sistemas operacionais Bart Simpson resolveu comprar um computador e criar um sistema operacional apenas para usar o Bloco de Notas. Que caractersticas esse Sistema Operacional precisaria ter? Meu sistema operacional vai ser monousurio e monotarefa! Outros tipos de sistemas operacionais Mais tarde, Bart resolveu que gostaria tambm de ouvir msica, enquanto editava seu texto. Que mudanas ele precisaria fazer no Sistema Operacional? Meu sistema operacional vai precisar ser alterado para considerar vrias tarefas sendo executadas!

Outros tipos Outros tipos de sistema operacional Com relao ao usurio Monousurio vs. Multiusurio Com relao ao nmero de tarefas que podem ser executadas: Monotarefa vs. Multitarefa Com relao ao tipo de programao Monoprogramao vs. Multiprogramao OutrostiposdesistemaoperacionalOutros tipos de sistema operacional MultitarefaMultitarefaMultiprogramao MultitarefaMonotarefaMonoprogramao MultiusurioMonousurio OutrostiposdesistemaoperacionalOutros tipos de sistema operacional Sistemas Multiprogramaveis/Multitarefas Batch Time-sharing Distribudos Tempo Real Embarcados Para os alunos: Pesquisem quais as principais caractersticas destes tipos de sistema operacional para a prxima aula. Maisalgumasperguntas!Mais algumas perguntas! O computador realiza acessos simultneos ao processador, memria ou dispositivos de E/S? Como possvel controlar o acesso simultneo ao processador? Escalonamento Como possvel controlar o acesso simultneo a memria? Segmentao Como possvel controlar o acesso simultneo aos dispositivos de E/S? Interrupo OutrostiposdesistemaoperacionalOutros tipos de sistema operacional Com relao ao usurio Monousurio vs. Multiusurio Com relao ao nmero de tarefas que podem ser executadas: Monotarefa vs. Multitarefa Com relao ao tipo de programao Monoprogramao vs. Multiprogramao OutrostiposdesistemaoperacionalOutros tipos de sistema operacional MultitarefaMultitarefaMultiprogramao MultitarefaMonotarefaMonoprogramao MultiusurioMonousurio OutrostiposdesistemaoperacionalOutros tipos de sistema operacional Sistemas Multiprogramaveis/Multitarefas Batch Time-sharing Distribudos Tempo Real Embarcados Para os alunos: Pesquisem quais as principais caractersticas destes tipos de sistema operacional para a prxima aula. Maisalgumasperguntas!Mais algumas perguntas! O computador realiza acessos simultneos ao processador, memria ou dispositivos de E/S?

Como possvel processador? Escalonamento Como possvel memria? Segmentao Como possvel dispositivos de Interrupo

controlar o acesso simultneo ao controlar o acesso simultneo a controlar o acesso simultneo aos E/S?

Umpresenteparaosalunos!Um presente para os alunos! 1. O que um sistema operacional? 2. Porque os sistemas operacionais foram criados? 3. Quais as principais funes de um sistema operacional? 4. O que kernel? 5. Quais os tipos de acesso a hardware? Quais as diferenas entre eles? 6. O que so as interrupes? Para que servem? 7. O que so as system calls? 8. Quais os tipos de sistema operacional? Explique cada um deles. 9. Caracterize as abordagens: kernel monoltico vs. kernel em camadas. ProcessoseProcessos e ThreadsThreads Quantas operaes voc realiza simultaneamente no seu computador? Umpresenteparaosalunos!Um presente para os alunos! 1. O que um sistema operacional? 2. Porque os sistemas operacionais foram criados? 3. Quais as principais funes de um sistema operacional? 4. O que kernel? 5. Quais os tipos de acesso a hardware? Quais as diferenas entre eles? 6. O que so as interrupes? Para que servem? 7. O que so as system calls? 8. Quais os tipos de sistema operacional? Explique cada um deles. 9. Caracterize as abordagens: kernel monoltico vs. kernel em camadas. ProcessoseProcessos e ThreadsThreads Quantas operaes voc realiza simultaneamente no seu computador?

ProcessosProcessos O que um processo? Programa vs. Processos Processo uma atividade de um programa Exemplo: vamos fazer um bolo! Fazer o bolo corresponde a fazer um programa! Ento, quais os principais elementos de um programa? VamosconsiderarumexemploVamos considerar um exemplo Vamos fazer um bolo! ENTRADA (--ingredientes --) PROCESSAMENTO (--algoritmo --) SADA (--bolo --) 1. Bater as claras em neve 2. Misturar acar e manteiga 3. Adicionar as gemas 4. Adicionar metade da farinha de trigo 5. Adicionar metade do leite 6. Adicionar a outra metade da farinha de trigo 7. Adicionar a outra metade do leite 8. Ligar o forno a 180 9. Adicionar as claras 10. Despejar bolo na forma 11. Colocar a forma no forno VamosconsiderarumexemploVamos considerar um exemplo P1 Programa: fazer um bolo P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 EstadosdeumprocessoEstados de um processo Clssicos Execuo Bloqueado Pronto (Apto) Outros estados da literatura Iniciado Finalizado (terminado) ProcessosProcessos O que um processo? Programa vs. Processos Processo uma atividade de um programa Exemplo: vamos fazer um bolo! Fazer o bolo corresponde a fazer um programa! Ento, quais os principais elementos de um programa? VamosconsiderarumexemploVamos considerar um exemplo

Vamos fazer um bolo! ENTRADA (--ingredientes --) PROCESSAMENTO (--algoritmo --) SADA (--bolo --) 1. Bater as claras em neve 2. Misturar acar e manteiga 3. Adicionar as gemas 4. Adicionar metade da farinha de trigo 5. Adicionar metade do leite 6. Adicionar a outra metade da farinha de trigo 7. Adicionar a outra metade do leite 8. Ligar o forno a 180 9. Adicionar as claras 10. Despejar bolo na forma 11. Colocar a forma no forno VamosconsiderarumexemploVamos considerar um exemplo P1 Programa: fazer um bolo P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 EstadosdeumprocessoEstados de um processo Clssicos Execuo Bloqueado Pronto (Apto) Outros estados da literatura Iniciado Finalizado (terminado)

Voltandoaonossoexemplo...Voltando ao nosso exemplo... Enquanto o bolo est sendo preparado, o filho do cozinheiro cai da bicicleta e se machuca! O que fazer? O cozinheiro vai interromperinterromper o bolo para dar os primeiros socorros ao filho! P1 Programa: primeiros socorros P2 P3 P4 P5 P6 Bolo Bolo Primeiros socorros tempo Voltandoaonossoexemplo...Voltando ao nosso exemplo... Estados dos processos: Em execuo: Selecionar ingredientes Misturar acar e manteiga Fazer curativo Bloqueado Acabou o leite Faltou algodo Apto O bolo pode ser finalizado enquanto ele atende o filho Mas afinal, quem que coloca ordem na casa? ESCALONADOR: implementao de baixo nvel do sistema operacional que controla o acesso a CPU Em nosso exemplo: ESCALONADOR: a conscincia do cozinheiro PROCESSADOR: cozinheiro PROCESSOS: atividades que ele precisava realizar SerSer quepodepiorar?que pode piorar? Imagine agora uma padaria, onde alm do bolo necessrio fazer pes, salgados, doces... compartilhando os mesmos ingredientes Isso se chama PROGRAMAPROGRAMAOCONCORRENTEO CONCORRENTE Voltandoaonossoexemplo...Voltando ao nosso exemplo... Enquanto o bolo est sendo preparado, o filho do cozinheiro cai da bicicleta e se machuca! O que fazer? O cozinheiro vai interromperinterromper o bolo para dar os primeiros socorros ao filho! P1 Programa: primeiros socorros P2 P3 P4 P5 P6 Bolo Bolo Primeiros socorros tempo Voltandoaonossoexemplo...Voltando ao nosso exemplo... Estados dos processos: Em execuo: Selecionar ingredientes Misturar acar e manteiga Fazer curativo Bloqueado

Acabou o leite Faltou algodo Apto O bolo pode ser finalizado enquanto ele atende o filho Mas afinal, quem que coloca ordem na casa? ESCALONADOR: implementao de baixo nvel do sistema operacional que controla o acesso a CPU Em nosso exemplo: ESCALONADOR: a conscincia do cozinheiro PROCESSADOR: cozinheiro PROCESSOS: atividades que ele precisava realizar SerSer quepodepiorar?que pode piorar? Imagine agora uma padaria, onde alm do bolo necessrio fazer pes, salgados, doces... compartilhando os mesmos ingredientes Isso se chama PROGRAMAPROGRAMAOCONCORRENTEO CONCORRENTE

ThreadsThreads Definio: Entidades escalonadas para execuo Tanenbaum Fluxo de execuo dentro de um processo Rmulo Oliveira Unidade bsica de utilizao da CPU Silbershatz Threads compartilham os mesmos recursos de um processo VisoclViso clssicassica vsvs.. VisoViso contemporneacontempornea Quando usamos as threads? Quando precisamos de ProgramaProgramaoconcorrenteo concorrente! Processo 1 Processo 1 Processo 1 Processo 1 Kernel Kernel Espao do usurio Espao do kernel Maisumpresente!Mais um presente! 1. O que um processo? 2. Quais os estados de um processo? 3. Qual a diferena entre programa e processo? 4. O que o escalonador? Pelo que ele responsvel? 5. O que so as threads? 6. Qual a diferena entre processo e thread? 7. Para que servem as threads? ThreadsThreads Definio: Entidades escalonadas para execuo Tanenbaum Fluxo de execuo dentro de um processo Rmulo Oliveira Unidade bsica de utilizao da CPU Silbershatz Threads compartilham os mesmos recursos de um processo VisoclViso clssicassica vsvs.. VisoViso contemporneacontempornea Quando usamos as threads? Quando precisamos de ProgramaProgramaoconcorrenteo concorrente! Processo 1 Processo 1 Processo 1 Processo 1 Kernel Kernel Espao do usurio Espao do kernel Maisumpresente!Mais um presente! 1. O que um processo? 2. Quais os estados de um processo? 3. Qual a diferena entre programa e processo? 4. O que o escalonador? Pelo que ele responsvel? 5. O que so as threads? 6. Qual a diferena entre processo e thread? 7. Para que servem as threads?

G GG e ee r rr n nn c cc i ii a aa d dd e ee M MM e ee m mm r rr i ii a aa M MM e ee m mm r rr i ii a aa O que a memria? Exemplos: RAM, ROM, Flash, HD, pen-drive, MP3, MP4, etc. Tipos de memria Voltil No-voltil H HH i ii e

ee r rr a aa r rr q qq u uu i ii a aa d dd e ee M MM e ee m mm r rr i ii a aa U UU m mm a aa r rr e ee f ff l ll e ee x xx o oo s ss o oo b

bb r rr e ee g gg e ee r rr n nn c cc i ii a aa d dd e ee m mm e ee m mm r rr i ii a aa Porque foi necessrio criar esta estrutura de hierarquia de memria? Disco Magntico Principal Fitas Magnticas Cache preo velocidade Capacidade de armazenamento Memria P1 Como podemos dividir a memria de forma que diferentes programas possam acessar?

UmareflexosobregernciadememUma reflexo sobre gerncia de memriaria Memria P1 P2 P3 P1 P2 P3 P4 P5 P6 P1 P2 P4 Podemos dividir a memria em tamanhos iguais! Esta no a melhor forma, pois pode haver desperdcio! UmareflexosobregernciadememUma reflexo sobre gerncia de memriaria P1 P2 P 3 P1 P2 P 3 P1 P2 P 3 P1 P2 P 3 Ento, podemos dividir a memria em tamanhos diferentes! E se o programa atingir o limite de memria disponvel para ele? UmareflexosobregernciadememUma reflexo sobre gerncia de memriaria P1 P2 P3 P1 P1 ? Como alocar um programa cuja necessidade total corresponde a soma dos espaos disponveis? ComoComo posspossveldividirealocaradequadamenteosespavel dividir e alocar adequadam ente os espaosos dememde memria?ria? UmareflexosobregernciadememUma reflexo sobre gerncia de memriaria Memria P1 P2 P3 P1 P2 P3 P4 P5 P6 P1 P2 P4 Podemos dividir a memria em tamanhos iguais! Esta no a melhor forma, pois pode haver desperdcio! UmareflexosobregernciadememUma reflexo sobre gerncia de memriaria P1 P2 P 3 P1 P2 P 3 P1 P2 P 3 P1 P2 P 3 Ento, podemos dividir a memria em tamanhos diferentes! E se o programa atingir o limite de memria disponvel para ele? UmareflexosobregernciadememUma reflexo sobre gerncia de memriaria P1 P2 P3 P1 P1 ? Como alocar um programa cuja necessidade total corresponde a soma dos espaos disponveis?

ComoComo posspossveldividirealocaradequadamenteosespavel dividir e alocar adequadam ente os espaosos dememde memria?ria?

Você também pode gostar