Anda di halaman 1dari 19

Captulo 3 Arquitectura dum Sistema Operativo

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

Operating System Concepts

3.1

Silberschatz, Galvin and Gagne 2002

3.1 Componentes dum Sistema Operativo


Enquanto programa, um sistema operativo moderno est estruturado em subsistemas ou mdulos responsveis por: Gesto de processos Gesto de memria principal Gesto de ficheiros Gesto do sistema de I/O Gesto de memria secundria Comunicao em Redes Sistema de proteco Interpretador de comandos

Operating System Concepts

3.2

Silberschatz, Galvin and Gagne 2002

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

como um programa parte


Comandos: Criao e Gesto de processos Gesto do sistema de I/O Gesto de memria principal e secundria Gesto de ficheiros Communicao - Redes Sistema de proteco

Operating System Concepts

3.3

Silberschatz, Galvin and Gagne 2002

Interpretador de Comandos
Visto com um shell

Operating System Concepts

3.4

Silberschatz, Galvin and Gagne 2002

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

Operating System Concepts

3.6

Silberschatz, Galvin and Gagne 2002

Gesto de Processos
Um processo um programa em execuo. Um processo precisa de certos recursos para completar a sua

tarefa, nomeadamente:

tempo de CPU memria ficheiros dispositivos de I/O.

No que respeita a gesto de processos, o sistema operativo

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

Operating System Concepts

3.7

Silberschatz, Galvin and Gagne 2002

Gesto de Memria Principal


A execuo dum programa requer o seu carregamento prvio

em memria. (loader)
A utilizao eficiente do processador e da memria requer o

carregamento de vrios programas executveis em memria.(multiprogramao) H vrios algoritmos de gesto de memria.


O sistema operativo responsvel pelas seguintes

actividades no que respeita gesto de memria:


Registo actualizado das zonas de memria sob utilizao e por

quem.
Deciso sobre os processos a carregar em memria face ao

espao ainda disponvel em mmoria.


Reservar e libertar espao de memria. Defragment

Operating System Concepts

3.8

Silberschatz, Galvin and Gagne 2002

Gesto de Memria Secundria


Visto que a memria principal (primary storage) voltil e

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

actividades no que respeita gesto de memria secundria:


Gesto de espao livre Reserva de espao em disco Escalonamento dos acessos ao disco

Operating System Concepts

3.9

Silberschatz, Galvin and Gagne 2002

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

Um dos objectivos dum sistema operativo

proporcionar o acesso uniforme e transparente informao armazenada.


O sistema operativo responsvel pelas seguintes

actividades no que respeita gesto de ficheiros:


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

Operating System Concepts

Silberschatz, Galvin and Gagne 2002

Gesto do Sistema I/O


Um dos objectivos dum sistema operativo virtualizar o

hardware. A virtualizao do sistema de E/S feita custa de devicedrivers.


O sistema I/O composto pelos seguintes componentes: Um sistema de buffer / caching / spooling simultaneous peripheral operation on-line Operao de

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 !

Operating System Concepts

3.11

Silberschatz, Galvin and Gagne 2002

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

Operating System Concepts

3.12

Silberschatz, Galvin and Gagne 2002

Redes (Sistemas Distribudos)


Um sistema distribudo uma coleco de processadores que

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.

Operating System Concepts

3.13

Silberschatz, Galvin and Gagne 2002

3.2 Servios do Sistema Operativo


Um SO proporciona um ambiente prprio execuo de programas.

Para isso, o SO. oferece ao programador um conjunto de servios que visam facilitar a programao, nomeadamente:

chamadas de API (Application Programming Interface)

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

Operating System Concepts

Servios de Garantia de Eficincia do Sistema Operativo


H funes adicionais do sistema operativo no para ajudar o utilizador, mas para assegurar a eficincia das operaes do sistema:

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.

Operating System Concepts

3.15

Silberschatz, Galvin and Gagne 2002

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

efectuar chamadas directas ao sistema Normalmente as chamadas ao sistema so em tudo idnticas a

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

Standard C Library Example


Um programa em C que invoke a funo printf() da biblioteca padro

