Função Fundamental do SO Gestão do Hardware Uma das funções fundamentais do sistema operativo é gerir os recursos do hardware de um modo o mais transparente possível ao utilizador Recursos principais a gerir Processador(es) Memória Discos Outros periféricos Relógio tempo-real Comunicações Page 1 1
Arquitectura do Sistema Operativo As várias funções do sistemas operativo estão organizadas em unidades funcionais A arquitectura do sistema operativo define: As camadas funcionais existentes O modo de interacção entre essas camadas funcionais A arquitectura costuma representar-se gráficamente como um conjunto de camadas, umas mais perto do hardware outras mais perto do utilizador Utilizadores Gestão de Memória Comunicação entre s Gestão de s Gestão Ficheiros E/S Hardware Principais Funções do Sistema Operativo Gestão dos s Comunicação entre s Gestão de Memória Gestão de Entradas e Saídas Gestão dos Ficheiros Interacção com o Utilizador Shell / GUI Segurança e Protecção Contabilização de Uso Detecção e Tratamento de Erros Page 2 2
A Visão do Programador Programador Gestão de Memória Comunicação entre s Gestão de s Gestão Ficheiros E/S O Programador dispõe de uma série de facilidades (system calls) que pode usar nos seus programas, para além das construções da linguagem O uso de funções de baixo-nível permite desenvolver aplicações mais elaboradas que o que é permitido pelas linguagens normais Um sistema operativo trata cada actividade do sistema operativo como uma entidade lógica autónoma, que designamos por processo e que pode ser, por exemplo: Programa de um utilizador quando executa Função do sistema que efectua uma tarefa bem definida (por exemplo, acesso a uma impressora) Entidade activa que o sistema operativo gere para promover a execução de um conjunto de acções As acções a executar e os objectos a manipular (dados, ficheiros, periféricos,...) são descritos pelo programa Page 3 3
e Programa Um Programa é uma sequência de instruções que identifica as operações que pretendemos que o computador execute é uma entidade estática Um programa quando está a ser executado torna-se uma entidade dinâmica e é executado no contexto de um Um processo é composto, além do programa que está a ser executado, por diversos recursos, tais como: espaço de memória usado, registos do CPU, a pilha (stack), periféricos,... s e Processadores Para um processo poder estar activo é preciso que exista uma entidade que executa as instruções do seu programa. Esta entidade é um processador Se há vários processadores então vários processos podem, em princípio, estar em simultâneo a ter as suas instruções executadas Se só há um processador podem-se usar técnicas de partilhar este processador por vários processos para dar uma execução simultânea (aparente) de vários processos Page 4 4
Execução Simultânea (simulada) 1 2 3 (revisitado) Dependendo do modo como um sistema operativo particular define o que é um processo podem-se ter as seguintes situações típicas: Um processo, ao longo da sua existência, pode executar vários programas distintos Um programa pode ser executado, em simultâneo, por vários processos Cada processo tem um espaço de memória reservado em exclusivo para si e distinto do de outros processos Vários processos podem partilhar a mesma memória Vários processos podem partilhar partes da sua memória Page 5 5
Acesso aos Recursos do S.O. As estruturas de dados do núcleo não são directamente acessíveis aos utilizadores Através de funções específicas (system calls) Funções de acesso aos recursos do S.O. fazem parte da interface programável do sistema operativo (API Application Programming Interface) Prog1 Prog2 Biblioteca Biblioteca Núcleo HW Representação dos s Os atributos de um processo devem ser guarda com toda a informação relativa a um processo Um processo que está a ser executado pode ser parado, o seu contexto guardado, e a seguir retomado através da recuperação do seu contexto Alguns componentes que é preciso guardar: Identificação do processo Identificação do utilizador Prioridade do processo Estado do processo Periféricos utilizados Ficheiros em uso Estado da memória Registos do processador Page 6 6
O Bloco de Controlo Cada processo é representado através de uma estrutura de dados o Bloco de Controlo, contendo: Valor dos registos do CPU Contador de programa Stack pointer Flags Estado da Memória Identificação do processo Identificação do Utilizador Prioridade Estado Periféricos em uso Ficheiros abertos Programa em execução Diversos (quotas, directoria de trabalho,...) Bloco de Controlo Valor dos registos do CPU Contador de programa Stack pointer Flags Estado da Memória (zona de programa, de dados, pilha,...) Identificação do processo Identificação do Utilizador Prioridade Estado Periféricos em uso Ficheiros abertos Programa em execução Diversos (quotas, directoria de trabalho,...) O Bloco do é guardado pelo S.O. sob a forma de uma estrutura de dados Page 7 7