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:

FEELT31627

Período/Série:

6 SEMESTRE

Turma:

M

Carga Horária:

Natureza:

Teórica:

45

Prática:

0

Total:

45

Obrigatória:

(X)

Optativa:

( )

Professor(A):

KIL JIN BRANDINI PARK

Ano/Semestre:

AARE 1 ETAPA

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:

As atividades práticas ocorrerão nas atividades de análise de códigos de programas e na implementação dos projetos propostos. Elas não demandam equipamentos específicos, exceto aqueles que os alunos naturalmente utilizarão no acesso aos materiais e aulas oferecidos remotamente.

Cada semana de atividades contemplará uma hora-aula de atividade síncrona e cinco horas-aula de atividades assíncronas.

Informações de acordo com a Resolução nº 7/2020 do Conselho de Graduação:

  1. Atividades síncronas: 7,5 horas

Horários das atividades síncronas: Sextas-feiras 10:40 as 11:30

Plataforma de T.I./softwares que serão utilizados:

Google Meet, Microsoft Teams

  1. Atividades assíncronas: 37,5 horas

Plataforma de T.I. /softwares que serão utilizados:

Microsoft Teams, Moodle, Youtube, Sites na internet

Endereço web de localização dos arquivos

Moodle e Microsoft Teams acadêmico do professor da disciplina.

Livro:

Operating Systems: Three Easy Pieces

http://pages.cs.wisc.edu/~remzi/OSTEP/.

Guias e Materiais de Estudos:

CS4414: Operating Systems, University of Virginia - David Evans

http://rust-class.org/index.html.

CS 162: Operating Systems and System Programming, University of Berkeley - Sam Kumar

https://cs162.eecs.berkeley.edu/.

CS 140: Operating Systems, Stanford University - John Ousterhout

http://web.stanford.edu/~ouster/cgi-bin/cs140-spring14/index.php.

Operating System Engineering, MIT - Frans Kaashoek

https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/index.htm.

  1. Demais atividades letivas: 0 horas

  2. Carga-horária prática: 0 horas

  3. Como e onde os discentes terão acesso às referências bibliográficas:

Além dos materiais que se encontram na biblioteca da instituição, os alunos terão a opção de utilizar o livro texto Operating Systems: Three Easy Pieces que encontra-se disponibilizado gratuitamenta no endereço: http://pages.cs.wisc.edu/~remzi/OSTEP/.

Material de apoio a ser utilizado:

Guias e Materiais de Estudos:

CS4414: Operating Systems, University of Virginia - David Evans

http://rust-class.org/index.html.

CS 162: Operating Systems and System Programming, University of Berkeley - Sam Kumar

https://cs162.eecs.berkeley.edu/.

CS 140: Operating Systems, Stanford University - John Ousterhout

http://web.stanford.edu/~ouster/cgi-bin/cs140-spring14/index.php.

Operating System Engineering, MIT - Frans Kaashoek

https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/index.htm.

Caso mais materiais de apoio sejam utilizados, eles deverão estar obrigatoriamente disponíveis nas plataformas apontadas em formato gratuíto, e suas fontes serão divulgadas oficialmente via Moodle ou Microsoft Teams.

Horário de Atendimento aos estudantes:

Os horários de atendimento serão definidos conforme demanda por parte dos discentes.

Cronograma previsto para desenvolvimento do conteúdo:

Semana : Conteúdo
1: Conceitos básicos de SO. Estrutura básica de um SO. Gestão de Processo – Conceitos, estados e escalonadores, troca de contexto. Gestão de Processo – Tabela de Processo e algoritmos de escalonamento.
2: Threads. Pthreads.Sincronização. Semáforos.
3: Threads. Pthreads.Sincronização. Semáforos. Avaliação.
4: Introdução à gestão de memória. Modelo de memória sem abstração. Realocação. Uso de registrador-base e limite. Segmentação.
5: Paginação. Estrutura de dados relativos a paginação. Tabela de página. Tabela de página multinível. Tabela de página invertida. Algoritmos de substituição de página.
6: Algoritmos de substituição de página. Avaliação.
7: Organização básica de um FS em disco. Arquivo e Diretório. 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. Funcionamento de HD. RAID. 
8: Concorrência.
9: Estudo comparativo: Linux e Windows. Segurança. Avaliação.

 

AVALIAÇÃO

A avaliação do desempenho dos alunos será somativa, consistindo em componentes individuais, representados na forma de ao menos duas avaliações teóricas onde perguntas serão efetuadas pelo docente e deverão ser respondidas pelos discentes em formato síncrono e ao menos dois projetos propostos aos estudantes. As avaliações teóricas em conjunto terão valor de 80 pontos e os projetos terão em conjunto valor de 20 pontos, totalizando 100 pontos.

BIBLIOGRAFIA

Básica

  1. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Sistemas operacionais com java. 7. ed.

  2. Rio de Janeiro: Campus, 2008.

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

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

  5. ARPACI-DUSSEAU, Remzi H.; ARPACI-DUSSEAU, Andrea C. Operating systems: Three easy pieces. 1. ed. [S. l.]: Arpaci-Dusseau Books, LLC, 2018.

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. 6. ed. [S.l.]: LTC, 2010.

  6. 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 24/07/2020, às 14:20, 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 2156411 e o código CRC 50C139B6.




Referência: Processo nº 23117.039929/2020-79 SEI nº 2156411