Fundamentos de Sistemas Operacionais
UnB-\(\gamma\)

Table of Contents

1 Aulas

1.1 Aula 1   01_fev

1.1.1 Pauta do dia

  • Apresentação da disciplina em live no YouTube

1.1.2 Material de apoio

1.1.3 Relembre um pouco da linguagem C

Para a aula de hoje é recomendado que o aluno veja os vídeos abaixo:

1.2 Aula 2   03_fev processos

1.2.1 Vídeos Complementares

1.3 Aula 3   08_fev processos

1.3.1 Tópicos e materiais

Nesta aula foi discutido o processo básico de fluxo de inicialização de processos e os elementos básicos necessários para que o kernel possa controlar o processo.

Foi disponibilizado um conjunto de vídeos (na seção abaixo) que complementam a visão geral dos processos dentro dos ambientes UNIX.

Também foi discutido os estados que um processo pode assumir e também em qual circunstância acontece a migração dos estados. Abaixo segue uma imagem representando os estados e suas possíveis transições.

grafo-estados.png

Figure 1: Estado que os processos podem assumir

1.3.2 Veja também

1.3.3 Exercícios

  1. Questões para pesquisar no livro texto
    1. Enumere e explique resumidamente as principais responsabilidades de um sistema operacional.
    2. Qual é a diferença entre modo usuário e modo kernel? Por que esta distinção é feita?
    3. Descreva como são implementados os seguintes eventos:
    • chamada de sistema,
    • tratamento de interrupção, e
    • tratamento de sinais.

    Quais são as semelhanças e diferenças entre estes eventos?

    1. Qual é a diferença entre um sistema monolítico e um baseado em camadas?
  2. Sobre Processos
    1. Abra um terminal e execute o comando: pstree -c -p. Descreva o que está vendo
    2. Familiarize-se com a chamada: fork(2)
    3. Descreva o funcionamento da função fork(2)
  3. Na figura 1 são mostrados três estados de processos. Na teoria, com três estados poderia haver seis transições, duas para cada estado. Contudo, somente quatro transições são mostradas. Há alguma circunstância na qual uma delas ou ambas as transições não ilustradam possam ocorrer?

1.4 Aula 4   10_fev processos

1.4.1 Continue estutando

1.4.2 Exercícios

  1. Lista pública no CD-MOJ
    • Resolva os exercícios propostos na lista pública do CD-MOJ.
    • Para ganhar credenciais de acesso à lista, envie uma mensagem para @mojinhobot, no telegram AQUI, com o conteúdo:

      participar bcr-FSO-2020_2-fixacao1
      
      • Os usuários são compartilhados com as listas de fixação de EDA2
  2. O que é um processo Zumbi? Escreva um programa que crie processos zumbis.
  3. Resolva http://www.brunoribas.com.br/so/2019-1/pratica/multiplicacao-matriz.html
  4. Resolva http://wiki.inf.ufpr.br/maziero/doku.php?id=so:criacao_de_processos
  5. Resolva http://www.dei.isep.ipp.pt/~orlando/so2/processos.htm
  6. Familiarize-se com as chamadas: execve(2), clone(2)

1.5 Aula 5   17_fev assincrono

A aula de hoje é em carácter assíncrono, onde os alunos devem implementar os exercícios propostos tanto nas listas divuldadas nas aulas anteriores quanto os exercícios que estão disponibilizados abaixo.

