Sistemas Operacionais: O quê? Por quê? Quando? - ppt carregar
PublicouVinícius Rocha Alterado mais de 3 anos atrás
Apresentação em tema: "Sistemas Operacionais: O quê? Por quê? Quando?"— Transcrição da apresentação:
1 Sistemas Operacionais: O quê? Por quê? Quando?
Prof. Marcio Seiji Oyamada
2 Sistemas Operacionais: O quê?
Definição: "Um programa que age como intermediário entre entre o usuário de um computador e o hardware" Silberchatz, et al. "Operating Systems", 7a. Edição SO
3 Sistemas Operacionais: O quê? (2)
Máquina estendida Esconde detalhes do hardware Funciona como uma máquina virtual, facilitando a utilização Gerenciador de recursos Cada programa tem um tempo definido para utilizar o recurso Cada programa tem um espaço definido no recurso Modern Operating System. Tanenbaum
Silberchatz, et al. "Operating Systems", 7a. Edição
5 Sistemas Operacionais: Por quê?
Porque utilizar um sistema operacional Gerenciamento de processos Gerenciamento da memória Gerenciamento de arquivos Gerenciamento de periféricos e dispositivos de entrada e saída Ambiente de rede e distribuído Segurança
6 Gerenciamento de processos : Por quê?
7 Gerenciamento de processos : Por quê? (2)
O sistema operacional é responsável pelo ciclo de execução dos processos: carga, execução e finalização Dividir o tempo de processamento entre os processos ativos (escalonamento) Algoritmos!!! Como escalonar de um processo para o outro? Arquitetura de computadores!!! Prover a comunicação entre processos Estrutura de dados !!! Prover a sincronização entre processos Algoritmos e métodos!!!
8 Gerenciamento de memória: Por quê ?
9 Gerenciamento de memória: Por quê ? (2)
O sistema operacional deve gerenciar a memória disponível no computador Alocação da memória entre os diferentes processos Arquitetura de computadores Proteção da memória entre diferentes processos Memória virtual: utilizar a memória secundária para aumentar a memória disponível. O que acontece quando um processo não está na memória principal? Quais são os processos que serão temporariamente armazenados na memória secundária? Algoritmos e arquitetura de computadores
10 Gerenciamento de arquivos: Por quê ?
Capacity + 100%/year (2X / 1.0 yrs) Transfer rate (BW) + 40%/year (2X / 2.0 yrs) Rotation + Seek time – 8%/ year (1/2 in 10 yrs) MB/$ > 100%/year (2X / 1.0 yrs) Fewer chips + areal density Fonte: Patterson &Hennessy. Computer Architecture: A quantitative approach
11 Gerenciamento de arquivos: Por quê ? (2)
Como armazenar os arquivos de maneira eficiente? Métodos e algoritmos Como acessar os arquivos de maneira eficiente? Como prover confiabilidade de armazenamento? Como prover um modelo comum para diferentes tipos de armazenamento? Discos rígidos, cartões de memória
12 Gerenciamento de periféricos: Por quê?
Diferentes tipos de periféricos Dispositivos de entrada Dispositivos de saída Dispositivos síncronos Monitor Dispositivos assíncronos Teclado Métodos de acesso: Polling: espera ativa Interrupção
13 Sistemas Operacionais: Quando?
Currículo de referência da SBC (Sociedade Brasileira de Computação) –1999* Três núcleos: Fundamentos da Computação Tecnologia da Computação Sistemas de Informação *ainda não aprovado pelo MEC/SESU
14 Sistemas Operacionais: Quando? (2)
A disciplina Sistemas Operacionais faz parte do núcleo Fundamentos da Computação compreende o núcleo de matérias que envolvem a parte científica e as técnicas fundamentais à formação sólida dos egressos dos diversos cursos de computação;
15 Sistemas Operacionais: Quando? (3)
F8. Sistemas Operacionais O histórico, o conceito e os tipos de sistemas operacionais. A estrutura de sistemas operacionais. Gerenciamento de memória. Memória virtual. Conceito de processo. Gerência de processador:escalonamento de processos, monoprocessamento e multiprocessamento. Concorrência e sincronização de processos. Alocação de recursos e deadlocks. Gerenciamento de arquivos. Gerenciamento de dispositivos de entrada/saída. *não aprovado pelo MEC/SESU
16 Sistemas Operacionais: Quando? ACM Curricula'2005(4)
Sistemas Operacionais - Princípios e Projeto: conhecimento fundamental que habilita o estudante a entender as tarefas básicas de um sistema operacional. Isto inclui várias estratégias e táticas que um sistema operacional deve empregar para implementar tais tarefas, bem como os pontos fortes e fracos de várias implementações. Sistemas Operacionais - Configuração e Uso: Uso refere-se a habilidade com os principais sistemas operacionais. Este tópico tem foco no desenvolvimento de habilidades do estudante para tornar útil as capacidades existentes no sistema operacional. O objetivo é produzir estudantes que saibam as limitações e pontos fortes dos principais sistemas operacionais e como isso pode ser utilizado para satisfazer as necessidades dos usuários e da organização.
17 Sistemas Operacionais: Quando? ACM Curricula'2005(5)
"....student who wants to understand the principles and design of operating systems will typically not be well served by IS (Information Systems) and IT(Information Technology) programs, will be better satisfied by CE (Computer Engineering), CS (Computer Science), or SE (Software Engineering) programs, and will have the greatest opportunity for in-depth study in CS programs. In contrast, a student who is interested primarily in the practical configuration and use of operating systems will be served best by an IT program since each of the other degree programs provides less opportunity for in-depth mastery in this area. A student wishing to pursue both OS topics would likely gravitate toward a CS or SE degree program where he or she will sacrifice depth with respect to practical application in order to obtain a better balance of principles and application."
18 Sistemas Operacionais: Quando? (6)
Ciência da Computação: Série: 3o. Ano Carga Horária: 136 H/Aula, (3 aulas teóricas e 1 prática) Ementa: Estudo dos conceitos envolvidos nos sistemas de gerenciamento de recursos de um sistema de computação. Objetivos: Apresentar os conceitos relativos ao gerenciamento de recursos e à criação de máquinas virtuais em sistemas de computação Estudar os vários mecanismos de gerenciamento de recursos que existem no sistema operacional tais como: gerência de CPU, gerência de memória, gerência de dispositivos de E/S e o sistema de arquivos.
19 Sistemas Operacionais: Quando? (7)
O que você deveria saber antes de fazer Sistemas Operacionais, ou, "Não vou conseguir fazer SO se eu não souber": Algoritmos e Estruturas de Dados Programação em Linguagem de Máquina Arquitetura de Computadores
20 Sistemas Operacionais: FAQ
Vamos aprender a instalar o Linux? Não Vamos aprender a instalar o Windows? Qual sistema operacional vamos utilizar na disciplina? O maior número possível O que aprenderemos em SO? Algoritmos e técnicas utilizados nos Sistemas Operacionais modernos para gerenciamento de um sistema computacional. Por que aprenderemos isso? Como o SO é a interface entre as aplicações e o hardware, o desenvolvimento de qualquer camada acima ou abaixo provavelmente exigirá o conhecimento sólido em sistemas operacionais
21 Sistemas Operacionais: FAQ (2)
Qual o melhor sistema operacional? Depende, qual a finalidade? Ou, o que é melhor? (preço, manutenção, usabilidade) Quantos sistemas operacionais existem? Vários: Windows, Linux, SunOS, MacOS, uCOS, TRON, SymbianOS, PalmOS, QNX, VxWorks, entre outros O Windows é o sistema operacional mais utilizado no mundo? Não, sistemas embarcados vendem muito mais que PCs, e vários utilizam um sistema operacional. Ex: TRON (mais de 4 bilhões de aparelhos), e SymbianOS (celulares da Nokia)
23 Histórico 1955- 1965 1965- 1980 1980 – Atualmente Sistemas de lote
Multiprogramação 1980 – Atualmente Computadores pessoais Multitarefas Multi-usuário Multiprocessador Dispositivos Embarcados
24 Histórico (2)
25 Sistemas de lote Mainframes Lote Lote multiprogramação
CPU compartilhada entre os processos Aumentar a utilização da CPU durante a entrada e saída
26 Interrupções
27 Interrupções
28 Tratamento de uma interrupção
29 Multi-tarefas (tempo compartilhado)
CPU é compartilhada entre os diversos processos Uma pequena fatia de tempo é dado a cada processo < 1ms Interativo Preempção: o processo não controla quando o controle da CPU será dado a outro processo
30 Multiprogramação
31 Exemplo JOB1 JOB2 JOB3 Type of job Heavy compute Heavy I/O Heavy I/O
Duration	5 min.	15 min.	10 min. Memory required	50K	100 K	80 K Need disk?	No	No	Yes Need terminal	No	Yes	No Need printer?	No	No	Yes Stallings. Operating Systems
32 Exemplo Uniprogramming Multiprogramming Processor use 22% 43%
Memory use	30%	67% Disk use	33%	67% Printer use	33%	67% Elapsed time	30 min.	15 min. Throughput rate	6 jobs/hr	12 jobs/hr Mean response time	18 min.	10 min. Stallings. Operating Systems
33 Sistemas Operacionais - Estruturas
34 Estrutura Simples MS-DOS Sem módulos
Pouca separação entre o nível supervisor e aplicações
35 Organização em camadas
O sistema operacional é dividido em camadas Cada camada utiliza serviços de camadas inferiores e provê serviços para camadas superiores
36 THE Technische Hogeschool Eindhoven Nível 5: Programas de usuários
Nível 4: Gerenciamento de áreas de armazenamento de dispositivos E/S Nível 3: Rotinas de controle do console do operador Nível 2: Gerenciamento da memória Nível 1: Alocação da CPU Nível 0: hardware
37 Núcleo monolítico Aplicações do usuário + Núcleo (kernel) do sistema operacional O núcleo provê o acesso ao hardware através de chamadas de sistema
38 Módulos Módulos: carga dinâmica
Flexibilidade Núcleo menor Drivers, Arquivos de sistema, System calls, network driver
39 Microkernel Utiliza um núcleo com serviços mínimos
Demais serviços (sistemas de arquivos, sistema de IO) são disponibilizados através de servidores Benéficios Fácil para estender Fácil para portar Contras Desempenho
40 Máquinas virtuais Máquina virtual: camada lógica do hardware
Fornece uma camada do hardware Máquinas virtuais podem executar concorrente Non-virtual Machine Virtual Machine
41 VMware
42 Java Linguagem de programação Application programming interface (API)
Especificação da máquina virtual
43 Chamadas de sistema (System calls)
44 Chamadas de sistema Através de interrupções de software ou trap
User mode x Kernel mode Acesso a instruções privilegiadas Acesso aos periféricos Acesso a área de dados específicas
45 Chamadas de sistema Interface de programação entre applicações e sistema operacional Normalmente acessada via API(application programming interface) ao invés do acesso direto à chamadas de sistema Exemplos: Win32 POSIX Unix Por que utilizar APIs e não chamadas de sistema? Operating System Concepts – 7th Edition, Jan 14, Silberschatz, Galvin and Gagne ©2005
46 API – Chamada de sistema
47 Exemplo de API Win32 API—função para leitura de arquivo
Parâmetros ReadFile() HANDLE file—the file to be read LPVOID buffer—a buffer where the data will be read into and written from DWORD bytesToRead—the number of bytes to be read into the buffer LPDWORD bytesRead—the number of bytes read during the last read LPOVERLAPPED ovl—indicates if overlapped I/O is being used
48 API: Biblioteca C padrão
printf() => invoca a chamada de sistema write()
49 Chamadas de sistema Cada chamada de sistema tem um número associado
Passagem de parâmetros para chamadas de sistema Registradores Tabela Pilha A utilização de tabelas e registradores é mais flexível e não é limitada ao número de registradores do processador
50 Passagem de parâmetros via tabela
51 Tipos de chamadas de sistema
Controle de processos Gerenciamento de arquivos Gerenciamento de dispositivos Controle de informações do sistema Comunicação
52 Aguarde os próximos capítulos!!!
Gerenciamento de processos Gerenciamento da memória Gerenciamento de arquivos Gerenciamento de periféricos e dispositivos de entrada e saída Ambiente de rede e distribuído