<stdio.h>, que faz uma chamada funo de baixo nvel de sistema write()

Operating System Concepts

3.17

Silberschatz, Galvin and Gagne 2002

Abstraco do Disco
Programador de Aplicao Programador de SO
int fprintf() { ... write() }

load(); seek(); out();

void write() { load(); seek() out() }

(a) Controlo Directo


Operating System Concepts

(b) write() abstraction


3.18

(c) fprintf() abstraction


Silberschatz, Galvin and Gagne 2002

Chamadas ao Sistema
H trs mtodos gerais de passagem de parmetros entre um

processo e o sistema operativo:


Passagem de parmetros atravs de registos (registers). Armazenamento de parmetros numa tabela em memria, passando

o endereo da tabela como parmetro num registo.


O processo armazena os parmetros na stack, e o sistema operativo

retira-os da stack.

Passagem de parmetros via tabela


Operating System Concepts 3.19 Silberschatz, Galvin and Gagne 2002

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

Tipos de Chamadas ao Sistema


H 5 classes de chamadas ao sistema: Controlo de processos Manipulao de ficheiros Manipulao de dispositivos Manuteno de informao Comunicao

Operating System Concepts

3.21

Silberschatz, Galvin and Gagne 2002

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

UNIX (vrios processos)


3.22 Silberschatz, Galvin and Gagne 2002

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

Fazer Programa cat putchar/getchar Versus Lowlevel read/write

Operating System Concepts

3.23

Silberschatz, Galvin and Gagne 2002

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

Operating System Concepts

3.24

Silberschatz, Galvin and Gagne 2002

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)

Operating System Concepts

3.27

Silberschatz, Galvin and Gagne 2002

Estrutura dum Sistema Operativo (MS-DOS)


Um sistema operativo

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.

MS-DOS escrito para fornecer a

mxima funcionalidade no mnimo espao.


No dividido em mdulos Embora o MS-DOS tenha alguma

estrutura, as suas interfaces e nveis de funcionalidade no esto bem separadas.

Estrutura em camadas do MS-DOS


Operating System Concepts 3.28 Silberschatz, Galvin and Gagne 2002

14

Estrutura dum Sistema Operativo (UNIX)


UNIX limitado pela funcionalidade

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.

Operating System Concepts

3.29

Silberschatz, Galvin and Gagne 2002

Abordagem por Camadas


O sistema operativo est

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

Operating System Concepts

3.30

15

OS/2 Layer Structure

Operating System Concepts

3.31

Silberschatz, Galvin and Gagne 2002

Windows NT Client-Server Structure

Operating System Concepts

3.32

Silberschatz, Galvin and Gagne 2002

16

Virtual Machines

A virtual machine takes the layered approach to its logical

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.

Operating System Concepts

3.33

Silberschatz, Galvin and Gagne 2002

System Models

Non-virtual Machine

Virtual Machine

Operating System Concepts

3.34

Silberschatz, Galvin and Gagne 2002

17

Advantages/Disadvantages of Virtual Machines


The virtual-machine concept provides complete

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.

Operating System Concepts

3.35

Silberschatz, Galvin and Gagne 2002

Java Virtual Machine


Compiled Java programs are

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

Operating System Concepts

3.36

Silberschatz, Galvin and Gagne 2002

18

System Design and Implementation


Goals User goals operating system should be convenient to use, easy to learn, reliable, safe, and fast. System goals operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error-free, and efficient. Implementation Traditionally written in assembly language, operating systems can now be written in higher-level languages. Code written in a high-level language: can be written faster. is more compact. is easier to understand and debug. An operating system is far easier to port (move to some other hardware) if it is written in a high-level language. Operating systems are designed to run on any of a class of machines; the system must be configured for each specific computer site. SYSGEN program obtains information concerning the specific configuration of the hardware system.
Operating System Concepts 3.37 Silberschatz, Galvin and Gagne 2002

Others

http://www.slideshare.net/wx672/os-5463020

Operating System Concepts

3.38

Silberschatz, Galvin and Gagne 2002

19

Anda mungkin juga menyukai