SUMRIO:
Componentes dum sistema operativo Servios dum sistema operativo Chamadas ao sistema Software de sistema Estrutura do sistema Mquinas virtuais Desenho e implementao do sistema Criao do sistema
3.1
3.2
Interpretador de Comandos
Interpretador de comandos serve de interface entre o SO e o utilizador. Alguns SO incluem o interpretador de comandos no prprio ncleo (kernel). Outros, tais como o MS-DOS e o Unix, tratam o interpretador de comandos
3.3
Interpretador de Comandos
Visto com um shell
3.4
Interpretador de Comandos
O interpretador de comandos poder funcionar em modo texto
(teclado) ou em modo grfico (GUI=Graphical User Interface com Rato) ou at em modo reconhecimento de voz GUIs Utilizadores manipulam on-screen pictures chamados icons e com menus usando alguma tecnica para indicar seleco e escolha em vez do teclado Existem Interpretadores/GUIS baseados em canetas usados em hand held computers (tais como o Newton e Palm) ou at Ecrs Tcteis (Telemveise iPad).
Um SO pode ofereer multiplos interpretador de comandos Finder: (Primeiro Interpretador Grafico disponivel Comercialmente) Macintosh, Explorer: Windows 95,98,NT, .. DOS: - MS-DOS, PC-DOS-2000, Windows 3.1, Windows 95, 98 .. Bash: (Bourne-again Shell): Linux, BeOS DCL: OpenVMS CLI : CISCO IOS
Operating System Concepts 3.5 Silberschatz, Galvin and Gagne 2002
Scripting
Um shell script uma ficheiro de comandos interpretados em sequencia. Pode ter associado um linguagem especifico command-line shells normalmente oferecem uma infra-estrutura para
linguagens de scripting uma maneira mais eficaz de automatizar tarefas de administrao Permite o rpido desenvolvimento de prottipos de programas Os ficheiros de batch de windows so um exemplo pobre dum script. Por exemplo atravs os scripts um servidor Unix pode ser administrado facilmente remotamente (ssh/telnet). Compare com um servidor de Windows NT que no tem esta capacidade nem fornece ferramentas suficientes para isto !
Windows powershell veio colmatar esta falha http://en.wikipedia.org/wiki/Windows_PowerShell
3.6
Gesto de Processos
Um processo um programa em execuo. Um processo precisa de certos recursos para completar a sua
tarefa, nomeadamente:
responsvel por:
Criao, gesto e eliminao de processos. Suspenso (Suspend) e ressuno (Activate) de processos. Proviso de mecanismos para: Sincronizao de processos Comunicao entre processos
3.7
em memria. (loader)
A utilizao eficiente do processador e da memria requer o
quem.
Deciso sobre os processos a carregar em memria face ao
3.8
demasiado pequena para armazenar todos os dados e programas duma forma permanente, o computador tem de fornecer memria secundria (secondary storage) para salvaguardar (backup) a memria principal. A maior parte dos computadores modernos usam discos como os principais meios de armazenamento secundrio de programas e dados.
O sistema operativo responsvel pelas seguintes
3.9
Gesto de Ficheiros
Ficheiro: unidade lgica de armazenamento. Um ficheiro uma coleco de informao inter-
relacionada e definida por algum. Normalmente, os ficheiros representam programas (em cdigo fonte ou em cdigo objecto) e dados. Tipos de ficheiros:
ficheiros directorias
Criao e eliminao de ficheiros. Criao e eliminao de directorias. Manipulao de ficheiros e directorias. Mapeamento ficheiros em memria secundria. Armazenamento de ficheiros em memria secundria.
3.10
Sistema de ficheiros
Disco Uma interface geral para device-drivers Device-drivers para dispositivos especficos de hardware
A virtualizao do sistema em UNIX cada dispositivo de I/O
um ficheiro !
3.11
Sistema de Proteco
Proteco um mecanismo para controlar o acesso ao
sistema e aos seus recursos face a processos e utilizadores. O sistema deve ter mecanismos para definir / alterar / gerir o controlo de acesso a cada recurso do sistema. O mecanismo de proteco tem de distinguir entre utilizao autorizada e no-autorizada. O sistema operativo deve garantir uma utilizao autorizada de ficheiros, memria, CPU, entre outros recursos do sistema, nomeadamente: acesso limitado ao espao de endereamento dum processo autorizao para envio de sinais a processos operaes de E/S executadas exclusivamente pelo sistema
3.12
no partilham memria nem relgio. Cada processador tem a sua prpria memria local. Os processadores no sistema esto ligados atravs duma rede de comunicaes. A comunicao tem lugar atravs da utilizao dum protocolo. O sistema operativo moderno disponibiliza normalmente servios / primitivas para comunicao com outros computadores. Nalguns sistemas operativos, o acesso rede de dados vista como uma generalizao do acesso a ficheiros. Portanto, existe tambm um device-driver de rede que oculta os detalhes de funcionamento da rede.
3.13
Para isso, o SO. oferece ao programador um conjunto de servios que visam facilitar a programao, nomeadamente:
Execuo de programas capacidade do sistema para carregar um programa em memria e execut-lo. Operaes I/O dado que os programas do utilizador no podem executar operaes I/O directamente, o sistema operativo tem de fornecer meios por forma a faz-lo. Manipulao dos sistema de ficheiros capacidade dum programa para ler, escrever, criar e eliminar ficheiros. Comunicaes troca de informao entre processos em execuo no mesmo computador ou em computadores diferentes ligados em rede. Comunicao implementada via shared memory ou message passing. Deteco de erros garantia da computao correcta atravs da deteco de erros na CPU e hardware de memria, em dispositivos I/O, ou em programas do utilizador.
3.14 Silberschatz, Galvin and Gagne 2002
Reserva de recursos reserva de recursos para vrios utilizadores ou processos em execuo simultnea. Inventrio regista a quantidade e os tipos de recursos usados pelos utilizadores. O inventrio importante para fins estatsticos, segurana, despesas de utilizao de recursos, etc. Proteco assegurar que o acesso a todos os recursos do sistema controlado.
3.15
Chamadas ao Sistema
Chamadas ao sistema fornecem uma interface entre um processo e
o sistema operativo.
Geralmente disponveis como instrues em linguagem assembly. Linguagens (e.g., C, C++) podem substituir a linguagem assembly para
vulgares chamadas a funes. All Unix variants provide a well defined limited number of entry points into the kernel called system calls. Unix version 7 about 50, Unix 4.3+BSD about 110 and Unix SVR4 about 120
For example printf might invoke the write system call to perform output but the function strcpy and atoi dont involve the OS at all Page 20 W.R.Stevens Advanced Prog. In the Unix Env. Execute process explorer
Operating System Concepts 3.16 Silberschatz, Galvin and Gagne 2002
<stdio.h>, que faz uma chamada funo de baixo nvel de sistema write()
3.17
Abstraco do Disco
Programador de Aplicao Programador de SO
int fprintf() { ... write() }
Chamadas ao Sistema
H trs mtodos gerais de passagem de parmetros entre um
retira-os da stack.
System Calls
Operating System Concepts 3.20 Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc.Silberschatz, Galvin and Gagne 2002 All rights reserved. 0-13-6006639
The 11 steps in making the system call read(fd, buffer, nbytes). (tannenbaum)
10
3.21
Controlo de processos
As principais chamadas ao sistema relacionadas com a gesto de processos so:
end, abort load, execute create, terminate get/set process attributes wait for time / event wait for event signal event allocate/free memory
Malloc-See Stevens Page 21
MS-DOS (1 processo)
Operating System Concepts
11
Manipulao de ficheiros
As principais chamadas ao sistema relacionadas com a manipulao de ficheiros so:
create/delete file open, close read, write, reposition get/set file attributes
3.23
Manipulao de dispositivos
As principais chamadas ao sistema relacionadas com a manipulao de dispositivos so: request/release device read, write, reposition get/set device attributes attach/detach device
3.24
12
Manuteno de informao
As principais chamadas ao sistema relacionadas com a manuteno de dispositivos so:
get/set time or date get/set system data get/set process, file or device attributes
Comunicao
As principais chamadas ao sistema relacionadas com a comunicao so:
create, delete communication connection send, receive messages transfer status information attach, detach remote devices
Operating System Concepts 3.25 Silberschatz, Galvin and Gagne 2002
Modelos de Comunicao
H dois modelos de comunicao entre processos: passagem de mensagens memria partilhada.
Message Passing
Operating System Concepts 3.26
Shared Memory
Silberschatz, Galvin and Gagne 2002
13
Software de Sistema
H uma hierarquia lgica num computador:
SOFT. APLICAO SOFT. SISTEMA SISTEMA OPERATIVO HARDWARE
Objectivos de software de sistema: ambiente para o desenvolvimento e execuo de programas interface para as chamadas ao sistema
H 6 categorias de software de sistema: Manipulao de ficheiros Informao de estado Edio de ficheiros Suporte programao Carregamento e execuo de programas Comunicaes
(ex.: cp, mkdir) (ex.: ps, df) (ex.: pico, vi, joe) (ex.: cc, pc) (ex.: ld, csh) (ex.: telnet, mail)
3.27
normalmente desenhado e construdo por mdulos. No pois um sistema monoltico. Portanto, temos de definir para cada mdulo, a sua funo, as suas entradas e as suas sadas.
14
do hardware; o UNIX original tinha uma estruturao limitada. O sistema UNIX consiste em duas partes separadas:
Interface de chamadas ao sistema Ncleo (kernel) Consiste em tudo o que fica
abaixo da interface de chamadas ao sistema e acima do hardware. Fornece o sistema de ficheiros, escalonamento da CPU, gesto de memria, e outras funes do sistema operativo.
3.29
dividido em camadas (layers). A camada inferior (layer 0) o hardware; a camada de topo (layer N) a interface com o utilizador. Com modularidade, as camadas so seleccionadas tal que cada uma usa funes (operaes) e servios de camadas estritamente abaixo.
Um sistema operativo por camadas Fim de Captulo
Silberschatz, Galvin and Gagne 2002
3.30
15
3.31
3.32
16
Virtual Machines
conclusion. It treats hardware and the operating system kernel as though they were all hardware. A virtual machine provides an interface identical to the underlying bare hardware. The operating system creates the illusion of multiple processes, each executing on its own processor with its own (virtual) memory.
3.33
System Models
Non-virtual Machine
Virtual Machine
3.34
17
protection of system resources since each virtual machine is isolated from all other virtual machines. This isolation, however, permits no direct sharing of resources. A virtual-machine system is a perfect vehicle for operating-systems research and development. System development is done on the virtual machine, instead of on a physical machine and so does not disrupt normal system operation. The virtual machine concept is difficult to implement due to the effort required to provide an exact duplicate to the underlying machine.
3.35
platform-neutral bytecodes executed by a Java Virtual Machine (JVM). JVM consists of - class loader - class verifier - runtime interpreter Just-In-Time (JIT) compilers increase performance
3.36
18
Others
http://www.slideshare.net/wx672/os-5463020
3.38
19