• Nenhum resultado encontrado

Arquitetura de Computadores

N/A
N/A
Protected

Academic year: 2021

Share "Arquitetura de Computadores"

Copied!
35
0
0

Texto

(1)

Arquitetura de Computadores

Prof. Dr. Saulo Amui

(2)
(3)

O que é um Sistema Operacional?

•  Um programa que atua como um intermediário entre um usuário de um computador e o hardware do

computador.

•  Objetivos do sistema operacional:

–  Executar programas do usuário e facilitar a solução dos problemas do usuário.

–  Tornar conveniente o uso do sistema de computação.

•  Possibilita o uso do hardware do computador de maneira eficiente.

(4)

Estrutura do Sistema de Computação

•  Hardware – oferece recursos de computação básicos

–  CPU, memória, dispositivos de E/S

•  Sistema operacional

–  Controla e coordena o uso do hardware entre diversas aplicações e usuários

•  Programas de aplicação – definem as formas como os recursos do sistema são usados para solucionar os

problemas de computação dos usuários

–  Processadores de textos, compiladores, navegadores Web, sistemas de banco de dados, jogos

•  Usuários

(5)

Componentes de um Sistema de

Computação

Usuário 1 Usuário 2 Usuário 3 Usuário n ...

Programas de Sistema e Aplicativos

Sistema Operacional

Hardware

Compilador Montador Editor de Texto Sistema de Banco de Dados ...

(6)

Definição do Sistema Operacional

•  SO é um escalonador de recursos

–  Gerencia todos os recursos

–  Decide entre solicitações em conflito para uso eficaz e justo dos recursos

•  SO é um programa de controle

–  Controla a execução dos programas para impedir erros e uso indevido do computador

(7)

Entendendo o Sistema Operacional

•  É o Sistema Operacional que controla todos os recursos do computador, e fornece a base sobre a qual os

programas aplicativos são escritos.

•  SO pode ser definido como um gerenciador dos

recursos que compõem o computador (processador, memória, I/O, arquivos, etc).

(8)

Entendendo o Sistema Operacional

•  Os problemas centrais que o sistema operacional deve resolver são:

–  o compartilhamento ordenado,

–  a proteção dos recursos a serem usados pelas aplicações do usuário

(9)

Entendendo o Sistema Operacional

•  A função do Sistema Operacional é a de fornecer um esquema de alocação dos recursos: processadores,

memórias, dispositivos de entrada e saída entre os vários processos que competem pela utilização de tais recursos:

(10)

Entendendo o Sistema Operacional

•  Um processo é basicamente um programa em execução divididos em etapas:

–  1.Código executável e dados referentes ao código; –  2. Pilha de execução;

–  3. Valor dos registradores do hardware;

–  4. E o conjunto de informações necessárias a execução do programa.

(11)

Entendendo o Sistema Operacional

•  Esses processos competem aos recursos, e o SO deve garantir a cada processo:

–  1. Uma quantidade de memória; –  2. O uso da CPU;

–  3. O acesso aos dispositivos; –  4. O controle do fluxo de dados;

(12)

Entendendo o Sistema Operacional

•  O SO não permite que um processo altere os dados de um outro arquivo. Um SO deve ter:

–  Consistência - tempo necessário para realizar as tarefas; –  Flexibilidade - permite a inclusão de novos periféricos;

–  Portabilidade - pode ser executado em vários computadores.

A seleção do SO a ser usado varia de acordo com o ambiente para o qual foi projetado.

(13)

Entendendo o Sistema Operacional

•  O Sistema Operacional deve ser adaptado às

características do hardware assim como as linguagens de programação e as ferramentas do usuário final

devem ser adaptados ao Sistema Operacional.

•  Conhecer o Sistema Operacional pode ajudar a resolver alguns problemas que a princípio nos parecem

complicados. Além disso, possui utilitários especiais para a formatação de discos, listagens em vídeo/

impressora, cria- ção/copia/exclusão e alterações de arquivos.

(14)
(15)

Tipos

de

serviços

oferecidos

• A maioria dos Sistemas Operacionais oferece um conjunto básico de serviços, sempre necessários:

° sistema de arquivos: criar, escrever, ler, apagar e renomear arquivos ° carregar um programa na memória principal e executá-lo / abortá-lo ° acesso aos periféricos: alocação, leitura, escrita e liberação

° monitoração do uso de recursos

• ex.: identificação de gargalos como pouca memória ou disco muito lento

° contabilização de recursos

• ex.: quanto tempo foi gasto na CPU por um programa, qual o espaço em disco ocupado por determinado usuário, quantas páginas foram impressas no mês por determinado usuário

° fornecer informações sobre o estado do sistema

(16)

Tipo

de

serviços

oferecidos

• Para melhor aproveitar o hardware, diversos usuários e programas podem compartilhar o computador, mas deve haver uma proteção entre eles, senão:

° um usuário envie dados pra impressora no meio da impressão de outro ° apagar arquivos ou cancelar programas de outros usuários

• Se não houver segurança na manutenção dos dados e

execução dos programas, os usuários não utilização o SO!

° o SO deve garantir que cada usuário possa trabalhar sem sofrer interferência danosa dos demais

° o SO deve prover mecanismos de proteção entre os usuários e programas

(17)

SO

na

Visão

do

Usuário

• A visão que o usuário tem do SO é a forma como ele percebe o sistema

• Essa imagem é definida pela interface através da qual o usuário acessa os serviços do SO

• Esta interface é formada por ° chamadas de sistema

(18)

Chamadas

de

Sistema

• Programas solicitam serviços ao SO através das

chamadas de sistema, semelhantes a sub-rotinas

• Uma chamada de sistema:

° recebe parâmetros passados pelo programa ° transfere a execução para o SO

° seu retorno retoma a execução do programa a partir da instrução que segue a chamada

(19)

Chamadas

de

Sistema

• Em uma linguagem de alto nível, elas ficam

“escondidas” dentro da biblioteca utilizada pelo compilador (API)

• As sub-rotinas da biblioteca é que chamam o sistema:

° ex.: uma função que acesse o terminal, ex.: printf(), exige uma chamada de sistema

→ lembre-se que o acesso aos periféricos é feito (normalmente) pelo SO

(20)

O

núcleo

(kernel)

do

SO

• Kernel é a parte do SO responsável por implementar as chamadas de sistema

• Os principais componentes do kernel são:

° Gerência de processador ° Gerência de memória ° Sistema de arquivos

(21)

A

complexidade

do

kernel

(22)
(23)
(24)
(25)

SO

implementado

em

camadas

• Por conta desta complexidade, muitos Sistemas Operacionais são implementados em camadas:

° o microkernel implementa os serviços mais básicos

associados ao SO

• ex.: gerência de processador, alocação de memória, drivers

° o kernel propriamente dito implementa os demais serviços em cima do microkernel

• ex.: sistema de arquivos, memoria virtual, protocolos de comunicação

(26)

Os

utilitários

do

SO

• São programas de sistema, providos pelo SO mas executados fora (em cima) do kernel

• Implementam tarefas básicas para a utilização do sistema e são confundidos com o próprio SO

• Exemplos de utilitários:

° para manipulação de arquivos: listar, copiar, renomear, imprimir ° para obter informações do sistema: hora, data, temperatura,

usuários logados, espaço de armazenamento livre

° historicamente, editores de texto e compiladores também eram

utilitários do SO, mas como existem muitas alternativas, hoje em dia são distribuídos separadamente

• Os utilitários utilizam chamadas de sistema (do kernel) para efetuar a operação solicitada pelo usuário

(27)

Interpretador

de

Comandos

• É o utilitário mais importante do SO

° é ativado sempre que o usuário inicia sua sessão de trabalho (quando ele “loga” no sistema)

• Sua tarefa:

° receber comandos do usuário e executá-los

° recebe as linhas tecladas, analisa seu conteúdo e executa o comando teclado

• Exemplo de comando: “listar diretório”

° no Linux o comando é ls

° no Windows o comando é dir

→ mesmo que “listar diretório” seja feito por meio de uma GUI, ele envolve as mesmas chamadas de sistema

