UNIVERSIDADE FEDERAL DE UBERLÂNDIA
Faculdade de Engenharia Elétrica

Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902
Telefone: (34) 3239-4701/4702 - www.feelt.ufu.br - feelt@ufu.br
  

Timbre

Plano de Ensino

IDENTIFICAÇÃO

Componente Curricular:

SISTEMAS OPERACIONAIS

Unidade Ofertante:

FEELT

Código:

FEELT 32167

Período/Série:

6 SEMESTRE

Turma:

C

Carga Horária:

Natureza:

Teórica:

35

Prática:

15

Total:

45

Obrigatória:

(X)

Optativa:

( )

Professor(A):

Kil Jin Brandini Park

Ano/Semestre:

2020/02

Observações:

 

 

EMENTA

História dos Sistemas Operacionais, Processos e Threads, Gerenciamento de Memória, Sistema de Entrada e Saída, Sistema de Arquivo e Estudo comparativo entre Sistemas Operacionais existentes.

JUSTIFICATIVA

O desenvolvimento de proficiência na resolução de problemas computacionais e desenvolvimento de software exige o conhecimento dos recursos providos pelas arquiteturas de hardware distintas, das interfaces de abstração para a disponibilização de tais recursos e dos modelos de gestão dos mesmos. Este curso visa prover aos alunos este conhecimento fundamental.

OBJETIVO

Objetivo Geral:

Definir os conceitos básicos e avançados de sistemas operacionais, oferecendo ao aluno conhecimento abrangente sobre o tema.

Objetivos Específicos:

Capacitar os discentes a reconhecer as principais características existentes em sistemas operacionais, bem como ser capaz de escolher um sistema operacional adequado para determinados tipos de aplicações.

PROGRAMA

 

1. Introdução

a. Definição e Características de um Sistema Operacional

b. Estrutura de um Sistema Operacional

i. Serviços do Sistema Operacional

ii. Chamadas de Sistemas

c. Projeto e Implementação do Sistema Operacional

i. Mecanismos e Políticas

ii. Implementação

iii. Estrutura do Sistema Operacional

1. Monolíticos

2. Camadas

3. Microkernels

4. Módulos

5. Máquinas virtuais

6. Cliente-sevidor

2. Gerência de processos

a. Conceito de Processos

b. Estados de um Processo

c. Bloco de Controle de Processos

d. Escalonamento de Processos

e. Troca de contexto

f. Criação de Processos

g. Comunicação entre Processos

h. Threads

i. Motivação para o uso de Threads

ii. Modelos de Múltiplas Threads

iii. Bibliotecas de Threads

iv. Posix Threads – Pthreads

v. Windows Threads

vi. Threads em Java

vii. Aspectos do uso de Threads

i. Escalonamento de processos

i. Ciclos de CPU e ES (Entrada e Saída)

ii. Conceitos de Preempção

iii. Algoritmos de Escalonamento

1. First Come, First Served – FCFS

2. Shortest Job First – SJF

3. Escalonamento por Prioridade

4. Round-Robin

5. Filas Multinível

iv. Escalonamento de Threads

v. Escalonamento em Múltiplos processadores

j. Programação concorrente

k. Sincronização de processos

i. Caracterização

ii. Seção Crítica

iii. Hardware de Sincronismo

iv. Semáforos

v. Monitores

vi. Problemas Clássicos de Sincronismo

l. Deadlock

i. Caracterização do Deadlock

ii. Grafo de Alocação de Recursos

iii. Métodos para Tratamento de Deadlocks

iv. Prevenção de Deadlocks

v. Detecção de Deadlock

vi. Recuperação do Deadlock

3. Gerência de memória

a. Carregamento absoluto e carregamento relocado

b. Alocação contígua

i. Partições fixas

ii. Partições variáveis

c. Alocação não-contígua

i. Paginação

ii. Segmentação

iii. Segmentação paginada

d. Memória virtual

i. Paginação por Demanda

ii. Algoritmos de substituição de página

iii. Trashing

4. Sistemas de arquivos

a. Arquivos e diretórios

b. Estruturação de arquivos

c. Segurança em sistemas de arquivos

d. Implementação de sistemas de arquivos

e. Alocação de espaço em disco

i. Alocação contígua

ii. Alocação encadeada

