• Nenhum resultado encontrado

Sistemas Operativos, 3. o MIEIC 2009/10, FEUP

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Operativos, 3. o MIEIC 2009/10, FEUP"

Copied!
5
0
0

Texto

(1)

Sistemas Operativos, 3.

o

MIEIC 2009/10, FEUP

– RMA, JVV, HSF –

December 20, 2009

2.

o

Trabalho Pr´

atico: SO Shell Stats (sosh s)

Objectivos

Completando com sucesso todas as fases deste trabalho, os alunos demonstram conhecer e saber utilizar a interface program´atica de UNIX para:

• criar programas multithread;

• promover a intercomunica¸c˜ao entre processos atrav´es de canais com nome (named pipes);

• evitar conflitos entre entidades concorrentes, por via de mecanismos de sincroniza¸c˜ao.

Descri¸

ao

Pretende-se obter uma aplica¸c˜ao do tipo cliente-servidor capaz de lidar com situa¸c˜oes de conflito no acesso a zonas (recursos) partilhadas. A aplica¸c˜ao cliente ser´a a sosh, desenvolvida no trabalho pr´atico 1, que ser´a estendida para comu-nicar com um servidor (freq). A aplica¸c˜ao servidor n˜ao ser´a interactiva (toda a comunica¸c˜ao com ela deve ser feita via comandos da sosh), e tem como objectivo guardar informa¸c˜ao necess´aria para o c´alculo da an´alise de frequˆencia de letras. Este ´e um m´etodo simples para decifrar mensagens criptografadas por meio da an´alise, no texto criptografado, de padr˜oes que se repetem constantemente1. O

trabalho a desenvolver consiste nos seguintes pontos:

1. Estenda a sosh implementada no trabalho pr´atico anterior para enviar para um canal com nome (named pipe), /tmp/sosh.canal, todos os comandos introduzidos pelo utilizador bem como os resultados dos mesmos. Dever´a criar dois processos: um para executar o comando e outro para comunicar com o named pipe;

(2)

2. Desenvolva um programa freq que lˆe do canal com nome /tmp/sosh.canal uma linha de texto (use o c´odigo disponibilizado no anexo A para ler uma linha de um descritor de ficheiro) e actualize a estrutura de dados com a frequˆencia das letras. O programa dever´a aceitar, atrav´es da linha de co-mandos, a op¸c˜ao ‘-v’ que far´a com que envie para o ecr˜a mensagens sempre que iniciar uma opera¸c˜ao. Dever´a ainda imprimir a lista de frequˆencias ap´os serem actualizadas;

Sugest˜ao:

• N˜ao distinga entre letras ma´ıusculas e min´usculas, ou seja, freq n˜ao ´e case sensitive;

• A estrutura de dados dever´a ser um array de inteiros;