(28)

Comandos

do

Interpretador

• É uma questão de projeto decidir quais comandos serão aceitos pelo interpretador, exemplos:

° ls, cd, find, cat, touch, rm, mkdir ° grep, sed, awk

• Em geral, estes comandos são executados mais

rapidamente, pois não exigem a carga e execução de outro programa

→ OBS.: demais comandos (não inclusos no

interpretador) podem ser implementados através de

(29)

Outros

Interpretadores

de

Comandos

• Porém, o interpretador de comandos não precisa ser um

programa de sistema

• Pode-se construir outros interpretadores e instalar

aquele que preferir, exemplos: ° Linux: bash, shell, ksh, csh ° Windows: cmd, cygwin, putty

→ cada usuário utilizaria aquele que for mais apropriado à sua experiência ou ao trabalho a ser desenvolvido

(30)

Interface

de

Linha

de

Comando

(CLI)

• O interpretador, acessado via uma Interface de Linha de Comando (no inglês, CLI), consiste numa espécie de tradutor entre o sistema operacional e o usuário • Permite a execução de

comandos direto no prompt do sistema ou através de scripts (arquivos de texto, contendo uma sequência de comandos)

(31)
(32)

Interface

Gráfica

com

o

Usuário

(GUI)

• Tudo o que foi dito sobre CLI é igualmente válido quando o Sistema

Operacional oferece uma GUI

• A única diferença está na comodidade para o

usuário, que passa a usar ícones, menus e mouse no lugar de digitar comandos textuais

(33)

Interface

Gráfica

com

o

Usuário

(GUI)

• Na maioria das vezes a GUI é o que as pessoas entendem por “sistema operacional”

→ mas não se esqueça: um SO possui um kernel e um

interpretador de comandos (CLI ou GUI)

• No dia a dia, o usuário trabalha com programas

distantes do SO, como editores de texto, compiladores, aplicativos, jogos

° assim, o SO propriamente dito fica escondido, longe da percepção do usuário

(34)

GUI

ou

CLI?

• À medida que o usuário ganha experiência com o

sistema, passa a julgar as interfaces pela sua

flexibilidade e capacidade de realizar tarefas mais complexas

• Tarefas repetitivas comumente são melhor

desempenhadas na CLI, com a construção de um script para automatizar a tarefa, exs.:

° converter vários arquivos para PDF

° obter uma grande lista de arquivos da Internet

° gerar gráficos a partir de centenas de arquivos

(35)

Referências Bibliográficas

•  Silva, J.L; Arquitetura de Computadores,

Universidade de São Paulo.

•  Valadão, E.; Sistemas Operacionais

(Introdução), IFMG, 2011.

Referências

Documentos relacionados

Este prospecto foi preparado com as informações necessárias ao atendimento às disposições do Código de Auto- Regulação da Associação Nacional dos Bancos de Investimento –

Ao avaliar a remissão em pacientes com depressão crônica grave, com duração média de 6 anos e com 10,2% de casos de tentativas de suicídio, a associação de

Inspetor de redes Permite que você teste seu roteador doméstico por vulnerabilidades, como senhas fracas ou firmware expirado, e fornece a você orientação e um fácil acesso a lista

Os sub-gêneros, nesta pesquisa, são todas as formas derivadas de um gênero. Como por exemplo, o drama musicado regional, ou a revista circense. A variedade de gêneros e

Se o poeta pode dizer — “Não fiz nada, bem sei, nem o farei,/ Mas de não ter feito nada isto tirei,/ Que fazer tudo e nada é sempre o mesmo,/ Quem sou é o espectro do que

As percepções do papel efetivo da liderança da nova escola de Relações Públicas da Comunicação Integrada são tratadas no texto mostrando a importância de cargos de

(grifos nossos). b) Em observância ao princípio da impessoalidade, a Administração não pode atuar com vistas a prejudicar ou beneficiar pessoas determinadas, vez que é

devidamente assinadas, não sendo aceito, em hipótese alguma, inscrições após o Congresso Técnico; b) os atestados médicos dos alunos participantes; c) uma lista geral