1.5.1 Exercícios

  1. Lista de presença no MOJ
    • Foi enviado a todos um email com as credenciais para a primeira lista de presença de FSO
    • A lista pode ser acessada pelo endereço: https://moj.naquadah.com.br/cgi-bin/contest.sh/bcr-FSO-2020_2-presenca-1
    • Você precisa garantir no mínimo 10% de acerto no problema para conseguir a presença no período
    • Explicações detalhadas de como se resolver o problema você pode ver no vídeo abaixo:

  2. Sobre o Exercício D da lista de fixação 1
    • O enunciado pode ser baixado AQUI.
  3. Considere a seguinte parte de um programa:   prof_Orlando
    ...
      p=fork();
      a=fork();
    
    printf("Sistemas Operacionais\n");
    ...
    
    • Quantas vezes é apresentada "Sistemas Operacionais"? Justifique.
    • Quantos processos são criados pelo programa?
  4. Faça um programa que crie 2 processos e:   prof_Orlando
    • Escreve Eu sou o pai no processo pai;
    • Escreve Eu sou o 1o filho no primeiro filho;
    • Escreve Eu sou o 2o filho no segundo filho.
  5. Considere a seguinte parte de um programa   prof_Orlando
    int main()
    {
      ...
      pid2=0;
      for(i=0;i<2;i++)
      {
        pid=fork();
        if(pid==0)
          pid2=fork();
        if(pid2==0)
          printf("Exame de SO\n");
      }
      ...
    }
    
    • Quantas vezes é apresentada a frase Exame de SO? Justifique
    • Veja a discussão deste problema no vídeo abaixo:

  6. Tendo um vetor de inteiros com mil posições, crie um processo e faça o seguinte:   prof_Orlando HOT
    • Os dois processos (pai e filho) fazem o seguinte cálculo: resultado[i]=dados[i]*4+20
    • Cada processo é responsável pelo cálculo de \(500\) posições do vetor dados, colocando o resultado no vetor resultado
    • Os resultados devem ser apresentados seguindo a ordem do vetor (de \([0,499]\) e depois \([500,999]\))
  7. Faça um programa que crie 6 processos e:   prof_Orlando HOT
    • Cada processo escreve \(200\) números:
      • 1o processo \([0,200]\);
      • 2o processo \([201,400]\);
      • 3o processo \([401,600]\);
      • 4o processo \([601,800]\);
      • 5o processo \([801,1000]\);
      • 6o processo \([1001,1200]\);
    • O processo pai tem de esperar que TODOS os processos filho terminem
  8. Tendo um vetor de \(1000\) posições, faça um programa que crie 5 processos e:   prof_Orlando HOT
    • Dado um número, procurar esse número no vetor;
    • Cada processo filho, procura \(200\) posições;
    • O processo que encontrar o número, deve imprimir a posição do vetor onde se encontra. Também deve "retornar" como valor de saída o número do processo (1,2,3,4,5);
    • Os processos que não encontrarem o número devem "retornar" como valor de saída o valor \(0\);
    • O processo pai tem de esperar que todos filhos terminem e imprimir o número do processo onde esse número foi encontrado (1,2,3,4,5)

      NOTA: O vetor não possui números repetidos

1.6 Aula 6   22_fev exercicios

1.7 DONE Aula 7   24_fev avaliacao

1.8 Aula 8   01_mar

1.8.1 Vídeos complementares

1.8.2 Exercícios

  1. Lista pública no CD-MOJ
    • Resolva os exercícios propostos na lista pública do CD-MOJ.
    • Para ganhar credenciais de acesso à lista, envie uma mensagem para @mojinhobot, no telegram AQUI, com o conteúdo:

      participar bcr-FSO-2020_2-fixacao2
      
      • Os usuários são compartilhados com as listas de fixação de EDA2 e FSO
  2. Considere que tem definido na função main duas strings em que a primeira tem o seu primeiro nome e a segunda o último. Faça uma função que receba como parâmetros uma string e escreva essa string no monitor. Implemente um programa em que cada string é apresentada por um thread diferente.   prof_Orlando
  3. Considere que tem um array com cinco posições, sendo cada posição constituída pelo número, nome e morada. Faça uma função que recebe como parâmetros uma estrutura desse tipo e imprima o conteúdo dessa estrutura. Implemente um programa que crie 5 threads, "passando" como argumentos uma estrutura desse array (Ex: 0 primeiro thread fica com a primeira posição do array, etc.)   prof_Orlando
  4. Tendo um array de inteiros com 1200 posições, pretende-se calcular resultado[i] = dados[i]*4 + 20. Crie dois threads :   prof_Orlando
    • o primeiro thread calcula as primeiras 400 posições;
    • o segundo as seguintes 400;
    • o resto é calculado na função main
      • Depois dos cálculos terminarem, devem ser apresentados os valores no monitor (pode ser feito na função main).
  5. Dado um array de inteiros com mil posições, crie 5 threads:   prof_Orlando
    • Dado um número, procurar esse número no array.
    • Cada thread, procura 200 posições.
    • O thread que encontrar o número, deve imprimir a posição do array onde se encontra. Também deve "retornar" como valor de saída o número do thread (1, 2, 3, 4, 5).
    • Os threads que não encontrarem o número devem "retornar" como valor de saída o valor 0.
    • A função main tem de esperar que todos os threads terminem e imprimir o número do thread onde esse número foi encontrado (1, 2, 3, 4, 5).
      • Nota: O array não tem números repetidos.
  6. Faça um programa que crie 5 threads. Cada thread é responsável por calcular 200 posições do array resultado (resultado[i] = dados[i]*2+10). Os threads devem imprimir os resultados segundo a ordem do array.   prof_Orlando

1.9 Aula 9   03_mar semaforo mutex

Assista o vídeo abaixo, a partir dos 8 minutos (clicando em play, vai para a posição):

