Prof. Adolfo Guimarães
http://sites.google.com/site/adolfoguimaraes
Universidade Federal de Sergipe
Departamento de Sistema de Informação - Itabaiana 22/10/13
Sistemas Operacionais
Apresentação da Disciplina
Quem sou eu?
Adolfo Guimarães
Professor substituto do Departamento de Sistemas de
Informação (UFS/Itabaiana)
Mestre em Ciência da Computação pela UFMG Graduado em Ciência da Computação pela UFS
Mais informações:
http://sites.google.com/site/adolfoguimaraes http://docentes.ufs.br/adolfopg
Como entrar em contato comigo?
Via SIGAA
E-mail: [email protected]
Assunto do e-mail (obrigatoriamente):
[SO20132] ASSUNTO
Atendimento: terças e quartas
das 08:00 às 12:00
Sala do Professor Aélio ao lado da secretaria do DSI (Bloco D)
Que disciplina é essa?
SINF0018 – Sistemas Operacionais
Turma TM5
Terças – 07:00 às 09:00
Quarta – 09:00 às 11:00
Estou na turma errada?
Fique a vontade para sair.
Caso esteja com vergonha, finja que nada
aconteceu.
Fique a vontade a assistir nossa aula. Todos são
Ementa da disciplina
Fundamentos básicos para a construção de sistemas operacionais:
modelo de execução usuário/servidor, interrupções de software e espaço de enderaçamento de um processo. Organização de um sistema operacional. Histórico. Concorrência: exclusão mútua, sincronização e comunicação entre processos. Semáforos e
monitores. Gerência de recursos: deadlock, deteção e prevenção. Gerência de memória: alocação dinâmica de memória, memória virtual, swapping, paginação e segmentação. Sistemas de arquivos: organização, esquemas de nomeação e técnicas de bufferização. Gerência de processos: políticas de escalonamento e troca de
contexto. Gerência de entrada/saída: comunicação entre computador e periféricos, funcionamento e controladores de periféricos. Proteção e segurança. Estudos de casos (Unix, Windows).
Objetivos
Geral
Aprendizado de sistemas operacionais, responsabilidades e limite
entre hardware/software
Específico
Apresentar ao aluno Sistemas Operacionais, suas
responsabilidades, bem como sua estrutura. Promover o
entendimento de problemas que o Sistema Operacional resolve, bem como tarefas que são repassadas para o desenvolvedor. Apresentar as estruturas genéricas presentes em todo sistema operacional moderno. Desenvolver módulos simplificados de um sistema operacional convencional.
Avaliação
Duas provas individuais sem consulta
Atividades ao longo da disciplina
Trabalho final em grupo
MF = ((P1 + A1) + (P2 + A2) + TF) / 3
P1 = Prova 1 (7,5) A1 = Atividades (2,5) P2 = Prova 2 (7,5) A2 = Atividades (2,5) TF = Trabalho Final (10,0)Avaliação
Professor, o senhor aplica substitutiva?
Sim. Ao final do período para aqueles que faltaram uma
das provas.
A prova vai abranger todo o conteúdo do período. A falta nas provas devem ser justificadas.
Professor, o senhor faz chamada?
Sim
Professor, o senhor reprova por falta?
Avaliação - Atividades
As atividades valem 25% da nota de cada prova e
consistem em implementações que serão passadas ao longo da disciplina e de acordo com o assunto estudado. As implementações devem ser feitas em dupla.
Avaliação - Trabalho Final
O trabalho final constará de um seminário e um relatório sobre o estudo de caso de Sistemas Operacionais.
Três grupos de no máximo 5 pessoas, cada grupo ficará com um SO: Windows, Linux e MacOS
Para cada SO deve-se falar sobre:
Visão Geral Processos e Threads Gerenciamento de Memória Entrada e Saída Sistemas de Arquivos Segurança
Avaliação - Trabalho Final
Relatório
O grupo deve entregar um relatório em PDF no dia da
apresentação do seminário.
O relatório deve constar cada um dos tópicos
apresentados anteriormente.
Não existe limite, mas existe bom senso ;)
Seminário
Apresentação de 50 min Todos devem falar
Além da corretude do conteúdo será avaliada a
Avaliação - Trabalho Final
Ao final das três apresentações faremos uma discussão sobre vantagens e desvantagens entre os sistemas
operacionais.
O relatório vale 40% da nota e a apresentação 60%
Será estimulada a participação dos alunos nos seminários dos colegas. Deve-se questionar e participar.
Perguntas devem ser vistas como interesse pelo trabalho do colega e não como forma de prejudicar.
Referência
Andrew S. Tanembaum. Sistemas Operacionais
Modernos. 2. Edição. Editora Pearson.
Abraham Silberschatz, Peter Baer Galvin, and Greg
Gagne. Operating System Concepts. 8th Edition. Editora Wiley.
O que vamos estudar aqui?
Sistemas Operacionais
1 - Processos e Threads 2 - Deadlocks 3 - Gerenciamento de Memória 4 - Entrada e Saída 5 - Sistemas de Arquivos 6 - SegurançaO que vamos estudar aqui?
Sistemas Operacionais
1 - Processos e Threads 2 - Deadlocks 3 - Gerenciamento de Memória 4 - Entrada e Saída 5 - Sistemas de Arquivos 6 - Segurança 7 - Linux x Windows x MacOS
Aulas expositivas Provas
Atividades
Vamos começar?
O que é um sistema operacional?
Não existe uma definição precisa do que é
um sistema operacional e nem de suas
atribuições.
De forma geral, podemos definir um
sistema operacional como um programa
que atua entre o usuário e o hardware de
um computador.
O que é um sistema operacional?
Podemos definir dois objetivos de um SO:
Tornar o uso do sistema de computação
conveniente
Usar o hardware do computador de forma
O que é um sistema operacional?
Um sistema de computação é composto por:
Hardware
Sistema Operacional Programas Aplicativos Usuário
O que é um sistema operacional?
Um sistema de computação é composto por:
Hardware
Fornece os recursos básicos de computação
Sistema Operacional
???
Programas Aplicativos
Definem a maneira em que esses recursos são usados
para resolver os problemas de computação dos usuários
Usuário
O que é um sistema operacional?
O Sistema Operacional controla e coordena o
uso de hardware entre os vários programas
aplicativos para os vários usuários.
O que é um sistema operacional?
Podemos classificar os sistemas operacionais
em dois tipos a depender de sua função:
Sistema operacional como uma máquina estendida Sistema operacional como um gerenciador de
O que é um sistema operacional?
Sistema operacional como uma máquina
estendida
Fornecer aos programadores de aplicativos (e aos
programas aplicativos naturalmente) um conjunto de recursos abstratos claros em vez de recursos confusos de hardware.
O que é um sistema operacional?
Sistema operacional como uma máquina
O que é um sistema operacional?
Sistema operacional como uma máquina
O que é um sistema operacional?
Sistema operacional como gerenciador de
recursos
Um pouco de história
A evolução dos Sistemas Operacionais estão
diretamente ligadas a evolução dos
computadores.
Podemos classificá-la em 4 gerações:
Primeira Geração (1945-1955) Segunda Geração (1955-1965) Terceira Geração (1965-1980)
Um pouco de história
Primeira Geração
Um pouco de história
Um pouco de história
Um pouco de história
Um pouco de história
Primeira Geração
Palavra-Chave: Válvula
Acontecimentos importantes:
Começou com Babbage e Ada Explosão na II Guerra Mundial Surgimento do Mark, ENIAC
Surgimento dos cartões perfurados Não existia sistemas operacionais
Um pouco de história
Um pouco de história
Um pouco de história
Um pouco de história
Um pouco de história
Segunda Geração
FMS (Fortran Monitor System)
IBSYS
Um pouco de história
Segunda Geração
Palavras-Chave: Transistores e Batch (lote) Acontecimentos importantes:
Inclusão dos transistores
Computadores de grande porte (mainframes) Sistemas em lotes (batch)
Fitas Magnéticas, Cartões
Uso científico
Um pouco de história
Um pouco de história
Um pouco de história
Um pouco de história
Um pouco de história
Um pouco de história
Terceira Geração
Palavras-Chave: CIs e Multiprogramação Acontecimentos importantes:
Circuitos Integrados Multiprogramação
Timesharing (tempo compartilhado)
Surgimento da família de computadores (OS/360 - IBM) UNIX e MINIX → LINUX
Um pouco de história
Um pouco de história
Um pouco de história
Um pouco de história
Um pouco de história
Um pouco de história
Um pouco de história
Um pouco de história
Um pouco de história
Quarta Geração
Palavras-Chave: Computadores pessoais Acontecimentos importantes:
Consolidação dos circuitos integrados IBM PC
Bill Gates e o DOS/MS-DOS
IBM PC/AT, INTEL 80286, INTEL 80386, INTEL 80486 Xerox → GUI
Apple → Machintosh, FreeBSD
Microsoft → W95, W98, Me, NT, XP, Vista ... Unix → KDE, Gnome
Classificação dos Sistemas Operacionais
Sistemas Operacionais de ...
… computadores de grande porte … servidores … multiprocessadores … computadores pessoais … computadores portáteis … sistemas embarcados … nós sensores … tempo real … cartões inteligentes
Classificação dos Sistemas Operacionais
Sistemas operacionais de computadores
grande porte
Computadores de grande porte ainda podem ser
encontrados em centro de dados de grande corporações
Ressurgindo como sofisticados servidores web Sistemas operacionais orientados para o
processamento simultâneo de muitas tarefas, e a maioria que exigem muita tarefa de E/S.
Oferecem três tipos de serviço: em lote (batch),
processamento de transações e tempo compartilhado.
Classificação dos Sistemas Operacionais
Sistemas operacionais de servidores
Executado em servidores
Servem múltiplos usuários ao mesmo tempo em
um rede e permitem que estes usuários
compartilhem recursos de hardware e software.
Serviços de impressão, de arquivo ou de web
Bastante utilizado por provedores de acesso e sites
da web
Ex: Solaris, FreeBSD, Linux e o Windows Server
Classificação dos Sistemas Operacionais
Sistemas operacionais de multiprocessadores
Multiprocessadores: sistemas computacionais que
conectam múltiplas CPUs em um único sistema
Necessitam de sistemas operacionais especiais
Variações dos sistemas operacionais de servidores,
com aspectos especiais de comunicação, conectividade e compatibilidade
Lidam também com processadores multinúcleo Ex: windows e linux
Classificação dos Sistemas Operacionais
Sistemas operacionais de computadores
pessoais
Sistemas operacionais mais conhecidos - SO do
nosso PC ;)
Lidam com multiprogramação (vários programas
são executados ao mesmo tempo)
Oferece uma boa interface para um único usuário Amplamente usado para processadores de texto,
planilhas e acesso a internet
Classificação dos Sistemas Operacionais
Sistemas operacionais de computadores
portáteis
Sistemas operacionais para os PDAs (personal
digital assistant – assistente pessoal digital)
Também presente nos celulares
Manipula diversas funções (telefonia, foto digital
etc)
Lida com pouco espaço e memória limitada Ex: Symbian OS, Palm OS
Classificação dos Sistemas Operacionais
Sistemas operacionais embarcados
Utilizado em dispositivos como fornos micro-ondas,
aparelhos de TV, carros, aparelhos de DVD, telefone celulares e reprodutores de MP3
Softwares instalados na ROM
Dificilmente você instala software de terceiros Ex: QNX e VxWords
Classificação dos Sistemas Operacionais
Sistemas operacionais de nós sensores (sensor
node)
Nós sensores são computadores minúsculos que se
comunicam entre si e com uma estação-base usando comunição sem fio.
Utilizados para: proteger perímetros de prédios, guardar
fronteiras nacionais, detectar incêndios em florestas, medir temperatura e colher informações sobre inimigos
Utilizam um sistema operacional que lide com suas
características: memória reduzida, influência de fatores externos, maior importância da bateria
Classificação dos Sistemas Operacionais
Sistemas operacionais de tempo real
Caracterizados por ter o tempo como um parâmetro
fundamental
Sistemas de tempo real crítico (aviação, indústria,
exército)
Sistemas de tempo real não-crítico (sistemas de áudio,
multimídia, telefones digitais
Ex: e-Cos
Sistemas operacionais portáteis, embarcados e
Classificação dos Sistemas Operacionais
Sistemas operacionais de cartões
inteligentes (smart cards)
Menores sistemas operacionais
São executados em cartões inteligentes
Grandes restrições de consumo de energia e
memória
Podem executar só uma função ou serem
orientados a multiprogramação
Vale lembrar
Dentre as principais tarefas de um sistema
operacional, podemos destacar: conveniência
e eficiência
A evolução dos sistemas operacionais
acompanha a evolução dos computadores
Atualmente existe uma série de tipos de
sistemas operacionais
Para cada um desses tipos, existe uma série
Próxima aula
Revisão rápida de arquitetura
Visão geral dos principais conceitos de um
Referência
Cap. 1 dos livros:
Andrew S. Tanembaum. Sistemas Operacionais Modernos.
2. Edição. Editora Pearson.
Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne.
72