Introdução.

Slides:



Advertisements
Apresentações semelhantes
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais Prof.: Gustavo Wagner
Advertisements

Sistema Multiutilizador
Prof. Paulo Barreto O hardware são as partes concretas de uma máquina, como o gabinete, o teclado, o mouse, a impressora, o disco.
HARDWARE (Parte II). 2 Hardware – Memória  Componente de um sistema de computação cuja função é armazenar informações que são (ou serão) manipuladas.
Máquinas Virtuais Professoras: Márcia Jani / Kathia.
DISCIPLINA SISTEMAS DE INFORMAÇÃO HOTELEIRA Prof. Eliane Primeiro semestre de 2011.
São memórias absolutamente indispensáveis ao funcionamento do sistema informático (ROM e RAM) Memória ROM Memória RAM Memórias Principais.
MÓDULOS DE REGISTRO DE ABASTECIMENTO DE VEÍCULOS INTEGRADOS PARA ÓRGÃOS PÚBLICOS Gabriel Vieira Orientador: Prof. Jacques Robert Heckmann.
Prof. Arthur Albertin.
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
Software (e direitos de autor)
Sistemas Operacionais de Rede
AKKA.
CÁLCULO NUMÉRICO Aula 2 – Introdução ao Programa de Computação Numérica (PCN) e Teoria dos Erros.
CHIPSET O que é um chipset? Quais suas funções?
Soluções Básicas em informática
Sua função é a interconexão entre componentes
Curso de Graduação em Administração Informática Básica - Unidade 1
/07/ Memórias RAM Memória ROM Memoria Cache Interfaces
Aula 05 Pilha TCP/IP.
Sistema Automatizado de Hospedagem de Sites
Evolução dos Sistemas de Comunicação de Dados
Disciplina: Manutenção e organização de Computadores
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO PROF. BRUNO DE CASTRO H. SILVA
Tema 5 – Arquitetura de Banco de Dados
SISTEMAS OPERACIONAIS
INTRODUÇÃO A COMPUTAÇÃO
Funções de Conference Brige
Funções de um computador
Arquitetura de Computadores
1 Introdução aos COMPUTADORES Profª Alda Vagarinho.
SCC0265 – Sistemas Interativos Web
Mosaico Digital: monitor interativo de realidade aumentada
INTRODUÇÃO À COMPUTAÇÃO PARALELA
Diógenes Pereira Jr. Igor Thiago Marques Mendonça
Representação dos dados
AULA 3.
Tecnologias da Informação e Comunicação
Descrição e Análise dos cargos
Programação.
Caracterização do equipamento
Boot Post CMOS,BIOS Setup Virtualização Sistema Operacional
Trabalho realizado: Inês Pereira nº11 Ernesto Cunha nº18
INSTRUMENTAÇÃO VIRTUAL
Investimento com retorno Tecnologia com simplicidade
ESCOLA ESTADUAL TÉCNICO INDUSTRIAL PROFESSOR FONTES
Desenho Técnico Moderno
Sistemas Operacionais I
Software.
Laboratório de Lógica Configurável T8LLC
Curso Técnico em Informática
Sistemas Operacionais
Sistemas Distribuídos
Computação e Informática
Informática Básica Introdução a informática básica FUNCIONAMENTO
Diferenças de Sistemas Operativos (MacOS, Windows e Linux)
Prof. Wilian Soares Lacerda DCC - UFLA
MEMORIAS RAUL DIAZ ROSAS.
Introdução à Lógica Programável
Trabalho de Redes Industriais
RISC vs. CISC Introdução
Prof. Fábio Rafael Segundo
Laboratório de Lógica Configurável T8LLC
SISTEMAS DISTRIBUIDOS
GUI Em informática, interface gráfica (abreviadamente, a sigla GUI, do inglês Graphical User Interface) é um mecanismo de interacção entre utilizador e.
SISTEMAS DISTRIBUIDOS
Introdução às Tecnologias da Informação e Comunicação
O mundo além do processamento de jogos.
SISTEMAS DISTRIBUIDOS
Transcrição da apresentação:

Introdução

O que é um Sistema Operativo? O Sistema Operativo (SO) pode ser definido como um conjunto de programas que permitem uma interação simplificada entre o utilizador e a máquina Aplicações processador de texto, web browser, compiladores, bases de dados, jogos Utilizador Sistema Operativo Hardware CPU, memória, dispositivos I/O

Como se utiliza o SO? Interface Operacional Adaptado de slides das aulas de SO do IST Interface Operacional Interface Programática (Biblioteca de funções do sistema)