1.9.1 Complemente o conteúdo

1.9.2 Exercícios

  1. Leia o panorama geral de semáforos no linux sem_overview(7)
    • Execute o comando man 7 sem_overview
  2. Familiarize-se com as funções:
    • sem_init(3)
    • sem_wait(3)
    • sem_post(3)
    • sem_destroy(3)
    • sem_getvalue(3)
  3. Exercício sobre semáforo   prof_WagnerZola
    • Faça duas funções em linguagem C, que possam ser usadas por THREADS COOPERANTES. A função get_ticket() retorna um número inteiro positivo ÚNICO a qualquer thread que chamá-la. Protótipo:

      int get_ticket();
      

      A função return_ticket(int) deve receber "de volta" um ticket (número inteiro), supostamente obtido anteriormente via get_ticket(), de modo que esse ticket possa ser "reutilizado" por get_tickets subsequentes.

      void return_ticket(int t);
      
    • Mostre (explique) brevemente porque sua get_ticket() retorna inteiros ÚNICOS, i.e., nunca retorna valores repetidos.

      OBS: Caso seja necessário, sua get_ticket() pode ter um número máximo de tickets (NMAX), nesse caso, ele deve retornar \(-1\) para indicar que não pode mais retornar valores novos.

      Veja o vídeo abaixo, a partir do minuto 14:37, para ver a discussão do exercício. Mas assista somente após de tentar resolver o exercício.

  4. Resolva os exercícios da 2a lista de exerícios de fixação
  5. Tente implementar o exercício de multiplicação de matrizes com Threads, conforme descrito em AQUI (há um exemplo de solução)
    • Experimente com 2,4 e 8 threads.

1.10 Aula 10   08_mar

1.11 Aula 11   10_mar

  • Aula assíncrona para resolver os exercícios

1.12 Aula 12   15_mar

  • Aula síncrona para tirar dúvidas. Inicia às 16h30.

1.13 DONE Aula 13   17_mar avaliacao

  • Atividade de Avaliação 2

1.14 Aula 14   22_mar memória

1.15 Aula 15   24_mar

1.15.1 Material de Apoio

1.16 Aula 16   29_mar

1.17 Aula 17   31_mar

1.17.1 Exercícios

  1. Considere um sistema cuja gerência de memória é feita através de partições variáveis.
    • Nesse momento, existem as seguintes lacunas (áreas livres): 10K, 4K, 20K,18K, 7K, 9K, 12K e 13K, nessa ordem.
    • Quais espaços serão ocupados pelas solicitações: 4K, 10K e 6K, nessa ordem, se:
      • first-fit for utilizado?
      • best-fit for utilizado?
      • worst-fit for utilizado?
  2. Calcule o número de bits para página, quadro e deslocamento.
    • Memória lógica = 512K, Memória física = 512K, Tamanho de página = 8K
    • Tamanho de página = 4K, número de páginas = 8, número de quadros = 16
  3. O que é paginação?
  4. Qua é a diferença entre paginação e segmentação?
  5. Considere que os processos da tabela abaixo devem ser executados em um SO com paginação.
    • A memória total é de 64K, o tamanho das páginas é de 4K e o SO ocupa 8K. Mostre como seria a alocação de quadros para cada processo.
    Processo Mem. (K) T. Chegada T. Execução
    P1 8 0 10
    P2 6 1 15
    P3 15 2 10
    P4 5 3 14
    P5 10 15 5
  6. Qual a diferença entre fragmentação interna e externa da memória principal?
  7. Qual a principal diferença entre os sistemas que implementam paginação e segmentação?
  8. Para que serve o bit de validade nas tabelas de páginas e segmentos?
  9. Nos sistemas com paginação, a rotina para tratamento de page faults está residente na memória principal
    • Esta rotina pode ser removida da memória em algum momento?
    • O que aconteceria se esta rotina não estivesse na memória principal durante a ocorrência de um page fault?
  10. Descreva como ocorre a fragmentação interna em um sistema que implementa paginação
  11. Na figura abaixo está representada um esquema de paginação que utiliza 4 bits para índice da página e 12 bits para deslocamento.   prof_Islene

    questao-memoria-A17.png

    • Considerando esta tabela, indique para cada endereço virtual o endereço físico correspondente ou escreva page fault
      • 0010 0000 0000 0111
      • 0011 0000 1010 0000
      • 0100 0000 0000 0101
      • 1111 1111 1111 1111
      • 0000 0000 0000 0000
  12. Seria possível e/ou viável implementar as conversões de endereços realizados pelas MMU em software, ao invés de usar um hardware dedicado? Por quê?

1.18 Aula 18   05_abr

1.19 Aula 19   07_abr

  • Veja a aula abaixo a partir do minuto 38

1.19.2 Exercícios

  1. O que é memória virtual?
  2. Quais das seguintes técnicas e estruturas de programação são "boas" para um ambiente de paginação por demanda? Quais delas são "más"? Explique suas respostas.
    • pilha
    • Busca Sequencial
    • Busca Binária
    • Operações em vetor
    • Simulação
  3. Considere os seguintes algoritmos de substituição de páginas. Classifique estes algoritmos em uma escala de cinco pontos do "ruim" ao "perfeito" de acordo com a sua taxa de erros de página. Separe os algoritmos afetados pela anomalia de Belady daqueles que não o são.
    • Substituição LRU
    • Substituição FIFO
    • Substituição Ótima
    • Substituição da segunda chance
  4. Considere a seguinte sequência de referências de páginas:

    1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6

    • Quantos erros de pághinas iriam ocorrer para os seguintes algoritmos de substituição , considerando um, dois, três, quatro, cinco, seis ou sete quadros? Lembre-se de que todos os quadros estão inicialmente vazios, de modo que a primeira página de cada um implicará em um erro de página.
      • Substituição LRU
      • Substituição Ótima
      • Substituição do Relógio
      • Substituição WSClock
  5. Você consegue imaginar alguma situação em que dar suporte à memória virtual seria uma má ideia e o que se ganha quando não é necessário o suporte a memória virtual? Explique
  6. Exercícios do capítulo 3 do Tanembaum

1.20 Aula 20   12_abr

1.20.1 Material de Apoio

1.21 DONE Aula 21   14_abr avaliacao

  • Atividade de Avaliação 3

1.22 Aula 22   19_abr

1.23 Aula 23   21_abr feriado

1.24 Aula 24   26_abr

1.25 Aula 25   28_abr

1.25.1 Material de apoio

  • Livro de SO do Prof. Maziero DINF | ResearchGate
    • Leia e resolva os exercícios da Parte VI (Gestão de arquivos)
  • Apresentações de alunos a respeito de sistema de arquivos
  • Familiarize-se com as chamadas:
    • fopen(3), fclose(3), fprintf(3), fscanf(3)
    • fread(3), fwrite(3)
    • fclose(3)
    • open(2), read(2), write(2), close(2)

      Lembre-se que o número entre parenteses significa a página do manual acessado pelo comando man. Logo, para ler o manual da open(2) a chamada correta é man 2 open.

1.25.2 Exercícios

  1. A alocação contígua de arquivos leva a uma fragmentação do disco, explique como essa fragmentação ocorre
    • Essa fragmentação é interna ou externa?
    • Faça uma analogia com a gerência de memória
  2. É possível criar um link simbólico para um arquivo que não existe? E um hard link? Justifique a sua resposta
  3. Por que razão o sistema UNIX não permite hard links de diretórios?
  4. A respeito das imagens abaixo

    lista-ligada.png

    Figure 3: Lista Ligada

    fat.png

    Figure 4: FAT

    inode.png

    Figure 5: INODE

    • A figura 3 apresenta dois arquivos armazenados na forma de uma lista ligada de blocos em disco. A figura 4 apresenta estes mesmos arquivos em uma tabela de alocação em memória (tipo FAT - File Allocation Table). A figura 5 é um exemplo de i-node.
      • Compare e explique as vantagens e desvantagens de se utilizar o armazenamento dos arquivos por lista ligada e por tabela de alocação de memória.
      • Comente vantagens da utilização de i-nodes, como o representado na figura, sobre o uso das tabelas em memória
      • Para arquivos menores que um bloco (ou um i-node) qual é o desperdício no disco? Como o EXT4 minimiza esse impacto?
  5. O início de um mapa de bits do espaço livre parece-se com isto depois que a partição de disco é formatada pela primeira vez: 1000 0000 0000 0000 (o primeiro bloco é utilizado pelo diretório raiz). O sistema sempre busca blocos livres a partir do bloco com o menor número; assim, depois de escrever um arquivo A, que usa seis blocos, o mapa de bits se parece com isto: 1111 1110 0000 0000. Mostre o mapa de bits depois de cada uma das seguintes ações adicionais
    • O arquivo B é escrito, usando cinco blocos
    • O arquivo A é removido
    • O arquivo C é escrito, usando oito blocos
    • O aquivo B é removido
  6. O que aconteceria se o mapa de bits, ou lista de blocos livres contendo a informação sobre blocos de disco livres tivessem sido completamente perdidos em decorrência de um desastre? Há algum modo de recuperar o disco desse desastre ou adeus, disco? Discuta sua resposta, separadamente, para os sistemas de arquivos UNIX e para o FAT-12.
  7. Um certo sistema de arquivos usa blocos de disco de 2KB. O tamanho mediano do arquivo é de 1KB, qual a fração de espaço em disco que será desperdiçada? Você acha que o desperdício para um sistema de arquivos real será mai alto ou mais baixo que esse? Explique.

