Mudanças entre as edições de "SCC0215012018 Trabalho Prático (cdac)"

De CoteiaWiki
Linha 11: Linha 11:
  
 
'''TURMA B.''' Política de Gerenciamento de Buffer-pool <br>
 
'''TURMA B.''' Política de Gerenciamento de Buffer-pool <br>
Grupo 01. Política:  <br>
+
Grupo 01. Política:  MRU<br>
Grupo 02. Política:  <br>
+
Grupo 02. Política:  LFU<br>
Grupo 03. Política:  <br>
+
Grupo 03. Política:  FIFO<br>
Grupo 04. Política:  <br>
+
Grupo 04. Política:  SCA<br>
Grupo 05. Política:  <br>
+
Grupo 05. Política:  LIFO<br>
Grupo 06. Política:  <br>
+
Grupo 06. Política:  NRU<br>
Grupo 07. Política:  <br>
+
Grupo 07. Política:  LRU<br>
Grupo 08. Política: <br>
+
Grupo 08. Política: S2Q <br>
  
 
[[Media:SCC0215012018projeto01a.pdf|Especificação da primeira parte do trabalho prático]] '''ATUALIZADO'''<br>
 
[[Media:SCC0215012018projeto01a.pdf|Especificação da primeira parte do trabalho prático]] '''ATUALIZADO'''<br>

Edição das 18h56min de 21 de maio de 2018

A descrição do trabalho prático será realizada durante o andamento da disciplina.


Trabalho Prático - Turmas A e B

Especificação da segunda parte do trabalho prático

Data de entrega da segunda parte do trabalho prático: 13 de junho de 2018, até as 23h59m.
Instruções: as instruções de entrega encontram-se no documento de especificação da primeira parte do trabalho prático.

TURMA B. Política de Gerenciamento de Buffer-pool
Grupo 01. Política: MRU
Grupo 02. Política: LFU
Grupo 03. Política: FIFO
Grupo 04. Política: SCA
Grupo 05. Política: LIFO
Grupo 06. Política: NRU
Grupo 07. Política: LRU
Grupo 08. Política: S2Q

Especificação da primeira parte do trabalho prático ATUALIZADO
Exemplo em C de leitura e escrita na saída padrão
Especificação dos arquivos .csv
Dados de entrada para a Turma A
Dados de entrada para a Turma B

Data de entrega da primeira parte do trabalho prático: 09 de maio de 2018, até as 23h59m.
Instruções: as instruções de entrega encontram-se no documento de especificação da primeira parte do trabalho prático.
Contato (Turma B): Matheus Carvalho [mcarvalhor@usp.br]
Contato (Turma A): Gabriel Kanegae [gabriel.kanegae@usp.br]

Turma A: Grupos
Turma B: Grupos




Template de documentação usando o LaTeX




Frequently asked questions (FAQ)


Pergunta. Como determinar se um registro foi removido ou não?
Resposta. Devido a limitação de diferenciar caracteres por meio da tabela ASCII (usar o caracter * para denotar registros removidos não é o suficiente pois ao ler o primeiro byte de um registro pode-se pensar que o registro foi removido sendo que ele é um registro válido). Para evitar esse problema a ideia é simbolizar o registro removido com um inteiro negativo (i.e., -1) que ocupa 4 bytes (esse tipo de valor nunca fará parte do domínio do primeiro campo de ambas as turmas). Dessa forma, lê-se os 4 primeiros bytes (assim como leria o primeiro campo normal de um registro), se for -1 significa que o registro foi removido, caso contrário o registro é válido. O próximo elemento de um registro removido indica a continuação do empilhamento dos RRNs de registros removidos (ou seja, comportamento como visto em aula). Sabendo disso, já leria esses 4 bytes do empilhamento de maneira correta (ao invés dos outros caracteres do segundo campo).


Pergunta. Como os valores nulos devem ser mostrados na saída padrão e como eles são passados para a entrada do programa?
Resposta. Para exibir valores nulos armazenados em um campo fixo deve-se mostrar o caracter 0 até a capacidade do respectivo campo. Por exemplo, para a turma A se o campo fixo dataFinal de um registro for nulo, deve-se mostrar a seguinte sequencia de caracteres 0000000000 (ou seja, 10 vezes o caracter 0). Já para a turma B se o campo fixo uf de um registro for nulo, deve-se mostrar a seguinte sequencia de caracteres 00 (ou seja, 2 vezes o caracter 0). Se um campo de tamanho variável tiver valor nulo, ele não deverá ser mostrado em nenhuma forma e sim somente o seu indicador de tamanho (que será 0).
Exemplo de exibição de um registro contendo campos nulos (dataFinal e municipio são nulos)- Turma A:
35000012 01/02/2012 0000000000 24 AYRES DE MOURA PROFESSOR 0 17 RUA ARTUR ORLANDO
Exemplo de exibição de um registro contendo campos nulos (dataAtiv e nomeEscola são nulos)- Turma B:
31031917 0000000000 MG 0 7 ARAUJOS 4 CTBC
Note que a exibição de registros faz parte das funcionalidades 2, 3 e 4.

Para capturar da tela um registro contendo campos nulos vale a especificação do trabalho. Ou seja, caso o valor de um campo seja uma string (seja o campo fixo ou variável), ela deve estar entre aspas simples (por exemplo, 'SAO PAULO'). Caso o valor seja nulo, ele deve ser identificado como 0 para os campos de tamanho fixo (sem aspas) e como para os campos de tamanho variável (aspas simples vazia). Não é necessário realizar o tratamento de truncamento de dados. Exemplos de entrada de registros com campos nulos pode ser vista na especificação das funcionalidades 6 e 7.


Pergunta. Como deve ser realizada a desfragmentação eficiente?
Resposta. Outro arquivo vazio deve ser aberto para acomodar os registros que não foram removidos no arquivo original (ou seja, varredura sequencial no arquivo de dados original). Depois da escrita de todos os registros no novo arquivo, o arquivo antigo deve ser removido (ver o comando remove() em C) e depois o nome do arquivo novo deve ser renomeado para o mesmo nome do arquivo antigo (ver o comando rename() em C).

Menu de Opções

SCC0215 - Organização de Arquivos - Profa. Dra. Cristina D. A. Ciferri
SCC0215012018 Descrição do Curso (cdac)
SCC0215012018 Calendário de Aulas (cdac)
SCC0215012018 Material Didático (cdac)
SCC0215012018 Listas de Exercícios (cdac)
SCC0215012018 Exercícios de Sala de Aula (cdac)
SCC0215012018 Trabalho Prático (cdac)