SO como Gestor de Recursos Adaptado de slides das aulas de SO do IST O Sistema Operativo pode ser visto como um Gestor de recursos Efetua a gestão dos diversos componentes da arquitetura de um computador, impondo ordem na atribuição de recursos aos programas. Tira máximo partido dos recursos disponíveis Tempo de CPU, memória, disco, periféricos, etc. Aspetos da máquina física (interrupções, memória, dispositivos, ...) dificilmente poderiam ser controlados pelas aplicações diretamente Permite abstrair os recursos físicos, oferecendo às aplicações um conjunto de recursos lógicos. Recursos lógicos Recursos físicos virtualizados Processos CPU Espaços de endereçamento virtuais Memória RAM, unidade de gestão de memória Ficheiros Dispositivos de memória de massa Periféricos virtuais Periféricos físicos Canais de comunicação Redes de dados Utilizadores Utilizadores humanos

SO como Máquina Virtual Adaptado de slides das aulas de SO do IST O SO também pode ser visto como uma Máquina Virtual Dá ao utilizador a ilusão de dispor de uma máquina muito mais fácil de utilizar e programar do que o hardware. Cria uma máquina virtual sobre a máquina física, que oferece os recursos lógicos básicos para o desenvolvimento de aplicações, Independente do hardware onde executa Aplicações O SO como interface ou Máquina Virtual - Virtualiza o computador: permite por ex. autenticar. - disponibiliza uma biblioteca de system calls: pode ser invocada por programas e interagir directamente com os obj geridos pelo SO Máquina virtual Sistema Operativo Máquina física Hardware

O SO é mesmo necessário? Adaptado de slides das aulas de SO do IST Poderíamos fazer programas para executar diretamente sobre o hardware, mas ... Desvantagens O esforço seria muito grande Muitas funções seriam repetidas Cada aplicação poderia otimizar o seu desempenho, mas globalmente a máquina seria subaproveitada Não seria possível políticas globais de segurança, tolerância a falhas, otimização

Para que serve o SO? Adaptado de slides das aulas de SO do IST Transformar o hardware numa máquina simples de usar Obter o máximo rendimento do Hardware os computadores são dispositivos dispendiosos cedo se viu que poderiam fazer várias coisas em simultâneo Garantir a segurança e a fiabilidade das aplicações Garantir que as aplicações não são afetadas pela mudança de hardware e configuração

Evolução Histórica

História: 1ª Geração (1945-55) Inexistência do conceito de sistema operativo Computadores a válvulas, grandes e lentos A programação das máquinas era feita através da ligação de “plugboards” (placas com componentes eléctricos) ENIAC (1946) - Desenvolvido pelo exército norte-americano para cálculo balístico ENIAC - was the first electronic general-purpose computer. It was Turing-complete, digital, and capable of being reprogrammed to solve a full range of computing problems. Por esta altura apareceram os programas MONITOR. Programas residentes, capazes de manipular processos multipassos Only a single group of people designed and used it: Protection and virtualization are not needed! How to Allocate and Reclaim computation time? Sign-up sheet on the wall!

História: 2ª Geração (1955-65) Introdução do sistema de processamento por lotes (batch systems) Input, processamento e output feitos em máquinas diferentes para rentabilizar o tempo de CPU Computadores a transístores Primeiros sistemas operativos: FMS (Fortran Monitor System) IBSYS (Bell Labs) Exemplo: IBM 1401 e seus periféricos

História: 3ª Geração (1965-80) Multi-programação e Multi-utilização Multi-programação (multiprogramming): Capacidade de executar vários programas simultaneamente Multi-utilização (timesharing): Capacidade de vários utilizadores poderem utilizar simultaneamente o mesmo computador O mecanismo das interrupções permite multiplexar o processador entre várias atividades concorrentes. Computadores com CIs Primeiras linhas de computadores comerciais Aparecimento dos mini-computadores CI com 3 transístors "vários programas simultaneamente" neste caso significa que enquanto um dos programas estava parado à espera de alguma coisa, outro poderia estar a executar. 3 trabalhos em memória

História: 3ª Geração (1965-80) Sistemas Operativos: OS/360, CTSS, MULTICS, UNIX (System V e BSD) Text IBM System/360 DEC PDP-11

História: 4ª Geração (1980-) Computadores pessoais LSI e Micro-computadores Memória virtual Interfaces gráficas (GUI) Sistemas em rede Sistemas distribuídos Sistemas Operativos: VMS, Xenix, Minix, Solaris, Linux, MAC-OS, CP/M, DOS, Windows, etc...

História: 1980-presente

História mais recente portáteis telefones tablets carros máquinas fotográficas (firmware) TV eletrodomésticos

Proveniência dos atuais SO para PC adaptado de http://ed-informatics.org/healthcare-it/ Windows 10