1.26 Aula 26   03_mai

1.26.1 MINITAR

Esboce os conceitos básicos para implementar o exercício abaixo, e inicie uma implementação básica. Reflita sobre os desafios e estratégias.

Você deve implementar um sistema de arquivamento de arquivos, onde deverá ser criado um arquivo único capaz de agregar diversos arquivos, mantendo seus nomes e atributos, além, de claro, seu conteúdo.

O uso comum do tar é por juntar arquivos em um único arquivão, e extrair todos ou um subconjunto dos arquivos guardados.

Para ver o uso comum do tar veja: https://pt.wikipedia.org/wiki/TAR

O formato padrão do TAR pode ser visto em: https://www.gnu.org/software/tar/manual/html_node/Standard.html

A sua implementação, simplificada, deverá conter os seguintes comandos:

  • Colocar vários arquivos (e diretórios), exemplo:
$ minitar -cf arquivao.mtar arquivo1.txt diretorio/
  • Listar os arquivos presentes no arquivo e seus tamanhos, veja um exemplo:

        $ minitar -tf arquivao.mtar
        arquivo1.txt 20MB
        diretorio/ (5 arquivos)
    foto.jpg 5MB
    notas.txt 4KB
    tcc1.tex 4KB
    tcc1.odt 1MB
    chat.c 200KB
    
    
  • Extrair os arquivos do arquivo. Neste comando os arquivos presentes no arquivao.mtar deverá ser extraído para o diretório corrente de execução, exemplo:
$ minitar -xf arquivao.mtar
$ ls
foto.jpg diretorio/
$ ls diretorio/
foto.jpg notas.txt tcc1.tex tcc1.odt chat.c
  1. Como você faria para armazenar os arquivos em sua estrutura de dados?
  2. A estratégia de armazenamento mudaria se o seu programa manipulasse somente arquivos TEXTO? E arquivos Binários?
  3. Qual a relação deste problema para o exercício String Dicionário?

1.27 Aula 27   05_mai

1.28 Aula 28   10_mai

  • Aula de dúvidas sob demanda.

1.29 DONE Aula 29   12_mai avaliacao

  • Atividade de Avaliação 4

1.30 Aula 30   17_mai

1.31 Aula 31   19_mai

  • Finalização da disciplina e notas disponibilizadas

2 Antes de Começar

Nesta disciplina é esperado que o aluno tenha conhecimento básico da linguagem C tais como:

  • Ponteiros
  • Strings
  • Leitura da Entrada padrão

As subseções abaixo elencam alguns vídeos que recaptulam o conhecimento necessário.

2.1 Material no Youtube

Vídeos com material relacionado ao conteúdo esperado para uso na disciplina.

Tenho disponibilizado vários materiais em meu canal no YouTube, por favor, considere assinar o canal e deixar o joinha :)

2.1.1 Revisão de Ponteiros

Segue abaixo a playlist da revisão de ponteiros no Youtube. Por ora são 5 vídeos que exploram o que é necessário saber para a disciplina de EDA-2.

2.1.2 Strings em C

Aqui um apanhando geral em como se manipula strings na linguagem C. Em uma série que chamei de "Umas Palavras sobre String"

2.1.3 SCANF

