Slides Fundamentos de Sistemas Operacionais Unidade I

Embed Size (px)

Citation preview

  • Unidade IUnidade I

    FUNDAMENTOS DE SISTEMAS OPERACIONAIS

    Prof. Victor Halla

  • Contedo

    Introduo; Conceitos; Evoluo; Caractersticas;

    Gerenciamento de Processos; Gerenciamento de Memria;

  • Conceito

    O sistema operacional, segundo Deitel, H. M.; Deitel, P. J.; Choffnes, D. R. (2005), um software que habilita as aplicaes a interagir com o hardware de um computador.

    Seu componente central o ncleo, tambm conhecido como kernel.

    Os sistemas operacionais esto presentes em telefones celulares, automveis, eletrodomsticos, computadores pessoais, alm dos computadores de grande porte ou mainframes.

  • Funes do sistema operacional

    Facilitar o acesso aos recursos do sistema;

    UsuriosProgramadores Programas

    Sistema Operacional

    ProcessadorMemria Discos Perifricos

  • Funes do sistema operacional

    Compartilhar recursos de forma protegida e organizada;

    Usurios Programas

    Sistema Operacional

    Hardware

  • Funes do sistema operacional

    Diminui a complexidade para lidar com o hardware.

    UsuriosAplicativos

    Sistema Operacional

    HardwareLinguagem de Mquina

    Multiprogramao

    Sistema Operacional

    Utilitrios

    Multiprogramao

    Dispositivos Fsicos

  • Arquitetura bsica

    O sistema operacional faz a conexo entre os softwares aplicativos e as necessidades que estes possuem de interagir com o hardware.

    Figura 1 Baseado em Tanenbaum (1987).

  • Estrutura de um sistema operacional

    Ncleo: o corao do sistema operacional, que tem como funo gerenciar todos os recursos.

    Drivers: um modulo com cdigo especifico para acessar um dispositivo fsico. Pode ser comparado a um tradutor.

    Cdigo de Inicializao: um cdigo que tem como objetivo inicializar o sistema atravs da execuo de tarefas complexas.

    Programas Utilitrios: programas que facilitam o uso do sistema operacional.

  • Ncleo do sistema operacional

    O software que contm os componentes centrais do sistema operacional chama-se ncleo ou kernel, em ingls.

    Sistema Operacional

    Kernel

    Assembler

    Firmware

    Hardware

  • Componentes sistema operacional

    Escalonador de processos: determina o momento e o perodo de tempo em que um processo executado pelo processador;

    Gerenciador de memria: determina o momento e a forma como a memria ser cedida aos processos e o que fazer quando a memria principal estiver cheia;

    Gerenciador de E/S: atende s solicitaes de entrada e sada destinadas e provenientes dos dispositivos de hardware;

  • Componentes sistema operacional

    Gerenciador de comunicao inter-processos (IPC): permite que os processos se comuniquem entre si;

    Gerenciador de sistema de arquivos: organiza as colees de dados gravados nos dispositivos de armazenamento e fornece uma referncia para acessar os dados nesse dispositivo.

  • Interatividade

    Qual das alternativas melhor descreve o que um driver de computador utilizado pelo sistema operacional?a) Um programa desenvolvido pelo

    fabricante de hardware.b) Um programa geralmente escrito em

    linguagem de maquina que tem a funo de permitir a comunicao do Sistema Operacional com o hardware;

    c) Um script utilizado pelo kernel;c) Um script utilizado pelo kernel;d) Um vrus de computador;e) Um programa de inicializao do sistema

    operacional.

  • Evoluo do sistema operacionais

    1940 Surgem os primeiros computadores

    digitais eletrnicos. Programas eram submetidos em

    linguagem de mquina.linguagem de mquina. introduo da perfurao de carto para

    armazenamento de dados;

  • Evoluo do sistema operacionais

    1950 Surge o primeiro sistema operacional, no

    incio da dcada, desenvolvido pelos laboratrios de pesquisa da General Motors, para ser executado em seu computador IBM 701.

    O IBM 701 foi o primeiro equipamento da IBM para uso geral;

    O IBM 701 executava apenas um job de cada vez.cada vez.

  • Evoluo do sistema operacionais

    1960 Deu-se incio multi-programao,

    quando projetistas desenvolveram sistemas operacionais que gerenciavam diversos jobs ao mesmo tempo.

    Em 1964 a IBM lanou a famlia System/360, que utilizava o sistema operacional OS/360.

    Os usurios interagiam com o computador por meio de terminaiscomputador por meio de terminais burros.

    Os sistemas operacionais passaram a ser escritos em linguagem de alto nvel.

  • Evoluo do sistema operacionais

    1960 Em 1965, programadores com certa

    experincia recebiam US$ 4 por hora, enquanto o custo do aluguel da hora de um computador de grande porte, que possua capacidade muito menor que a dos computadores pessoais de hoje, era normalmente de US$ 500.

  • Evoluo do sistema operacionais

    1970 Criao da interface grfica com o

    usurio (GUI Graphical UserInterface), desenvolvida pelo Palo Alto Research Center (PARC) da Xerox.

    Ocorreu o amplo uso do protocolo TCP/IP e as redes LANs (Local AreaNetwork) tornaram-se prticas e baratas a partir da aplicao do padro Ethernet desenvolvido no Palo Alto ResearchCenter (PARC) da Xerox.

  • Evoluo do sistema operacionais

    1970 Os sistemas operacionais passaram a

    oferecer servios de configurao da rede e de administrao da segurana, e seu desempenho continua crescendo.

    Os sistemas GUI foram amplamente explorados na dcada de 1980 pela Apple e pela Microsoft.

  • Evoluo do sistema operacionais

    1980 O sistema Apple II teve uma aceitao

    extraordinria. A IBM lana o Personal Computer (PC)

    em 1982 e a Apple lana a sua verso deem 1982 e a Apple lana a sua verso de computador pessoal, batizado de Macintosh, em 1984.

    Em 1981 a Microsoft lanou a primeira verso do MSDOS para computadores pessoais IBM.pessoais IBM.

    O sistema operacional MS-DOS representou um marco na indstria de software

  • Evoluo do sistema operacionais

    1980 Softwares aplicativos, como planilhas

    eletrnicas e editores de texto, ganharam espao e auxiliaram as empresas a ganhar produtividade.

    Computadores pessoais passou a utilizar correio eletrnico, transferncia de arquivos e a acessar bancos de dados remotos.

    Surgiu esto a computao distribuda,Surgiu esto a computao distribuda, que deu origem arquitetura cliente/servidor.

    Microsoft desenvolveu sua plataforma GUI, o Windows.

  • Evoluo do sistema operacionais

    1990 Internet levou a uma enorme ampliao

    na popularidade da computao distribuda.

    Microsoft lanou o Windows 3.0.Microsoft lanou o Windows 3.0. O Windows tornou-se popular a partir de

    1993, com o lanamento do Windows 3.1. O Windows tomou emprestados

    muitos dos conceitos do Macintosh.

  • Evoluo do sistema operacionais

    2000 Ocorre a disponibilidade da Internet de

    alta velocidade a preo acessvel. Surgem os microprocessadores com

    mais de um ncleo.mais de um ncleo. Linguagens de programao, como o

    Java, predispem ao surgimento da computao paralela.

    Surgem sistemas operacionais de cdigo aberto como o FreeBSD OpenBSD eaberto, como o FreeBSD, OpenBSD e Linux.

    Caractersticas do tipo plug-and-play foram adicionadas aos sistemas operacionais.

  • Evoluo do sistema operacionais

    2000 Surge a computao mvel,

    proporcionada por dispositivos como telefones celulares, smartphones e PDAs, que passam a ser dotados de processadores cada vez mais poderosos, dando oportunidade para a criao de novos sistemas operacionais que podero estar associados a questes muito especficas.

  • Interatividade

    Apesar da Xerox ter criado a interface grfica na dcada de 70, porque apenas em 80 ela surgiu no mercado;a) No havia interesse por interfaces

    grficas;b) Mercado no estava preparado para uso

    da tecnologia;c) Tecnologia de interface grfica tinha um

    valor muito alto;d) Muitos problemas ainda ocorreriam comd) Muitos problemas ainda ocorreriam com

    a tecnologia.e) NDA;

  • Conceitos bsicos de hardware

    Processador: componente do hardware que executa um conjunto de instrues em linguagem de mquina, objetivando a execuo eficiente de uma atividade especfica.

    Memria principal: a RAM (Random Access Memory). Consiste em uma memria voltil e de acesso aleatrio.

    Registradores: estas memrias, muito rpidas, operam na velocidade do processador, esto incorporadas no prprio processador e guardam dados para uso imediato por ele

  • Conceitos bsicos de hardware

    Cache: as memrias cache so divididas em L1 e L2 e s vezes em L3 e so integradas aos processadores mais novos para poder explorar as interconexes de alta velocidade.

    Memria principal ou memria primria: memria voltil com maior capacidade de armazenamento e acesso mais lento que a dos registradores e a da cache.

    Armazenamento secundrio: a forma de armazenamento mais lenta, porm com maior capacidade de armazenamento. So os discos rgidos, CD, DVD, etc.

  • Latncia acesso a memrias

    Comparao entre tempo de acesso as memrias utilizadas em um computador;

  • Tipos de sistemas

    Monousurio: permite que apenas um usurio execute uma tarefa de cada vez.

    Multiusurio: uma srie de usurios pode estar realizando tarefas concorrentes.

    Monotarefa: usurio executa uma tarefa de cada vez.

    Multitarefa: permite que o usurio execute diversas tarefas simultaneamente.simultaneamente.

  • Chamadas ao sistema

    Desde a dcada de 1980, os sistemas operacionais incorporaram as Interfaces de Programao de Aplicativo ou API (Application Programming Interfaces).

    Fornecem rotinas que os programadores podem utilizar no desenvolvimento de softwares para requisitar servios ao sistema operacional

    Fonte: Baseado em Deitel H M ; DeitelDeitel, H. M.; Deitel,

    P. J.; Choffnes, D. R. (2005).

  • Sistemas com compartilhamento de tempo

    Um sistema com compartilhamento de tempo (Time- Sharing) tambm conhecido como multitarefa.

    Vrios jobs sos executados pela CPU, que comuta o processamento de cada job.

    Um sistema Time-Sharing utiliza o gerenciamento e a multiprogramao da CPU para prover a cada usurio uma pequena poro de tempo compartilhado de processamento

  • Interatividade

    Qual das alternativas abaixo melhor descreve qual o tipo de sistema operacional Linux?a) Monousurio;b) Multiusurio e monotarefa;c) Multitarefa e monousurio;c) Multitarefa e monousurio;d) Multitarefa;e) Multiusurio e Multitarefa;

  • Gerenciamento de processos

    O gerenciamento de processos ocorre porque o sistema, quando intercala a execuo de um determinado processo, deve conseguir administr-lo cuidadosamente para que possa reinici-lo quando ele for retomadolo quando ele for retomado.

    Os processos devem possuir a capacidade de poder comunicar-se com o sistema operacional, de forma que possam informar, por exemplo, o fim da execuo do processoexecuo do processo.

  • Processos concorrentes

    Os processos no sistema podem ser executados de maneira concorrente.

    Processos podem ser multitarefa em uma CPU.

    Onde dois ou mais processos estoOnde dois ou mais processos esto lendo ou gravando um dado compartilhado, localizado no mesmo endereo de memria principal ou secundria, pode ocorrer uma condio de corrida

  • Execues concorrentes

    Compartilhamento de recurso fsico: os recursos de hardware do computador so finitos e podem ser compartilhados, tornando o ambiente multiusurio.

    Compartilhamento de recursos lgicos: it i d t i t dmuitos usurios podem estar interessados

    no mesmo fragmento de informao, que pode ser provida em um ambiente que permita o acesso concorrente a esses recursos;

    Aumento de velocidade da computao: Aumento de velocidade da computao: quando se deseja que uma tarefa especfica seja executada rapidamente, quebra-se essa tarefa em sub-tarefas e uma a uma elas so executadas paralelamente a outras

  • Execues concorrentes

    Modularidade: quando ocorre a construo de sistemas em padro modular, dividindo-se as funes em processos distintos;

    Convenincia: o usurio pode querer ter muitas tarefas para trabalhar ao mesmo tempo. Um exemplo disso quando os usurios podem estar editando, imprimindo e compilando de forma concorrente.

  • Monitores

    Um monitor uma coleo de procedures, variveis e estruturas de dados que so agrupados em um tipo especial de pacote.

    Processos podem chamar as procedures em um monitor se necessitarem, mas no tero acesso s estruturas de dados internos de uma procedure declarada fora do monitor.

  • Semforos

    um contador e usado quando o recurso a ser utilizado pertence a um conjunto de recursos idnticos.

    uma varivel inteira, maior que zero, que acessada apenas por duas operaes: P (testar) e V (incrementar)

    testar (PodeComprarLeite); if (SemLeite) { Compra Leite; } incrementar (PodeComprarLeite);

  • Gerenciamento de memria

    Estabelece a estratgia de otimizao da memria diante da carga que esta sofrer.

    Estabelece como os espaos de memria disponveis sero alocados para os processos.

    Como ir se atender as requisies de memria de um processador.

  • Swapping

    Tambm conhecido como arquivo de troca.

    Compreende um esquema de troca no qual os processos no permanecem na memria principal at o final de sua execuo.

  • Memria virtual

    Da aos processos a impresso de que h mais memria disponvel do que de fato existe instalada.

    Toda vez que um processo acessar um endereo virtual, o sistema operacional o converter em um endereo real.

    Fonte: Baseado em Deitel, H. M.; Deitel, P. J.; Choffnes, D. R. (2005).

  • Segmentao

    Na segmentao de memria fsica, os dados e instrues de um programa so divididos em blocos, denominados segmentos.

    Cada segmento pode conter um fragmento do contedo que deve ser armazenado, sem a obrigao de que os blocos tenham o mesmo tamanho.

    Fonte: Baseado em Deitel, H. M.; Deitel, P. J.; Choffnes, D. R. (2005).

  • Interatividade

    Porque importante compartilhar os recursos fsicos em um computador?a) Para diminuir erros;b) Facilitar o processamento;c) Para tornar o ambiente multiusurio;c) Para tornar o ambiente multiusurio;d) Dobrar o processamento;e) Criar um sistema monousurio;

  • AT A PRXIMA!