[Música] olá vamos começar com a nossa aula de número 21 sobre sistemas operacionais e dentro do assunto de entrada e saída a gente nas aulas anteriores vimos eh sobre o gerenciamento de memória quando a gente concluiu o com os algoritmo de substituição de páginas tá quando há uma falta de páginas então a gente eh utiliza um algoritmo caso uma página venha a ser substituída E qual seria a página que vai ser substituída essa página substituída essa página selecionada para sair da memória principal então era era o a página que era seria selecionado pelos algoritmos de
substituição de páginas tá hoje a gente terminou a parte de gerenciamento de memória e agora a gente vai falar sobre entrada e saída por que que a gente vai falar sobre entrada e saída primeiro porque a entrada e saída ela vai servir de suporte pro manuseio do sistema de arquivos assim a gente vai iniciar Então as nossas quatro próximas aulas falando sobre os dispositivos de entrada e saída enfim o sistema de entrada e saída que será o assunto para dar suporte tá pras próximas aulas que será o sistema de arquivos bom então Eh falando de
entrada e saída a gente já iniciou o o curso dizendo as funcionalidades dos sistemas operacionais que seri a interface e o gerenciamento de eh recursos esses recursos podem ser CPU quando a gente iniciou a falar de processo pode ser a memória assim como os dispositivos de entrada e saída o dispositivo de entrada e saída eles têm uma eh são são assim são recursos limitados e como são recursos limitados eles precisam ser devidamente compartilhados entre o quê entre os processos que estão ali eh executando e utilizando esses recursos concorrentemente tá então esse é o seria o
assunto Tá da de entrada e saída que seria como é que a gente compartilha né os recursos tá que seriam os dispositivos de entrada e saída como discos tá Ah os dispositivos aí pend drive impressoras né esses dispositivos podem ser tanto de entrada como disposit iOS aí de saída né então como eh só citando aqui além de processos rans que a gente viu em aulas eh anteriores agora o so também controla o quê controla os dispositivos de entrada e saída tá os o sistemas operacionais eles devem emitir né comandos para eh ler escrever em um
dispositivo de entrada e saída assim como interceptar interrupções a gente viu que interrupções é o quê interrupção é um sinal que chega no na CPU para indicar o quê para indicar um evento que a CPU ela deve dar atenção então a gente falou uma ilustração aí de uma criança né que recebe aí uma picada de abelha enquanto um um pai né tá fazendo né ou confeccionando ali um bolo então ele segue ali uma instrução um algoritmo para fazer o bolo de repente ele ouve o qu ele ouve o choro de uma criança interrupção aí pessoal
recebeu o qu recebeu um sinal de alerta de um evento que ele vai ter que tratar então ele percebe que o evento que tá sendo chamado ali é um evento mais importante que seria tratar da criança então ele vai ver o manual dos primeiros socorros e vai seguir as instruções desse anual para que então ele possa tratar dessa criança voltando para cá a gente tem o quê A gente tem uma coisa chamada interrupção o sistema operacional ele recebe a obviamente através da CPU ele recebe a instrução de que recebeu uma interrupção que seria o quê
que seria um evento que evento pode ser esse a chegada dos dados paraa leitura eh do disco então emite-se uma instrução de leitura o disco realiza a leitura e após a após o término da Leitura os o disco a controladora de disco ela vai mandar uma interrupção indicando que o a solicitação que fora realizada foi concluída então Isso se chama o quê Isso se chama interrupções tá como a gente viu então aí em aulas eh eh nas primeiras aulas tá bom além de interceptar essas interrupções ele também deve ser capaz de quê capaz de tratar
os erros tá uma leitura no disco ela pode vir de quê ela pode vir de erros assim como dados provenientes né de uma de uma rede internet ela pode vi acompanhar de erros os dispositivos também podem o quê podem ocasionar erros então esses erros elas devem ser o quê elas devem ser tratadas de forma então a solucionar a o erro que foi gerado tá e muito importante né a o sistema de entrada saída ela deve fornecer uma interface única uma interface única ou melhor dizendo uma API né uma API que seja única de forma aí
que o sistema operacional possa prover um conjunto de quê um conjunto de operações que eh possam ser fornecidas pro usuário ou pros drivers né desenvolvedores de drivers e assim eh permitir a o controle né e de forma organizada e única para todos os dispositivos de entrada e saída tá então boa parcela do sistema operacional do Kern do sistema operacional corresponde o quê corresponde aos drivers e muito importante também a maior parte tá do tempo de um sistema comput acional ocorre aonde ocorre justamente aonde justamente nesse eh nesses dispositivos de entrada e saída a computação o
processamento né são são o quê são instruções bastante rápidas por quê Porque elas ocorrem dentro da própria CPU por outro lado tá um dispositivo de entrada e saída ela possui o quê ela possui a parte mecânica um disco ela tem a parte mecânica sendo assim portanto ela necessita o quê necessita sincronizar o tempo com a CPU de forma o qu de forma que os dados possam chegar a tempo no dentro da da CPU e assim ela poder processar existe aí então o que existe aí uma questão assíncrona né o tempo dos dispositivos ela normalmente é
menor do que o tempo de processamento que ocorre dentro da CPU Então existe um overhead de tempo normalmente quando é requisitada uma leitura aí de um dado em um férico como o disco né então é isso que a gente vai eh tentar estudar bom então para iniciar o assunto a gente tem que classificar a entrada e saída em três tipos de taxonomias né então primeiro Seria o tipo da conexão segundo tipo de transferência de dados e o terceiro tipo de compartilhamento de e Conexões quanto ao tipo de conexões seria o quê seria a natureza de
conexão entre o módulo de entrada e saída e o periférico e a gente tem dois tem o o tipo de conexão serial e o tipo de conexão paralelo tá que a gente vai ver então o tipo de conexão serial seria como se fosse assim seria uma única linha de conexão entre o módulo né de entrada e saída tá e o quê e o próprio o próprio periférico né o próprio dispositivo né Tá então como eu só tenho uma linha de conexão os dados né então então elas seguem o quê elas seguem um atrás do outro
né de forma que chegue então no dispositivo aí de entrada e saída tá no módulo de controladora de entrada e saída Então essa seria o quê essa seria a conexão serial um bit atrás do outro de forma então que os dados possam chegar no modulo de entrada e saída do periférico e e vice-versa ela pode seguir nessa direção aqui como na outra direção só que um bit atrás do outro como se tivesse apenas uma linha de conexão né vantagem ela é obviamente é mais barata que a paralela é mais lenta que a paralela como a
gente vai ver tá relativamente e confiável uma vez que você só tem uma linha então a vamos diz assim a chance de dessa linha da da erros ou se quebrar né se partir é menor do que numa conexão aí paralela e é usada normalmente dispositivos mais baratos e lentos como impressoras e e terminais né Eh eh os dispositivos aí mais antigos né uma vez que esses dispositivos hoje em dia também já utilizam conexões paralelas que é o assunto desse slide aqui tá então Diferentemente do serial na paralela a gente tem o quê A gente tem
várias linhas de conexão aí onde essas conexões né são conectadas no modo de entrada e saída e num periférico tá então existe o quê existe um conjunto aí de de fios né que indicam indicam aí a a capacidade de transmissão eh de de um modo de entrada e saída para um periférico tá características principais né Ela é mais complexa obviamente que a serial mais cara mais rápida em virtude aí do alto grau aí de paralelismo né altamente esses dispositivos hoje em dia são altamente ou conexões né são alment confiáveis tá e usada em dispositivos mais
Veloz e utilizado hoje em dia numa larga escala aí de dispositivos a começar aí pelos pelos discos né bom a segunda forma eh da gente classificar né os dispositivos de entrada e saída seria o quê seria o tipo de transferência de entrada e saída tá então a gente tem dispositivos aí de Bloc Bloc devices né esses Bloc devices eh possuem o quê permitem aí que um bloco de dados possa ser transferido entre o modo de entrada e saída e o dispositivo tá então esses blocos são de tamanho fixo cada um com um determinado endereço e
esse bloco pode variar de um tamanho de 128 a 1024 bytes né a transferência eh realizada com um ou mais blocos tá por exemplo numa linguagem como cobol a transmissão né a gravação transmissão que eu digo seria a entrada e a saída né a leitura leitura e a gravação de dados é realizada utilizando o quê utilizando blocos né então por que que a gente utiliza blocos em virtude de quê em virtude dessa referência de localidade ora veja só se eu tô eh tentando acessar a página 10 de um livro obviamente tá o existem raras raras
ou melhor dizendo eh a chance né de eu querer ler a página 10 11 12 13 14 a 15 é bem maior do que queria ler apenas a página 10 em função disso O que que o os o modo de entrada e saída faz o modo de entrada e saída em vez de ler apenas uma determinada página nesse caso aqui a página 10 ela já lê o quê já lê as próximas páginas e assim eu tento o quê Eu tento atender essa referência de localidade que seria a referência tá a referência aos a os conjunto
de dados que estão tá junto com o quê junto com o índice ou o dado que foi eh solicitado tá isso traz uma leitura mais otimizada eh e a gente o dispostivo de entrada e saída faz Justamente esse procedimento por quê Porque o o tempo de entrada e saída é bastante grande Tá lembre do que eu falei a questão assíncrona né a questão da da diferença de time né o tempo de processamento na CPU é bem menor do que o tempo de processamento no dispositivo de entrada e saída sendo assim a gente precisa O quê
precisa juntar né esse Elo aí através do quê através da sincronização e essa referência de localidade essa leitura através de bloco vem atender justamente essa diferença aí de velocidade Tá e isso esse módulo de entrada e saída usando blocos é largamente utilizado em em dispositivos como disco CD home e drivers aí de eh de USB tá existem dispositivos de caracter a caracter onde acessa um fluxo aí de caracteres né terminais né acessam um fluxo de caracteres modens existem modens que acessam fluxo de caracteres né Eh não consideram a questão do bloco não são esses esses
caracteres como não são blocos né Elas não são endereçáveis e ela elas não possuem esse acesso aleatório né enquanto que no bloco eu posso fazer o acesso de um eh determinado bloco identificado como 1 2 3 e 4 aqui nos caracteres não tenho como fazer tá ela não possui esse mecanismo para fazer um acesso aleatório usando aí uma operação aí de Sic uma operação aí que seria uma operação de busca de um determinado carité tá então as impressoras né Eh chegaram a utilizar bastante esse esse mecanismo de transferência as interface de redes assim como o
os Mouses né bom terceiro tipo primeiro a gente falou então sobre a a transferência né e conexão aí paralela e serial depois a gente falou sobre o tipo de transferência que seria a transferência por bloco ou por caracteres e terceiro a gente vai falar sobre o quê o compartilhamento de conexões né o tipo de tipo de conexões que existem né entre um moddo de entrada e saída e o periférico tá então o moddo de entrada e saída ela ela tem eh dois tipos n essas conexões existem dois tipos um um primeiro seria o ponto a
ponto e o segundo seria o multiponto ponto a ponto existe o quê existe essencialmente uma conexão entre o periférico e o moddo de entrada e saída tá como vocês estão vendo aqui né então um um periférico um é conectado ao ao modo de entrada e saída existe uma conexão assim como periférico dois mesma coisa existe uma conexão direta com o modo de de entrada de saída eh a conexão é mais simples né uma existe uma linha dedicada entre o modo de entrada e saída e ela oferece então uma maior confiabilidade uma vez que existe o
quê existe uma conexão direta entre o modo de entrada e saída né e o próprio periférico tá E como tá escrito aqui existe aqui existe um maior grau aí de paralelismo Porque existe um um maior grau de paralelismo porque esses dois aqui né essa conexão um e a conexão dois elas podem o quê podem ocorrer de forma paralela uma vez que ela normalmente possui um buffer nesse lado aqui e ela consegue então armazenar os dados temporariamente até que o Model de entrada e saída possa então processar esses dados tá existem protocolos eh na rede que
utilizam esse eh esse mecanismo né o request to send e o Clear to send são dois mecanismos aí na parte de redes então que utilizam esse mecanismo ponto a ponto segundo tipo multiponto no multiponto existe o quê existe aqui um cabo né que é compartilhado com todos aqui todos os periféricos como compartilha e esse cabo Aí essa conexão compartilha com todos os periféricos ela não tem a capacidade de quê não tem a capacidade de gerar aí um paralelismo então aqui tudo é é realizado o qu tudo é realizado através de um mecanismo de escalonamento tá
então o escalonamento pode ser através de um token né onde o token pode passar de um ponto para outro ou pode e solicitar aí uma reserva de canal E aí fazer a conexão aí com o modo de entrada e saída eh com com os periféricos né então como eu te falei aqui não permite paralelismo usado eh para ir para fazer o o armazenamento né e existem outros mecanismos além desse por exemplo no os roteadores de rede tá existem tanto o mecanismo aqui que seria a conexão multiponto assim como mecanismo que a gente chama de crossbar
onde a gente tem então um conjunto né de cabos aqui e aí eu posso fazer aí um um prover aí um maior grau de paralelismo entre essas eh conexões né bom o dentro desse dentro do conceito de entrada e saída e existem princípios tá que regem que são os princípios de hardware e o princípio de software então a gente eh falou sobre as taxonomias né sobre os tipos de comunicação as conexões serial paralela bloco e caracteres tá multiponto ponto a ponto e agora a gente vai falar sobre os princípios que regem tá de hardware e
software dentro do mundo de entrada e saída tá então quanto a quanto a parte de de eh de hardware tá a entrada e saída ela possui o quê possui eh esse componente mecânico tá e possui também a controladora de dispositivo Então esse sistema de entrada e saída ela possui dispositivos também quais são esses dispositivos são os componentes mecânicos assim como a parte da controladora de dispositivo então componente mecânico disco os braços né os pratos ali são o quê são os componentes mecânicos assim como o disco ela possui o qu possui uma controladora de dispositivo para
que esse disco possa ser o quê possa ser gerenciado né pelo por um determinado dispositivo que conhece melhor e esse hardware né então e seria essa a controladora seria essa parte programáveis nos PCs existe o quê existe um circuito integrado para para fazer isso né e existem O quê é importante citar que existem controladoras que vão controlar um conjunto aí de dispositivos né Tá bom então os princípios de Rad continuando aqui ela o sistema operacional ela vai tratar com quê Ela vai tratar com cada um né cada uma dessas eh dessas controladoras que vocês estão
vendo aqui né então existem diversas eh diversas controladoras que vão controlar um determinado tipo de dispositivo ela ela não lida com os dispositivos em em si né então o sistema operacional não vai lidar com eh com os dispositivos em particular mas ela vai lidar com as controladoras e vai ela a controladora na realidade vai ser vai ser o quê vai ser o elo de ligação entre os dispositivos e o sistema operacional né Por que que eu tenho aqui as controladoras porque essas controladoras elas são o que elas são particulares a cada dispositivas elas conhecem o
funcionamento de cada dispositivo e por isso eu tenho uma controladora específica para cada um desses dispositivos Tá bom então existem eh a interface aí de alto nível né e assim como existe a a interface aqui de baixo nível baixo nível entre a controladora e dispositivo e a nível entre o sistema operacional e o própria a própria controladora tá bom eh o exemplo de uma controladora de disco Então vamos entrar na na estamos falando de de hardware a parte de controladora eh que seria o dentro do do princípio de hardware e dentro desse contexto a gente
vai falar da controladora de disco em particular então a controladora de disco ela recebe um fluxo de de bits com quê com preâmbulo para indicar eh um determinado comportamento né então o preâmbulo seria eh um determinado conjunto de bits que vai indicar o começo de uma rajada de caracteres de um pacote de caracteres tá então aí existe esse preâmbulo depois disso existe o próprio payload como eu chamo né seria os próprios bits do do setor e o checks que seria o quê que seria um mecanismo então de e para correção de erros do dispositivo então
para pra memória principal ela Então a partir daí vai montar os bytes em bloco coloca em um buffer interno do do da própria controladora né e após verif ficação do checão ela copia esses dados então paraa Ram tá bom continuando aí com a com com a parte de controladora tá é importante citar que cada controladora ela possui registradores e o controle novamente é feito pela CPU tá os dados e e esse esse conjunto de registradores Então vai ser o quê vai ser o elo de ligação entre a controladora tá e o o próprio sistema operacional
Então deve existir o quê Deve existir um conjunto aí de registradores para que o so então possa mandar um parâmetro e esse parâmetro não possa ser lido por quem por uma controladora tá é justamente isso que que nós estamos falando tá E aí existem eh diversos mecanismos aí para pra gente fazer esse mapeamento tá Ah existe o mapeamento que desses registradores na memória tá onde esses registradores tá de comunicação como eu citei aqui né então esses registradores aqui que vão servir de quê vão servir de elo de comunicação entre o sistema operacional e quem e
as controladoras existe um como se fosse uma caixa postal entre o sistema operacional e as controladoras então primeiro mecanismo é mapear na memória tá então essa esse conjunto de registrador é colocado justamente no espaço de endereçamento do quê no espaço de endereçamento da memória principal tá e normalmente ela coloca onde coloca no topo do espaço de endereços Tá bom uma outra forma de colocar esses registradores seria o quê seria colocar em em portas de entrada e saída tá então esses seriam endereços separados e não estaria mais aonde não estaria mais na memória principal tá então
esse seria o segundo mecanismo e o terceiro mecanismo seria o quê seria o mecanismo híbrido onde esses registradores de comunicação tanto de dados como de controle tá elas se encontram onde se encontra na memória principal assim como nas portas de entrada e saída tá então esse mecanismo é mecanismo híbrido entre os dois anteriores o primeiro coloca esses registradores na na memória principal o segundo nas portas aí de entrada e saída e o terceiro elas colocam o mecanismo híbrido que seria na memória principal assim como nas portas aí de entrada e saída por exemplo o penum
então x86 né x86 ele utiliza esse mecanismo onde de na memória principal no endereço 640 até 1 m seria o quê seria pra parte aí de eh de de eh de dados né enquanto que a essas outras portas aqui tá seriam o quê seriam para eh para dados de controle e elas elas estariam armazenado em portas aí de entrada e saída bom eh o concluo a aula de hoje onde eu introduzo a parte de entrada e saída eh nesse nesses slides tá a nossa bibliografia continua sendo o livro do tanal a quarta Edição tá E
na próxima aula então eu prossigo com as técnicas de entrada e saída aula número um Muito obrigado então pela atenção de vocês para essa primeira aula de entrada e saída [Música] [Música] [Música] k Y [Música]