O SCANF é uma poderosa função capaz de ler dados da entrada padrão (e de outros arquivos com suas aliases como fscanf(3).

Na série Detonando o SCANF temos, além do uso básico da função abordo algumas curiosidades sobre as funções.

3 Plano de Aulas

O plano de ensino e plano de aulas é um PLANO e pode sofrer modificações ao longo do semestre de acordo com o rendimento da turma.

Curso: Engenharia de Software Período Letivo 2020/2
Disciplina: F. Sistemas Operacionais Código  
Carga Horária: 60 horas Créditos 04

3.1 Ementa

  1. Princípios e características dos sistemas operacionais
    • Conceitos
    • Estrutura
    • Chamadas de sistema
  2. Gerencia de processos e threads, gerencia de memória
    • escalonamento
    • concorrência
    • deadlock
  3. Gerencia de dispositivos de entrada e saída
    • princípios de hardware e software de E/S
    • discos
    • relógios
  4. Sistemas de arquivos
    • arquivos
    • diretórios
    • gerenciamento de espaço em disco
    • consistência do sistema de arquivos
  5. Segurança e proteção
    • criptografia
    • autenticação de usuário
    • ataques
  6. Virtualização.

3.2 Horários das aulas e atendimento

3.3 Método

Aula expositiva por meio de vídeos no Youtube (gravados ou em live stream), conversas periódicas em vídeo conferências com os alunos nos horários das aulas, quadro branco (representado pelo tablet), listas de exercícios.

3.4 Critérios de Avaliação

  • A avaliação será baseada nas notas de quatro avaliações, denotados, respectivamente, por \(A_1,A_2,A_3,A_4\)
    • As notas serão compostas por um número inteiro no intervalo \([0,100]\);
  • As avaliações serão compostas por questões, podendo ser, a critério do professor, teóricas e/ou práticas
    • O método de entrega será combina previamente com os alunos, podendo ser realizada por meio: do corretor automático MOJ; questionários no sistema SIGAA e/ou; submissão por e-mail para o professor;
  • Será aplicada uma avaliação de reposição ao final do semestre para o aluno que necessite faltar uma das avaliações, desde que seja justificada previamente e seja corerente com aspectos legais que justifiquem a ausência;
  • Qualquer tentativa de fraude nas provas implicará em média ZERO no semestre para todos os envolvidos.

3.4.1 Presença

A presença na disciplina se dará pela execução e entrega de exercícios determinados pelo professor.

Durante o semestre será disponibilizado diversas listas de presenças com prazos de entrega específicos que contemplarão as atividades que devem ser entregues para receber a presença nas datas específicas.

A entrega DENTRO do prazo é obrigatória para todos os alunos.

A presença será computada pela soma das atividades.

3.4.2 Menção Final

As notas serão calculadas conforme a equação abaixo:

\begin{align} M_F = \frac{A_1 + 2\cdot A_2 + 3\cdot A_3 + 4\cdot A_4}{10} \end{align}

3.4.3 Critérios de aprovação

Obterá aprovação no curso o aluno que cumprir todas as exigências listadas abaixo:

  1. \(M_F >= 50\); e
  2. Presença em \(75\%\) ou mais das aulas.

Por fim, a menção final do curso é dada de acordo com a tabela abaixo:

\(M_F\) Menção Descrição
\(0\) SR Sem rendimento
\([1,29]\) II Inferior
\([30,49]\) MI Médio Inferior
\([50,69]\) MM Médio
\([70,89]\) MS Médio Superior
\([90,100]\) SS Superior

3.5 Cronograma

Data Atividade
Semana 1 Introdução ao conceito de sistemas operacionais
Semanas {2,3} Gerência de Processos
22/Fev Avaliação 1
Semanas {4,5,6} Processos e Threads
15/Mar Avaliação 2
Semanas {7,8,9,10} Gerenciamento de memória
12/Abr Avaliação 3
Semanas {11,12,13,14} Sistema de Arquivos
Semanas {15,16} Virtualização, Segurança e Proteção
10/Maio Avaliação 4

3.6 Bibliografia

  • SILBERSCHATZ, A.; GAGNE, G.; GALVIN, P.B. Obra: Operating System Concepts Editor: Wiley Edição 8, Ano: 2008
  • TANENBAUM, A.S. Obra: Sistemas Operacionais Modernos Editor: Pearson Edição 3, Ano: 2010
  • DEITEL, H.M., DEITEL, P.J. e CHOFFNES,D.R. Obra: Sistemas Operacionais. Editor: Prentice Hall Edição 3, Ano: 2005
  • SILBERCHATZ, A.; GAGNE, G.; GALVIN, P.B. Obra: Sistemas operacionais com Java Editor: Campus. Edição: 7, Ano: 2008
  • Tanenbaum, Andrew S., and Albert S. Woodhull. Operating Systems Design and Implementation. Pearson, 3, edition, 2006.
  • Mitchell, Mark, Jerey Oldham, and Alex Samuel. Advanced linux programming. New Riders, 2001.
  • SILBERCHATZ, A.; GAGNE, G.; GALVIN, P.B., Sistemas operacionais com Java, Campus, 7 a Ed, 2008.
  • MACHADO, F.B., MAIA, L.P. ”Arquitetura de Sistemas Operacionais”, 4a edição, LTC, 2007.ISBN: 8521615485,

ISBN-13: 9788521615484.

  • SHAY, W., Sistemas Operacionais, Makron Books, 1996
  • DAVIS, W. Sistemas Operacionais,: uma visão sistemática, Campus, 1991

4 Presença

| FEVEREIRO            | MARÇO                         | ABRIL                | MAIO              | %pres | Matrícula |
| 01 03 08 10 17 22 24 | 01 03 08 10 15 17 22 24 29 31 | 05 07 12 14 19 26 28 | 03 05 10 12 17 19 | ----- | --------- |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180096991 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 190063441 |
| X  X  X  X  X  X  X  | -  -  -  -  -  -  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    80 | 170056155 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180013637 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180117548 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 150120702 |
| X  X  X  X  X  X  -  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    96 | 170085023 |
| X  X  X  X  X  X  X  | -  -  -  -  -  -  -  -  -  -  | X  X  X  -  X  X  X  | X  X  X  -  X  X  |    60 | 150121148 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180015222 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180015311 |
| X  X  X  X  X  X  -  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    96 | 170161871 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 160005191 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180113151 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180015834 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180015966 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170033066 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  -  -  -  -  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    86 | 180119818 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180063723 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  -  -  -  -  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    86 | 180016491 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180100840 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 150166320 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180016938 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170011020 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170011267 |
| X  X  X  X  X  X  -  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    96 | 180101617 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180018159 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170144488 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180018574 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180018604 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  -  -  -  -  | X  X  X  -  X  X  X  | X  X  X  -  X  X  |    80 | 170105342 |
| X  X  X  X  X  X  X  | -  -  -  -  -  -  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    80 | 170069800 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170013651 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180033743 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170013987 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180020251 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180124099 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180113861 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180021974 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180125770 |
| X  X  X  X  X  X  X  | -  -  -  -  -  -  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    80 | 170039668 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180114077 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180023411 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180145231 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170150747 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 150017502 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180106821 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180127641 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  -  -  -  -  | X  X  X  -  X  X  X  | X  X  X  -  X  X  |    80 | 140155350 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180106970 |
| X  X  X  X  X  X  -  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    96 | 140156909 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170051277 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  -  -  -  -  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    86 | 170122468 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170122549 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  -  -  -  -  | X  X  X  -  X  X  X  | X  X  X  -  X  X  |    80 | 140158278 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170020461 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180129287 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170062686 |
| X  X  X  X  X  X  -  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    96 | 180011308 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 160141842 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  -  -  -  -  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    86 | 180027239 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170021581 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170021751 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180028260 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180028308 |
| -  -  -  -  -  -  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    80 | 180028324 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170164411 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  -  -  -  -  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    86 | 180055241 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180028685 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180132245 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 170115500 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180029177 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 | 180029223 |
| X  X  X  X  X  X  X  | -  -  -  -  -  -  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    80 | 170047326 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  -  -  -  -  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |    86 | 160032903 |
| X  X  X  X  X  X  X  | X  X  X  X  X  X  X  X  X  X  | X  X  X  X  X  X  X  | X  X  X  X  X  X  |   100 |    MÁXIMO |

5 Notas

  • AVx são as avaliações
  • PP é a porcentagem de presença (consolidada nesta tabela no fim do semestre)
    • Na seção anterior você pode ver o acompanhamento das presenças
  • situação é a situação final na disciplina, gerada após todas avaliações
  • As penalidades nas avaliações são relativas às chamadas ao getlog do MojinhoBot
matricula PP AV1 AV2 AV3 AV4 MM situacao nome
180096991 100 100= 100 100= 100 100= 100 080= 080 92 SS **
190063441 100 100= 100 100= 100 100= 100 100= 100 100 SS **
170056155 80 100= 100 ** 096= 096 100= 100 78 MS **
180013637 100 100= 100 100= 100 090= 090 100= 100 97 SS **
180117548 100 100= 100 000= 000 090= 090 100= 100 77 MS **
150120702 100 100= 100 000= 000 066= 066 087= 087 64 MM **
170085023 96 000= 000 000= 000 100= 100 027= 027 41 MI **
150121148 60 100= 100 000-10= 000 ** ** 10 SR **
180015222 100 100= 100 100= 100 100= 100 080= 080 92 SS **
180015311 100 100= 100 100= 100 100= 100 080= 080 92 SS **
170161871 96 ** 000= 000 080= 080 081= 081 56 MM **
160005191 100 100= 100 100= 100 100= 100 100= 100 100 SS **
180113151 100 100= 100 100= 100 090= 090 100= 100 97 SS **
180015834 100 100= 100 100= 100 096= 096 100= 100 98 SS **
180015966 100 100= 100 000= 000 090= 090 080= 080 69 MS **
170033066 100 100= 100 000= 000 080= 080 100= 100 74 MS **
180119818 86 100= 100 000= 000 070= 070 080= 080 63 MM **
180063723 100 040= 040 100= 100 080= 080 087= 087 82 MS **
180016491 86 100-10= 090 ** 080= 080 082= 082 65 MM **
180100840 100 100= 100 100= 100 100= 100 100= 100 100 SS **
150166320 100 100= 100 100= 100 100= 100 100= 100 100 SS **
180016938 100 100= 100 100= 100 100= 100 100= 100 100 SS **
170011020 100 100= 100 100= 100 100= 100 080= 080 92 SS **
170011267 100 100= 100 100= 100 080= 080 080= 080 86 MS **
180101617 96 000= 000 000= 000 100= 100 080= 080 62 MM **
180018159 100 040-10= 030 000= 000 080= 080 100= 100 67 MM **
170144488 100 040= 040 100= 100 096= 096 100= 100 92 SS **
180018574 100 100= 100 100= 100 096= 096 081= 081 91 SS **
180018604 100 100= 100 100= 100 100= 100 100= 100 100 SS **
170105342 80 040= 040 000= 000 ** ** 4 MI **
170069800 80 100= 100 000= 000 080= 080 100= 100 74 MS **
170013651 100 100= 100 000= 000 040= 040 100= 100 62 MM **
180033743 100 040= 040 100= 100 090= 090 100= 100 91 SS **
170013987 100 040= 040 ** 090= 090 100= 100 71 MS **
180020251 100 100= 100 000= 000 100= 100 080= 080 72 MS **
180124099 100 100= 100 100= 100 096= 096 085= 085 92 SS **
180113861 100 100= 100 100= 100 096= 096 100= 100 98 SS **
180021974 100 100= 100 100= 100 100= 100 100= 100 100 SS **
180125770 100 040= 040 000= 000 100= 100 100= 100 74 MS **
170039668 80 100= 100 000= 000 086= 086 100= 100 75 MS **
180114077 100 100= 100 100= 100 090= 090 100= 100 97 SS **
180023411 100 040= 040 100= 100 100= 100 100= 100 94 SS **
180145231 100 040= 040 ** 100= 100 020= 020 42 MI **
170150747 100 040= 040 000= 000 096= 096 100= 100 72 MS **
150017502 100 100= 100 100= 100 090= 090 100= 100 97 SS **
180106821 100 100= 100 100= 100 096= 096 080= 080 90 SS **
180127641 100 100= 100 100= 100 096= 096 085= 085 92 SS **
140155350 80 040= 040 000= 000 ** ** 4 MI **
180106970 100 100= 100 100= 100 100= 100 100= 100 100 SS **
140156909 96 040= 040 100= 100 095= 095 080= 080 84 MS **
170051277 100 100= 100 000= 000 080= 080 100= 100 74 MS **
170122468 86 040= 040 ** 070= 070 082= 082 57 MM **
170122549 100 040= 040 100= 100 100= 100 100= 100 94 SS **
140158278 80 100= 100 000= 000 ** ** 10 MI **
170020461 100 100= 100 000= 000 080= 080 080= 080 66 MM **
180129287 100 100= 100 100= 100 100= 100 100= 100 100 SS **
170062686 100 100= 100 100= 100 100= 100 080= 080 92 SS **
180011308 96 000= 000 ** 060= 060 020= 020 26 MI **
160141842 100 100-05= 095 100= 100 086= 086 100= 100 95 SS **
180027239 86 100= 100 100= 100 000= 000 100= 100 70 MS **
170021581 100 100= 100 000= 000 020= 020 081= 081 48 MI **
170021751 100 100= 100 100= 100 100= 100 100= 100 100 SS **
180028260 100 100= 100 100= 100 070= 070 100= 100 91 SS **
180028308 100 100= 100 100= 100 100= 100 100= 100 100 SS **
180028324 80 040= 040 100= 100 100= 100 100= 100 94 SS **
170164411 100 040= 040 000= 000 080= 080 100= 100 68 MM **
180055241 86 100= 100 000= 000 080= 080 100= 100 74 MS **
180028685 100 040= 040 100= 100 100= 100 100= 100 94 SS **
180132245 100 100= 100 100= 100 096= 096 080= 080 90 SS **
170115500 100 100= 100 100= 100 100= 100 100= 100 100 SS **
180029177 100 100= 100 100= 100 100= 100 100= 100 100 SS **
180029223 100 100= 100 100= 100 100= 100 100= 100 100 SS **
170047326 80 100= 100 ** 080= 080 087= 087 68 MM **
160032903 86 100= 100 100= 100 100= 100 100= 100 100 SS **
média ** 81 64 88 90 ** ** Média da turma

Author: Bruno Ribas

Created: 2021-05-14 Fri 11:51

Validate