O que se pretende de um SO? Há vários pontos de vista ... Os utilizadores querem conveniência, facilidade de utilização, bom desempenho e não se importam com os recursos utilizados Computadores partilhados, tais como mainframes ou microcomputadores têm de manter os utilizadores satisfeitos Computadores de bolso têm menos recursos e são otimizados para usabilidade e vida da bateria Computadores, tais como sistemas embebidos em dispositivos e automóveis, têm pouco ou nenhum interface com o utilizador

Tipos de Sistemas Operativos Mono-programação vs. Multi-programação Mono-programação Cada programa monopoliza o processador até terminar Spectrum, MS-DOS, Palm OS Multi-programação Capacidade de correr vários programas simultaneamente (em concorrência) Unix, Linux, Windows

Tipos de Sistemas Operativos Mono-utilizador vs. multi-utilizador Mono-utilizador O CPU só pode estar dedicado de forma interativa a um conjunto de processos do mesmo utilizador MS-DOS, Palm OS, Kindle, Kobo Multi-utilizador O tempo de processamento do CPU de um computador pode ser partilhado por mais do que um utilizador de forma interativa. Unix, Linux, Windows, MacOS, ...

Tipos de Sistemas Operativos Dedicado vs. uso geral Dedicado Sistema Operativo projetado para aplicações específicas Exemplos: Controlo de uma linha de montagem - SOs em tempo real Gestão de transações numa companhia aérea - SOs para Mainframes Interface para um telemóvel – SO embebido (embedded) Uso geral Projetados para uma fácil utilização Permitem a execução de uma grande variedade de programas Reconhecem uma grande diversidade de periféricos

Tipos de Sistemas Operativos Adaptado de slides das aulas de SO do IST Proprietários vs. abertos Proprietários: todos os sistemas dos anos 1970.... Restrições na sua utilização e cópia Desenvolvidos pelo fabricante do hardware Código não divulgado Windows, Abertos: com génese no unix Divulgação do código fonte Interfaces standard de programação Potencia o desenvolvimento de Software e Hardware por terceiros Linux: open source, free software, com licença GPL

Tipos de Sistemas Operativos Adaptado de slides das aulas de SO do IST SOs tempo virtual vs. tempo real Tempo virtual O tempo de execução dos programas não tem relação com o tempo exterior ao computador Sistemas mais utilizados na maioria dos computadores Exemplos: Windows, MacOS, Linux Tempo real Utilizados para controlo de processos nos quais o tempo é o fator mais importante. Dá resposta a um acontecimento num intervalo determinado, caso contrário não cumpre a especificação e falha. Inicialmente usados em processos industriais e hoje também para jogos, sistemas de controlo em automóveis, aviões, etc. Oferta extensa de SOs de tempo real, muitos para sistemas embebidos

Tipos de Sistemas Operativos SOs de sistemas embebidos Controlo de electrodomésticos e pequenos dispositivos que não se olham como computadores (e.g., televisão, carro, telefones antigos) Software integrado com o hardware Desenvolvido para um conjunto de operações e não oferece interface para desenvolver aplicações Exemplos: Windows CE, Kindle, Kobo SOs para computadores de bolso Usados em tablets, smartphones, etc. Hoje em dia muito sofisticados e lidam com vários CPU, muita memória e vários sensores: GPS, câmeras,... Exemplos: Android, iOS, Windows mobile

Conceitos e Revisões MMU bus

Modo utilizador e modo núcleo Processador (CPU) Elemento ativo do sistema que executa processos Os processadores mais recentes suportam Modo utilizador (User Mode / protected mode) Disponível um subconjunto das instruções do CPU. É neste modo que correm as aplicações Modo núcleo (Kernel Mode / supervisor mode) Modo privilegiado do processador, para o qual todas as instruções estão disponíveis. Só o Sistema Operativo é que tem acesso a este modo Modern CPUs support multiple modes of operation, at least two modes: protected mode and supervisor mode. The supervisor mode is used by the operating system's kernel for low level tasks that need unrestricted access to hardware, such as controlling how memory is written and erased, and communication with devices like graphics cards. Protected mode is used for almost everything else. Applications operate within protected mode, and can only use hardware by communicating with the kernel, which controls everything in supervisor mode. In practice, system calls take time and can hurt the performance of a computing system, so it is not uncommon for system designers to allow some time-critical software (especially device drivers) to run with full kernel privileges.

Funções do Sistema Operativo Gestão de processos Gestão de memória Input/output com periféricos Sistema de ficheiros Comunicação pela rede Autenticação e segurança ...

Processos Um processo é basicamente um programa em execução Num sistema multi-programado, vários processos podem estar a correr simultaneamente Contudo, quando existe um só processador, apenas um processo pode utilizá-lo em cada instante temporal Os processos concorrem pelo processador e cooperam entre si para realizar tarefas mais complexas

