FUNDAMENTOS DE SISTEMAS...

43
Unidade I Unidade I FUNDAMENTOS DE SISTEMAS OPERACIONAIS Prof. Victor Halla

Transcript of FUNDAMENTOS DE SISTEMAS...

Unidade IUnidade I

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Prof. Victor Halla

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;

ATÉ A PRÓXIMA!