Nicholas Carreira Lancastre
1 Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Dra. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille, da Profa. Dra. Luciana A. F. Martimiano e nas transparências fornecidas no site de compra do livro Sistemas Operacionais Modernos
2 Aula de Hoje (conteúdo detalhado) 1 Estruturas de Sos 2. Componentes Básicos (CPU, memória,..) 3. BIOS 4. Arquitetura do Sistema 5. Processos 2
3 Componente básicos Componentes básicos de hardware: CPU; Memória; Controladoras; Dispositivos de Entrada/Saída e Unidades de armazenamento. 3
4 CPU (Central Processing Unit) É o cérebro do computador responsável por executar instruções; CPU busca instruções na memória, decodifica essas instruções e as executa até sua finalização; Durante a execução de instruções, a CPU utiliza se de registradores para armazenar variáveis e resultados temporários; Instruções são executadas por ciclos de relógio; 4
5 CPU registradores Registradores: Contador de programa (program counter PC): contém o endereço de memória da próxima instrução a ser lida e executada; Ponteiro da pilha (stack pointer SP): aponta para o topo da pilha corrente na memória (estrutura para cada procedimento); Informações que não são mantidas nos registradores: Parâmetros de entrada; Variáveis locais e temporárias; Registrador de instrução (instruction register IR) = instrução que está sendo atualmente executada; PSW (program status word): bits de controle; 5
6 CPU modos de execução As CPUs mais modernas, ao contrário das mais antigas, executam mais de uma instrução por ciclo de relógio: Pipeline; Superscalar; 6
7 CPU modos de execução Pipeline Superscalar ou Superpipeline 7
8 Memória Registradores Cache Rápidos: 1nseg. Componentes internos à CPU Capacidade: 32 ou 64 bits Controlados por software RAM Disco Rígido Fita Magnética/Disco Ótico 8
9 Memória Registradores Cache RAM Rápida: 2nseg Capacidade: 8 ou 16 kb; 128, 256, 512 Kb, 1Mb ou 2Mb Controlada por hardware Disco Rígido Fita Magnética/Disco Ótico 9
10 Memória Registradores Cache Random Access Memory Rápida: 10nseg Capacidade: até gigabytes Volátil RAM Disco Rígido Fita Magnética/Disco Ótico 10
11 Memória Registradores Cache Mais lento: 10mseg Capacidade: 7 200Gb Velocidades: 5400, 7200 ou rpm RAM Disco Rígido Fita Magnética/Disco Ótico 11
12 Memória Registradores Cache Backup Capacidade: Gb (fita); 640Mb 4Gb (disco ótico) RAM Disco Rígido Fita Magnética/Disco Ótico 12
13 Memória Velocidade de Acesso Registradores Cache RAM Disco Rígido Fita Magnética/Disco Ótico Capacidade de armazenamento 13
14 Memória ROM (Read Only Memory): Programável; Somente leitura; Rápida (mais lenta que a RAM) e barata; Não volátil; Inicializa os circuitos da placa mãe; Programas armazenados na ROM da placa mãe: BIOS: configurações de hardware; POST (Power on Self Test): auto teste; Setup: altera configurações na CMOS; 14
15 Memória CMOS (Complementary Metal Oxide Semiconductor) É um tipo de memória utilizada pelo BIOS Volátil; Utilizada para gravar hora/data correntes Possui uma bateria; Também grava parâmetros de configuração do sistema, como por exemplo qual é o disco de boot. 15
16 Dispositivos de E/S Interagem com o sistema operacional; Controladoras Chip (conjunto de chips) conectado à placa mãe que fisicamente controla os dispositivos físicos aceitando comandos do SO; Controle é feito por meio de uma interface: driver Driver software Controladora hardware 16
17 Dispositivos de E/S Sistema Operacional manipula as controladoras (parte eletrônica dos dispositivos) Comandos especiais são carregados nos registradores das controladoras; Sinais elétricos acionam os dispositivos; 17
18 Dispositivos de E/S Driver software Diferentes controladoras e diferentes sistemas operacionais utilizam diferentes drivers; Rodam em modo kernel; Podem ser carregados dinamicamente depende do sistema operacional e do dispositivo físico; 18
19 Dispositivos de E/S A cada dispositivo físico são atribuídos: Uma interrupção; Um endereço (em hexadecimal) de E/S; Atualmente, a interrupção e o endereço são atribuídos automaticamente pelo sistema operacional; 19
20 Aula de Hoje (conteúdo detalhado) 1. BIOS 2. Arquitetura do Sistema 3. Conceitos Básicos - Processos 4. Conceitos Básicos - Chamadas de Sistemas 20
21 BIOS BIOS (Basic Input Output System) É um programa Presente na placa mãe; Seqüência Básica: Checa memória RAM; Checa teclado, monitor, mouse; Checa barramentos para detectar outros dispositivos conectados; Checa disco de boot na CMOS lista de boot; Lê o MBR, primeiro setor de boot na memória e o executa. Esse setor normalmente contém um programa que examina a tabela de partições para saber qual partição está ativa; SO é iniciado e carrega drivers. 21
22 Revisitando Sistemas de Computação... Sistemas de computadores modernos são compostos por diversos dispositivos: Processadores; Memória; Controladoras; Monitor; Teclado; Mouse; Impressoras; Etc... Alta Complexidade 22
23 Sistemas de Computação e SOs Com tantos dispositivos, surge a necessidade de gerenciamento e manipulação desses diversos dispositivos; Sistema Operacional: Software responsável por gerenciar dispositivos que compõem um sistema computacional e realizar a interação entre o usuário e esses dispositivos; 23
24 Aula de Hoje (conteúdo detalhado) 1. BIOS 2. Arquitetura do Sistema 3. Conceitos Básicos - Processos 4. Conceitos Básicos - Chamadas de Sistemas 24
25 Arquitetura do Sistema Sistemas de Banco Compiladores e Linkers Navegadores Web Editores SISTEMA OPERACIONAL Reserva de Passagens Interpretadores de Comando APLICATIVOS PROGRAMAS DO SISTEMA Linguagem de Máquina Micro Arquitetura HARDWARE Dispositivos Físicos 25
26 Arquitetura do Sistema Hardware: Diversas camadas Dispositivos físicos: Circuitos (chips) Cabos Transistores Capacitores Memória Disco rígido etc... 26
27 Arquitetura do Sistema Micro Arquitetura: é a arquitetura construída para implementar o conjunto de instruções (pipeline, superescalar, etc.). CPU processamento; ULA (Unidade Lógica Aritmética) operações aritméticas. Essas operações podem ser controladas por software (micro programas) ou por circuitos de hardware. 27
28 Arquitetura do Sistema Linguagem de Máquina: conjunto de instruções interpretadas pelos dispositivos que compõem a micro arquitetura; Possui entre 50 e 300 instruções; Realiza operações por meio de registradores; Baixo nível de abstração; Ex.: Assembly (montador Assembler). 28
29 Aula de Hoje (conteúdo detalhado) 1. BIOS 2. Arquitetura do Sistema 3. Conceitos Básicos - Processos 4. Conceitos Básicos - Chamadas de Sistemas 29
30 Conceitos Básicos Processos Processo: chave do SO; Caracterizado por programas em execução; Cada processo possui: Programa (instruções que serão executadas); Um espaço de endereço de memória (max e min); Contextos de hardware: informações de registradores; Contextos de software: atributos; O Sistema Operacional gerencia todos os processos bloco de controle de processo; 30
31 Conceitos Básicos Processos Contextos n o m e P I D o w n e r ( U I D ) r e g i s t r a d o r e s g e r a i s p r i o r i d a d e d e e x e c u ç ã o r e g i s t r a d o r P C d a t a / h o r a d e c r i a ç ã o t e m p o d e p r o c e s s a d o r C o n t e x t o d e S o f t w a r e C o n t e x t o d e H a r d w a r e r e g i s t r a d o r S P q u o t a s p r i v i l é g i o s P r o g r a m a E s p a ç o d e E n d e r e ç a m e n t o r e g i s t r a d o r d e s t a t u s e n d e r e ç o s d e m e m ó r i a p r i n c i p a l a l o c a d o s 31
32 Conceitos Básicos Processos BCP p o n t e i r o s E s t a d o d o p r o c e s s o N o m e d o p r o c e s s o P r i o r i d a d e d o p r o c e s s o R e g i s t r a d o r e s Bloco de Controle de Processo: Contém informações sobre o estado do processo L i m i t e s d e m e m ó r i a L i s t a d e a r q u i v o s a b e r t o s. 32
33 Conceitos Básicos Processos Basicamente, um processo possui três segmentos: Texto: código do(s) programa(s); Dados: as variáveis; Pilha de Execução: controla a execução do processo; Um processo possui três estados básicos: executando, bloqueado e pronto; 33
34 Conceitos Básicos Processos Um processo pode resultar na execução de outros processos, chamados de processos filhos: Características para a hierarquia de processos: Comunicação (Interação) e Sincronização; Segurança e proteção; Uma árvore de no máximo três níveis; Escalonadores de processos processo que escolhe qual será o próximo processo a ser executado; Diversas técnicas/algoritmos para escalonamento de processos; Comunicação e sincronismo entre processos; 34
35 Aula de Hoje (conteúdo detalhado) 1. Conceitos Básicos - Chamadas de Sistemas 2. Processos 3. Criando Processos 4. Finalizando Processos 5. Estados do Processo 6. Implementação de Processos 7. Escalonamento de Processo 35
36 Conceitos Básicos Chamadas de Sistema Modos de Acesso: Modo usuário; Modo kernel ou Supervisor ou Núcleo; São determinados por um conjunto de bits localizados no registrador de status do processador: PSW (program status word); Por meio desse registrador, o hardware verifica se a instrução pode ou não ser executada pela aplicação; Protege o próprio kernel do Sistema Operacional na RAM contra acessos indevidos; 36
37 Conceitos Básicos Chamadas de Sistema Modo usuário: Aplicações não têm acesso direto aos recursos da máquina, ou seja, ao hardware; Quando o processador trabalha no modo usuário, a aplicação só pode executar instruções sem privilégios, com um acesso reduzido de instruções; Por que? Para garantir a segurança e a integridade do sistema; 37
38 Conceitos Básicos Chamadas de Sistema Modo Kernel: Aplicações têm acesso direto aos recursos da máquina, ou seja, ao hardware; Operações com privilégios; Quando o processador trabalha no modo kernel, a aplicação tem acesso ao conjunto total de instruções; Apenas o SO tem acesso às instruções privilegiadas; 38
39 Conceitos Básicos Chamadas de Sistema Se uma aplicação precisa realizar alguma instrução privilegiada, ela realiza uma chamada de sistema, que altera do modo usuário para o modo kernel; Chamadas de sistemas são a porta de entrada para o modo Kernel; São a interface entre os programas do usuário no modo usuário e o Sistema Operacional no modo kernel; As chamadas se diferem de SO para SO, no entanto, os conceitos relacionados às chamadas são similares independentemente do SO; 39
40 Conceitos Básicos Chamadas de Sistema TRAP: instrução que permite o acesso ao modo kernel; Interrupção de software; exceções; Overflows Interrupção: é normalmente iniciada por dispositivos de I/O. 40
41 Conceitos Básicos Chamadas de Sistema Exemplo de chamadas de sistema Instrução do UNIX: count = read(fd,buffer,nbytes); Bytes a serem lidos O programa sempre deve checar o retorno da chamada de sistema para saber se algum erro ocorreu!!! 41
42 Conceitos Básicos Chamadas de Sistema Outros exemplos de chamadas de sistema: Chamadas para gerenciamento de processos: Fork (CreateProcess WIN32) cria um processo; Chamadas para gerenciamento de diretórios: Mount monta um diretório; Chamadas para gerenciamento de arquivos: Close (CloseHandle WIN32) fechar um arquivo; Outros tipos de chamadas: Chmod: modifica permissões; 42
43 Interface das Chamadas de Sistema (Wrappers) Interface de programação fornecida pelo SO Geralmente escrita em linguagem de alto nível (C, C++ ou Java) Normalmente as aplicações utilizam uma Application Program Interface (API) Interface (API) que encapsula o acesso directo aos system calls As APIs mais utilizadas são a Win32 API para Windows, a POSIX API para praticamente todas as versões de UNIX, e a Java API para a Java Virtual Machine (JVM). Motivos para utilizar APIs em vez dos system calls diretamente Portabilidade independência da plataforma Esconder complexidade inerente aos system calls Acréscimo de funcionalidades que optimizam o desempenho 43
44 API System Call OS Relationship 44
45 Portabilidade Usando Wrappers aplicação do usuário read(fd, buffer, var) Wrapper API read() do Solaris read() do Linux read() do AIX Solaris Linux AIX 45
46 Invocação direta de Syscalls 46
47 Invocação através da Libc Programa em C que invoca a função de biblioteca printf(), que por sua vez chama o system call write() 47
48 Estrutura dos Sistemas Operacionais Cliente/Servidor Adaptável para Sistemas Distribuídos; Máquina Máquina Máquina Máquina Cliente Cliente Servidor Servidor Kernel Kernel Kernel Kernel Rede de Comunicação Mensagem Cliente Servidor 48