iii. Alocação indexada

f. Gerência de espaço livre em discos

g. Múltiplos sistemas de arquivos.

h. Sistemas de Arquivos de Rede

5. Gerência de entrada e saída

a. Controlador e driver de dispositivo

b. E/S programada

c. Interrupções

d. DMA (Direct Memory Access – Acesso Direto a Memória)

e. Organização de discos rígidos

f. Algoritmos de escalonamento de braço de disco

g. Sistemas RAID (Redundant Array of Independent Disks)

6. Estudos de Caso: Sistemas Operacionais de Propósito Específicos

a. Sistemas Operacionais de Tempo Real

b. Sistemas Operacionais Multimídia

c. Sistemas Operacionais Embarcados

7. Segurança em Sistemas Operacionais

METODOLOGIA

O curso será desenvolvido através de atividades síncronas e assíncronas. No primeiro grupo, serão efetuadas exposições didáticas a respeito dos tópicos essenciais relativos aos conteúdos previstos da disciplina, bem como resolução de dúvidas que os discentes apresentem sobre os conteúdos constantes nos materiais de apoio a eles indicados, através das plataformas Google Meet e Microsoft Teams. No segundo grupo, os alunos deverão estudar os materiais de apoio definidos e indicados. Estes materiais serão apresentados nos mais variados formatos, livros, artigos, vídeos, trechos de códigos-fonte de softwares.

Aula - Conteúdo

1 - Conceitos básicos de SO. Estrutura básica de um SO.

2 - Gestão de Processo – Conceitos, estados e escalonadores, troca de contexto. Gestão de Processo – Tabela de Processo e algoritmos de escalonamento.

3 - Threads. Pthreads.

4 - Sincronização. Semáforos.

5 - Problema do produtor – consumidor.

6 - Introdução à gestão de memória. Modelo de memória sem abstração. Realocação. Uso de registrador-base e limite.

7 - Paginação

8 - Estrutura de dados relativos a paginação. Tabela de página. Tabela de página multinível. Tabela de página invertida.

9 - Algoritmos de substituição de página.

10 - Segmentação.

11 - Introdução aos Sistemas de Arquivos.

12 - Organização básica de um FS em disco. Arquivo e Diretório

13 - I-node. Algoritmo de backup. VFS. Gestão de espaço em disco. i/O. Modelos de I/O: Programada, por interrupção e DMA

14 - Funcionamento de HD. RAID. Concorrência. Deadlock

15 - Concorrência. Deadlock. Estudo de caso: Sistemas Operacionais Windows e Linux.

AVALIAÇÃO

A avaliação do desempenho dos alunos será somativa, consistindo em componentes individuais, representados na forma de três avaliações teóricas e oito questionários.

BIBLIOGRAFIA

Básica

  1. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Sistemas operacionais com java. 7. ed. Rio de Janeiro: Campus, 2008.

  2. STALLINGS, W. Operating Systems: internals and design principles. 7. ed. [S.l.]: Prentice Hall, 2011.

  3. TANENBAUM, A. S. Sistemas operacionais modernos. 2. ed. [S.l.]: Pearson, 2010.

Complementar

  1. BEN-ARI, M. Principles of concurrent and distributed programming. [S.l.]: Addison-Wesley, 2006.

  2. DEITEL, H. M.; DEITEL, J. M.; CHOFFNES, D. R. Sistemas operacionais. 3. ed. [S. l.]: Pearson, 2005.

  3. MCKUSICK, M. K.; NEVILLE-NEIL, G. V. The design and implementation of the FreeBSD operating system. [S. l.]: Addison-Wesley Professional, 2004.

  4. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais.

  5. TANENBAUM, A. S.; WOODHULL, A. S. Operating systems design and implementation. 3. ed. [S.l.]: Prentice Hall, 2006.

APROVAÇÃO

Aprovado em reunião do Colegiado realizada em: ____/____/______

Coordenação do Curso de Graduação: _________________________

 


logotipo

Documento assinado eletronicamente por Kil Jin Brandini Park, Professor(a) do Magistério Superior, em 23/06/2021, às 14:05, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


QRCode Assinatura

A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 2856187 e o código CRC E6F5281B.




Referência: Processo nº 23117.039263/2021-30 SEI nº 2856187