Memória Memória e a sua hierarquia típica

Gestão de memória Gestão de memória Divisão estruturada da memória de modo a ser possível o carregamento de diversos programas na memória principal Colocação e Proteção Existência de mecanismos que permitam o crescimento da memória de dados de um programa Reserva de memória Gestão do espaço de endereçamento de modo a que se possa ter uma capacidade de memória superior à da memória principal (a RAM) – Memória Virtual

Gestão de memória Sistemas mono-programados e multi-programados limite Base

Input/output com periféricos Periféricos e I/O (input/output) Gestão das operações de escrita e leitura nos diversos periféricos Teclado, impressora, terminais de texto e gráficos, discos, etc. Tratamento de interrupções e de erros Device drivers Programas para gestão de periféricos específicos

Sistema de ficheiros Sistemas de ficheiros Gestão da informação não-volátil armazenada em memória secundária (discos, tapes) Providenciar um nível de abstração para que o utilizador não se preocupe com os detalhes da utilização de discos, disquetes, etc. Chamadas ao sistema: Criação, remoção, cópia, escrita e leitura de ficheiros

Sistema de ficheiros Estrutura hierárquica (em árvore) - directórios DOS, WINDOWS – c:\Trabalhos\SO\trabf.doc UNIX - /Trabalhos/SO/trabf.doc

SO e aplicações, como coexistem? Problema Aplicação A call open Núcleo open ()

SO e aplicações, como coexistem? É possível devido à existência de 2 modos de execução Instruções privilegiadas Tradução de memória Exceções Interrupções Chamadas ao Sistema Base da Segurança do sistema Aplicação A Núcleo call open open () open_syscall Tabela de interrupções espaço de endereçamento do processo espaço de endereçamento do núcleo exceção

Razões para passar ao modo núcleo Exceções causadas pelo processo acesso a endereço inválido, divisão por zero, etc... Interrupções originadas em periféricos ... de temporização Chamadas ao Sistema Exceção Chamada ao sistema Formata parâmetros Verifica se endereços são válidos Guarda parâmetros na pilha e em registos modo núcleo modo utilizador Retira parâmetros de saída Retorno da chamada do sistema RTI

Organização do Sistema Operativo

SO: como pode estar organizado? Estrutura Monolítica Um único sistema, internamente organizado em módulos Qualquer função pode comunicar com qualquer uma das outras Estruturas de dados globais Como dar suporte à evolução e em especial a novos periféricos ? Solução: gestores de dispositivos (device drivers) problemas? Ao longo da história várias estruturas foram tentadas para a organização do Núcleo... ... mesmo nestes núcleos é possível encontrarmos alguma estrutura Aplicações Aplicações Aplicações Biblioteca de chamadas sistema barreira de proteção Núcleo do SO Gestores de periféricos

SO: como pode estar organizado? Sistema em camadas (Layers) Núcleo estruturado em camadas funcionais Cada camada utiliza serviços de camadas que lhe são interiores Cada camada é uma máquina virtual com uma interface bem definida Torna-se fácil modificar o código de uma camada Maior segurança e robustez Influenciou sistemas como Intel Desvantagem principal?

SO: como pode estar organizado? Micro-núcleo O SO encontra-se organizado segundo módulos à volta de um micronúcleo (Micro-kernel), geralmente pequeno e que oferece apenas serviços básicos gestão de processos, memória, comunica com o hardware e estabelece a comunicação entre os diversos módulos

Organização do núcleo Modular (Cliente-Servidor) Pode introduzir-se o conceito de processo cliente e de processo servidor que correm em modo utilizador Facilmente adaptável a sistemas distribuídos Estrutura mais estável (teoricamente...) uma pequena variante da ideia do microkernel é distinguir entre processos servidor e processos cliente, que usam os primeiros. Communication between clients and servers is often by message passing. An obvious generalization of this idea is to have the clients and servers run on different computers. Increasingly many systems involve users at their home PCs as clients and large machines elsewhere running as servers. In fact, much of the Web operates this way.

Monolítico vs Micro-kernel System Operating system

Linux Kernel The Linux kernel is a monolithic kernel, supporting true preemptive multitasking (both in user mode and, since the 2.6 series, in kernel mode), virtual memory, shared libraries, demand loading, shared copy-on-write executables (via KSM), memory management, the Internet protocol suite, and threading.

Android System Architecture

Windows NT (=7, 8, 8.1, 10)

Para fazer em casa ... Linux: A Short Documentary (youtube) Para os curiosos, ler o texto: O linux está obsoleto (1992) Extrato de uma discussão entre o Andy Tanenbaum e o Linus Torvalds acerca do design do kernel, software livre, etc. https://root.cern.ch/root/Linus_vs_Tanenbaum.html