• Para efeitos do c´alculo das frequˆencias, considere somente as le-tras do alfabeto latino, ignorando todas as oule-tras (ver http://pt. wikipedia.org/wiki/Alfabeto_latino).

3. Desenvolva o comando stats que dever´a listar em ordem crescente as frequˆencias das letras at´e ao momento. O resultado a ser impresso no ecr˜a dever´a ser enviado ao cliente (sosh s) pelo servidor (freq) atrav´es do named pipe /tmp/sosh.results. Sendo que pretende as frequˆencias at´e ao momento em que o comando foi invocado, n˜ao ´e permitido alterar os valores das estruturas de dados durante a computa¸c˜ao do ranking de frequˆencias.

Sugest˜ao:

• Para facilitar a distin¸c˜ao entre o que ´e um comando e texto normal, crie um named pipe /tmp/sosh.cmd para enviar comandos ao servi-dor. O servidor poder´a possuir um processo (ou thread) para ler dos named pipes /tmp/sosh.canal e /tmp/sosh.cmd.

4. Altere o programa freq por forma a conseguir processar do named pipe v´arias linhas de texto ao mesmo tempo (usando pthreads). O n´umero de threads a ser criado dever´a ser passado ao programa atrav´es da linha de comandos (“-t <num>”). Cada linha no named pipe s´o dever´a ser processada uma ´unica vez.

5. Desenvolva o comando realtime <on/off> que dever´a notificar o utilizador da sosh s que o top 5 de letras mais frequentes sofreu uma altera¸c˜ao. Naturalmente, se o realtime estiver off (estado por defeito) o utilizador n˜ao ser´a informado.

Sugest˜ao:

• Use o named pipe /tmp/sosh.results para a comunica¸c˜ao do top 5 se este sofrer alguma altera¸c˜ao. Crie um processo que leia da named pipe /tmp/sosh.results o resultado e imprima no ecr˜a (usando unnamed pipes).

(3)

Valoriza¸

ao

Quem desejar obter o m´aximo da classifica¸c˜ao estabelecida para este trabalho poder´a estender sosh s (vers˜ao b) por forma que possa suportar as seguintes op¸c˜oes

• Dotar a sosh (e se necess´ario freq) com os mecanismos necess´arios para que seja poss´ıvel recolher informa¸c˜ao das v´arias shells;

• s hist [n] - crie e apresente no ecr˜a um histograma com a frequˆencia das diferentes letras; se o for invocado sem argumentos, dever´a apresentar o histograma de todas as letras, caso contr´ario somente o top n.

Aquando da gera¸c˜ao do histograma, nenhum processo poder´a aceder `a estrutura de dados. Fa¸ca uso da biblioteca Histograms da GNU Scientific Library ou do gnuplot para visualizar os histogramas.

Produto final

O trabalho total consiste na produ¸c˜ao de ficheiro .tgz incluindo o c´odigo fonte, um makefile preparado para facilitar a gera¸c˜ao do execut´avel, e um ficheiro de texto README com os passos necess´arios para compilar e executar o c´odigo. Dever˜ao tamb´em de entregar um breve relat´orio (inclua no relat´orio um esquema exemplificativo dos canais de comunica¸c˜ao e acessos as estrutura de dados) em formato pdf. O compacto, identificado com um nome do tipo TPnGX.tgz, onde n ´e o n´umero do turno pr´atico que est˜ao inscritos e X ´e o n´umero atribu´ıdo ao grupo pelo docente das te´orico-pr´aticas (e.g. TP1G2.tgz), deve ser entregue usando as facilidades dispon´ıveis para a unidade curricular no moodle (http: //moodle.fe.up.pt/0910/) at´e ao final do dia 13/12/2009.

Avalia¸

ao

A classifica¸c˜ao do trabalho ser´a repartida em 90% para o programa normal e 10% para a parte de valoriza¸c˜ao. O programa normal ser´a classificado relativamente aos seguintes aspectos: programa¸c˜ao, incluindo estrutura, coment´arios, fun-cionalidades, etc. (60%); relat´orio curto, que deve consistir na apresenta¸c˜ao dos objectivos, estrutura trabalho, testes, conclus˜ao e declara¸c˜ao de autoria (20%); apresenta¸c˜ao, brevemente efectuada pelos autores ao docente que apre-ciar´a, ele mesmo, na altura, as facilidades de compila¸c˜ao, utiliza¸c˜ao, etc. (20%).

odigo de Honra

Espera-se que cada grupo obtenha a sua nota baseada exclusivamente no esfor¸co e trabalho dos elementos do grupo. Consequentemente qualquer forma de pl´agio, constitui uma fraude inaceit´avel. Estes comportamentos n˜ao ser˜ao tolerados e os alunos ser˜ao punidos de acordo com a regulamenta¸c˜ao da FEUP.

Bom trabalho! RMA, JVV, HSF.

(4)

A

O m´

odulo readline

• readline.h 1 /∗ ∗ r e a d l i n e . h − r e a d l i n e command module 3 ∗/ 5 #i f n d e f READLINE H #d e f i n e READLINE H 7 s s i z e t r e a d l i n e ( i n t f d , void ∗ v p t r , s i z e t maxlen ) ; 9 #e n d i f • readline.c /∗ 2 ∗ r e a d l i n e . c − r e a d l i n e command module ∗/ 4 #include < s t d i o . h> #include <s y s / t y p e s . h> 6 #include <s y s / s t a t . h> #include < f c n t l . h> 8 #include ” r e a d l i n e . h” 10 s s i z e t r e a d l i n e ( i n t f d , void ∗ v p t r , s i z e t maxlen ) { 12 s s i z e t n , r c ; char c , ∗ p t r ; 14 p t r = v p t r ; 16 f o r ( n = 1 ; n < maxlen ; n++) { i f ( ( r c = r e a d ( f d , &c , 1 ) ) == 1 ) { 18 ∗ p t r++ = c ; i f ( c == ’ \n ’ ) 20 break ; } e l s e i f ( r c == 0 ) { 22 i f ( n == 1 ) return ( 0 ) ; /∗ EOF, no d a t a r e a d ∗/ 24 e l s e

break ; /∗ EOF, some d a t a was r e a d ∗/

26 } e l s e return ( −1) ; /∗ e r r o r ∗/ 28 } 30 ∗ p t r = 0 ; return ( n ) ; 32 } 34 void example ( ) {

(5)

i n t f p ; 36 i n t l ; char b u f [ 2 5 5 ] ; 38 f p = open ( ” p i p e ” , O RDONLY) ; 40 l = r e a d l i n e ( f p , buf , 2 4 4 ) ; p r i n t f ( ” r e a d \n\ t %s \n” , b u f ) ; 42 c l o s e ( f p ) ; }

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

•   O  material  a  seguir  consiste  de  adaptações  e  extensões  dos  originais  gentilmente  cedidos  pelo 

Podem treinar tropas (fornecidas pelo cliente) ou levá-las para combate. Geralmente, organizam-se de forma ad-hoc, que respondem a solicitações de Estados; 2)

No entanto, para aperfeiçoar uma equipe de trabalho comprometida com a qualidade e produtividade é necessário motivação, e, satisfação, através de incentivos e política de

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças