FUNDAMENTOS DE SISTEMAS...
Transcript of FUNDAMENTOS DE SISTEMAS...
Conteúdo
Introdução;Conceitos;Evolução;Características;
Gerenciamento de Processos;Gerenciamento de Memória;
Conceito
O sistema operacional, segundo Deitel, H. M.; Deitel, P. J.; Choffnes, D. R. (2005), é um software que habilita as aplicações a interagir com o hardware de um computador. Seu componente central é o núcleo, também conhecido como kernel. Os sistemas operacionais estão presentes em telefones celulares, automóveis, eletrodomésticos, computadores pessoais, além dos computadores de grande porte ou mainframes.
Funções do sistema operacional
Facilitar o acesso aos recursos do sistema;
UsuáriosProgramadores Programas
Sistema Operacional
ProcessadorMemória Discos Periféricos
Funções do sistema operacional
Compartilhar recursos de forma protegida e organizada;
Usuários Programas
Sistema Operacional
Hardware
Funções do sistema operacional
Diminui a complexidade para lidar com o hardware.
UsuáriosAplicativos
Sistema Operacional
HardwareLinguagem de Máquina
Multiprogramação
Sistema Operacional
Utilitários
Multiprogramação
Dispositivos Físicos
Arquitetura básica
O sistema operacional faz a conexão 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
Núcleo: é o coração do sistema operacional, que tem como função gerenciar todos os recursos.Drivers: é um modulo com código especifico para acessar um dispositivo físico. Pode ser comparado a um tradutor.Código de Inicialização: é um código que tem como objetivo inicializar o sistema através da execução de tarefas complexas.Programas Utilitários: programas que facilitam o uso do sistema operacional.
Núcleo do sistema operacional
O software que contém os componentes centrais do sistema operacional chama-se núcleo ou kernel, em inglês.
Sistema Operacional
Kernel
Assembler
Firmware
Hardware
Componentes sistema operacional
Escalonador de processos: determina o momento e o período de tempo em que um processo é executado pelo processador;Gerenciador de memória: determina o momento e a forma como a memória será cedida aos processos e o que fazer quando a memória principal estiver cheia;Gerenciador de E/S: atende às solicitações de entrada e saída destinadas e provenientes dos dispositivos de hardware;
Componentes sistema operacional
Gerenciador de comunicação inter-processos (IPC): permite que os processos se comuniquem entre si;Gerenciador de sistema de arquivos: organiza as coleções de dados gravados nos dispositivos de armazenamento e fornece uma referência 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 função de permitir a comunicação do Sistema Operacional com o hardware;
c) Um script utilizado pelo kernel;c) Um script utilizado pelo kernel;d) Um vírus de computador;e) Um programa de inicialização do sistema
operacional.
Evolução do sistema operacionais
1940Surgem os primeiros computadores digitais eletrônicos.Programas eram submetidos em linguagem de máquina.linguagem de máquina.introdução da perfuração de cartão para armazenamento de dados;
Evolução do sistema operacionais
1950Surge o primeiro sistema operacional, no início da década, desenvolvido pelos laboratórios 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.
Evolução do sistema operacionais
1960Deu-se início à multi-programação, quando projetistas desenvolveram sistemas operacionais que gerenciavam diversos jobs ao mesmo tempo.Em 1964 a IBM lançou a família System/360, que utilizava o sistema operacional OS/360.Os usuários interagiam com o computador por meio de “terminaiscomputador por meio de terminais burros”.Os sistemas operacionais passaram a ser escritos em linguagem de alto nível.
Evolução do sistema operacionais
1960Em 1965, programadores com certa experiência recebiam US$ 4 por hora, enquanto o custo do aluguel da hora de um computador de grande porte, que possuía capacidade muito menor que a dos computadores pessoais de hoje, era normalmente de US$ 500.
Evolução do sistema operacionais
1970Criação da interface gráfica com o usuário (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 práticas e baratas a partir da aplicação do padrão Ethernet desenvolvido no Palo Alto ResearchCenter (PARC) da Xerox.
Evolução do sistema operacionais
1970Os sistemas operacionais passaram a oferecer serviços de configuração da rede e de administração da segurança, e seu desempenho continua crescendo.Os sistemas GUI foram amplamente explorados na década de 1980 pela Apple e pela Microsoft.
Evolução do sistema operacionais
1980O sistema Apple II teve uma aceitação extraordinária.A IBM lança o Personal Computer (PC) em 1982 e a Apple lança a sua versão deem 1982 e a Apple lança a sua versão de computador pessoal, batizado de Macintosh, em 1984.Em 1981 a Microsoft lançou a primeira versão do MSDOS para computadores pessoais IBM.pessoais IBM.O sistema operacional MS-DOS representou um marco na indústria de software
Evolução do sistema operacionais
1980Softwares aplicativos, como planilhas eletrônicas e editores de texto, ganharam espaço e auxiliaram as empresas a ganhar produtividade.Computadores pessoais passou a utilizar correio eletrônico, transferência de arquivos e a acessar bancos de dados remotos.Surgiu estão a computação distribuída,Surgiu estão a computação distribuída, que deu origem à arquitetura cliente/servidor.Microsoft desenvolveu sua plataforma GUI, o Windows.
Evolução do sistema operacionais
1990Internet levou a uma enorme ampliação na popularidade da computação distribuída.Microsoft lançou o Windows 3.0.Microsoft lançou o Windows 3.0.O Windows tornou-se popular a partir de 1993, com o lançamento do Windows 3.1.O Windows “tomou emprestados” muitos dos conceitos do Macintosh.
Evolução do sistema operacionais
2000Ocorre a disponibilidade da Internet de alta velocidade a preço acessível.Surgem os microprocessadores com mais de um núcleo.mais de um núcleo.Linguagens de programação, como o Java, predispõem ao surgimento da computação paralela.Surgem sistemas operacionais de código aberto como o FreeBSD OpenBSD eaberto, como o FreeBSD, OpenBSD e Linux.Características do tipo “plug-and-play” foram adicionadas aos sistemas operacionais.
Evolução do sistema operacionais
2000Surge a computação móvel, proporcionada por dispositivos como telefones celulares, smartphones e PDAs, que passam a ser dotados de processadores cada vez mais poderosos, dando oportunidade para a criação de novos sistemas operacionais que poderão estar associados a questões muito específicas.
Interatividade
Apesar da Xerox ter criado a interface gráfica na década de 70, porque apenas em 80 ela surgiu no mercado;a) Não havia interesse por interfaces
gráficas;b) Mercado não estava preparado para uso
da tecnologia;c) Tecnologia de interface gráfica tinha um
valor muito alto;d) Muitos problemas ainda ocorreriam comd) Muitos problemas ainda ocorreriam com
a tecnologia.e) NDA;
Conceitos básicos de hardware
Processador: componente do hardware que executa um conjunto de instruções em linguagem de máquina, objetivando a execução eficiente de uma atividade específica.Memória principal: é a RAM (Random Access Memory). Consiste em uma memória volátil e de acesso aleatório.Registradores: estas memórias, muito rápidas, operam na velocidade do processador, estão incorporadas no próprio processador e guardam dados para uso imediato por ele
Conceitos básicos de hardware
Cache: as memórias cache são divididas em L1 e L2 – e às vezes em L3 – e são integradas aos processadores mais novos para poder explorar as interconexões de alta velocidade.Memória principal ou memória primária: é memória volátil com maior capacidade de armazenamento e acesso mais lento que a dos registradores e a da cache.Armazenamento secundário: é a forma de armazenamento mais lenta, porém com maior capacidade de armazenamento. São os discos rígidos, CD, DVD, etc.
Latência acesso a memórias
Comparação entre tempo de acesso as memórias utilizadas em um computador;
Tipos de sistemas
Monousuário: permite que apenas um usuário execute uma tarefa de cada vez.Multiusuário: uma série de usuários pode estar realizando tarefas concorrentes.Monotarefa: usuário executa uma tarefa de cada vez.Multitarefa: permite que o usuário execute diversas tarefas simultaneamente.simultaneamente.
Chamadas ao sistema
Desde a década de 1980, os sistemas operacionais incorporaram as Interfaces de Programação de Aplicativo ou API (Application Programming Interfaces).Fornecem rotinas que os programadores podem utilizar no desenvolvimento de softwares para requisitar serviços 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) é também conhecido como multitarefa.Vários jobs sãos executados pela CPU, que comuta o processamento de cada job.Um sistema Time-Sharing utiliza o gerenciamento e a multiprogramação da CPU para prover a cada usuário uma pequena porção de tempo compartilhado de processamento
Interatividade
Qual das alternativas abaixo melhor descreve qual o tipo de sistema operacional Linux?a) Monousuário;b) Multiusuário e monotarefa;c) Multitarefa e monousuário;c) Multitarefa e monousuário;d) Multitarefa;e) Multiusuário e Multitarefa;
Gerenciamento de processos
O gerenciamento de processos ocorre porque o sistema, quando intercala a execução 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 execução do processoexecução 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 estãoOnde dois ou mais processos estão lendo ou gravando um dado compartilhado, localizado no mesmo endereço de memória principal ou secundária, pode ocorrer uma “condição de corrida”
Execuções concorrentes
Compartilhamento de recurso físico: os recursos de hardware do computador são finitos e podem ser compartilhados, tornando o ambiente multiusuário.Compartilhamento de recursos lógicos:
it á i d t i t dmuitos usuários podem estar interessados no mesmo fragmento de informação, que pode ser provida em um ambiente que permita o acesso concorrente a esses recursos;Aumento de velocidade da computação:Aumento de velocidade da computação: quando se deseja que uma tarefa específica seja executada rapidamente, quebra-se essa tarefa em sub-tarefas e uma a uma elas são executadas paralelamente a outras
Execuções concorrentes
Modularidade: quando ocorre a construção de sistemas em padrão modular, dividindo-se as funções em processos distintos;Conveniência: o usuário pode querer ter muitas tarefas para trabalhar ao mesmo tempo. Um exemplo disso é quando os usuários podem estar editando, imprimindo e compilando de forma concorrente.
Monitores
Um monitor é uma coleção de procedures, variáveis e estruturas de dados que são agrupados em um tipo especial de pacote.Processos podem chamar as procedures em um monitor se necessitarem, mas não terão acesso às estruturas de dados internos de uma procedure declarada fora do monitor.
Semáforos
É um contador e é usado quando o recurso a ser utilizado pertence a um conjunto de recursos idênticos.É uma variável inteira, maior que zero, que é acessada apenas por duas operações: P (testar) e V (incrementar)testar (PodeComprarLeite); if (SemLeite) {
Compra Leite; } incrementar (PodeComprarLeite);
Gerenciamento de memória
Estabelece a estratégia de otimização da memória diante da carga que esta sofrerá.Estabelece como os espaços de memória disponíveis serão alocados para os processos.Como irá se atender as requisições de memória de um processador.
Swapping
Também conhecido como arquivo de troca.Compreende um esquema de troca no qual os processos não permanecem na memória principal até o final de sua execução.
Memória virtual
Da aos processos a impressão de que há mais memória disponível do que de fato existe instalada.Toda vez que um processo acessar um endereço virtual, o sistema operacional o converterá em um endereço real.
Fonte: Baseado em Deitel, H. M.; Deitel, P. J.; Choffnes, D. R. (2005).
Segmentação
Na segmentação de memória física, os dados e instruções de um programa são divididos em blocos, denominados segmentos.Cada segmento pode conter um fragmento do conteúdo que deve ser armazenado, sem a obrigação 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 físicos em um computador?a) Para diminuir erros;b) Facilitar o processamento;c) Para tornar o ambiente multiusuário;c) Para tornar o ambiente multiusuário;d) Dobrar o processamento;e) Criar um sistema monousuário;