Full transcript
0:01He.
0:03>> [música]
0:09[música]
0:30>> Boa noite, Acadêmicos, sejam muito
0:33bem-vindos
0:34à primeira aula ao vivo da disciplina de
0:37sistemas operacionais com ilustre
0:39professor Fausto Andrade dos Santos. Eu
0:42sou Gimena Braás, a professora mediadora
0:44dessa disciplina e irei acompanhá-las,
0:46certo? Então fiquem à vontade, falem
0:49comigo através da opção fale com
0:51mediador. Estou à disposição de vocês
0:53para eh trocarmos ideias e vocês tirarem
0:57todas as suas dúvidas, certo? Então
0:59contem comigo, estou sempre à
1:00disposição, OK? Vou passar alguns avisos
1:02para vocês e em seguida o professor
1:05Fausto iniciará a sua aula.
1:10Estão disponíveis já para vocês a
1:12atividade um com data limite para
1:14entrega até o dia 13/09 e a atividade
1:17mapa até o dia 9, até o dia 20 de
1:20setembro. É muito importante que vocês
1:22realizem todas as atividades
1:23avaliativas, pois elas somam pontuação
1:26para o cálculo da média na disciplina de
1:28vocês, certo? Então, qualquer dúvida,
1:30entra em contato comigo, não fale com
1:32mediador. Temos também a opção eh do
1:35fórum, já está disponível, ele não é
1:38avaliativo, não pontua, mas é de suma
1:40importância que vocês participem, pois
1:42agrega valores de conteúdo e interação
1:43com os colegas da turma. Os vídeos das
1:46atividades AE1 e atividade mapa estão
1:49disponíveis no material da disciplina.
1:52Então lá os professores estão explicando
1:53como vocês devem desenvolver a atividade
1:55de vocês. Então assistam os vídeos e
1:58façam as suas atividades com êxito.
2:01Temos também está disponível a atividade
2:05da semana eh de conhecimentos gerais,
2:07onde vocês têm um questionário para
2:09responder e vocês podem receber um
2:11certificado de até 16 horas de
2:14atividades complementares. Então,
2:15excelente oportunidade para vocês
2:17adquirirem mais conhecimento e também
2:19pontuação para as notas de vocês.
2:23Vamos falar sobre eh realizar as
2:27atividades de extensão que vocês já têm
2:29disponível no ambiente estudo de vocês.
2:31Cliquem na opção extensão e verifiquem
2:32as opções que vocês têm disponíveis para
2:34vocês já iniciarem com essas projetos de
2:37extensão que são obrigatórios, tá? Eh,
2:39fiquem atentos a todos os comunicados,
2:41são muito importantes. Qualquer dúvida,
2:43entra em contato. E ao final dessa aula
2:45eh haverá uma enquete liberada e peço
2:49que se vocês puderem responder, será de
2:51grande eh eh avaliação para nós, tá bom?
2:55Nós estamos estamos com projeto já para
2:58o módulo 5127
3:00sobre a escolha do livro digital ou
3:03livro físico para algumas disciplinas de
3:05cursos. Então, na opção, no menu lateral
3:08esquerdo, no meu papel no mundo, tem a
3:11opção bora participar. Vocês podem
3:13acessar e podem fazer a escolha de
3:14vocês, se estiverem disponíveis para as
3:16disciplinas do curso de vocês, ok? Temos
3:19também o programa Racatom, que tá com a
3:23proposta maravilhosa sobre desbloqueia a
3:26possibilidade dos dados. é um projeto
3:28incrível de imersão para desenvolver eh
3:31protótipos de inteligência artificial
3:33inteligentes para que eh construja
3:37possível construir esses agentes
3:39inteligentes para eh eh solucionar
3:41problemas do dia a dia. Então são coisas
3:43muito interessantes, tem muita coisa
3:44importante, interessante acontecendo e
3:46vocês têm que ficar por dentro.
3:48O Santander continua com a inscrição
3:50para bolsa de R$ 3.000 para um apoio
3:53financeiro acadêmico. Então você que
3:56está aí precisando de um apoio na sua
3:58área acadêmica para investir, não fique
3:59de fora. Faça sua inscrição até o dia 31
4:02de agosto, ok? Boa noite, obrigada pela
4:05presença de todos vocês. Vocês vão ficar
4:06agora com o professor Faustso e uma aula
4:09incrível de sistemas operacionais.
4:14>> Boa noite, professora. Obrigado aí pela
4:16pelas informações iniciais. Prazer estar
4:18com vocês nessa aula maravilhosa de
4:20sistemas operacionais. E vamos lá, hein?
4:23Vamos lá para esse assunto tão
4:24importante. Essa aula, infelizmente,
4:26como o assunto é muito extenso, eu vou
4:29ter que eh pedir um pouco do do
4:32entendimento aí do do colega aí do do
4:34Libras, porque a gente vai pegar pesado
4:37agora, né? porque vamos botar em
4:38velocidade dois a nossa aula aqui.
4:40Valeu. Mas olha só, gente, vamos lá pro
4:42nosso assunto.
4:44esse assunto tão importante pra
4:45carreira, sistemas operacionais, é um
4:47dos assuntos que eu sempre falo, aluno,
4:50você quer entrar pra TI, você precisa de
4:53quatro áreas de conhecimento com eh com
4:56vigor, com profundidade, que são
5:00arquitetura de computadores, tem que
5:01entender como o computador funciona,
5:04sistemas operacionais, como a gente
5:07interage com o hardware, como o
5:09computador funciona e como a gente
5:10interage com ele. é algoritmos e e
5:13lógica de programação para você entender
5:16como os programas são feitos e como as
5:18coisas funcionam na computação e redes
5:20de computadores para você conseguir
5:22fazer a comunicação entre computadores
5:24de uma forma coerente, correta e e
5:27cellery. Com esses quatro elementos,
5:29você forma uma base sólida para outras
5:32áreas que queira estudar. Se você for
5:34estudar segurança, vai precisar dos
5:36quatro. Se você for estudar programação,
5:38vai precisar dos quatro. análise de
5:40sistemas, análise de negócio, precisa
5:43dos quatro. Então, qualquer área de TI
5:46que você vira a estudar, você vai usar
5:48essas quatro áreas. E sistemas
5:50operacionais, eh, não é a mais
5:53importante, mas também não é a menos
5:54importante, ela é em igual tom com as
5:56outras três que eu falei, tá? São as
5:57quatro áreas que você tem que dominar,
5:59tá? E hoje a gente vai começar falando
6:02sobre esse assunto eh eh no CERNE, no no
6:07centro dele, naquilo que de fato eh
6:11vocês precisam internalizar de
6:13conhecimento, porque esse funcionamento
6:16principal, por mais que ele seja
6:17conceitual, pareça um pouco confuso de
6:20começo, pareça um pouco, para alguns
6:23pode até falar: "Não, isso é inútil, não
6:24preciso saber disso", você vai perceber
6:27que ele se aplica no em tudo que você
6:29fizer em computação.
6:31Eh, tem uns colegas aí
6:33[limpando a garganta] que tão falando
6:35sobre travando, coisa assim. Eu tenho
6:38percebido, pelo menos para mim aqui, a
6:40transmissão do do da tradução em Libras
6:43do professor Líver ali tá tá tudo certo
6:45e as mensagens estão chegando em tempo.
6:47Talvez se vocês voltarem um pouco na
6:49gravação, né, pegar um alguns segundos
6:51antes, não pegar ao vivo, pode ser que
6:53ela já esteja melhor para assistir. E se
6:56vocês tiverem muita dificuldade de
6:57assistir e ficar travando, volto sempre
7:00no que eu falo, assista de novo com
7:03calma. Eh, esse vídeo é feito para
7:06assistir mais de uma vez, porque os
7:08conceitos não é em 15 minutos que você
7:10vai aprender a internalizar. Vale a pena
7:12assistir de novo, dar pausa, eh pegar as
7:15dicas ali, as palavras-chave, as siglas,
7:18pesquisar, ler no material. É assim que
7:21você vai estudar na sua eh no seu na
7:24formulação que é o curso à distância. A
7:26aula ao vivo é para dar direção pro seu
7:29estudo, é para você ter uma base, um uma
7:33visão geral do que precisa ser estudado.
7:36E o seu aprofundamento vai ser
7:38individual no seu material, na sua, no
7:40seu tempo de pesquisa para completar a
7:43quantidade de horas que a disciplina
7:45prevê. A gente vai ter aí em torno de eh
7:47acho que das 6 horas ao vivo, né?
7:50Considerando ainda a atividade de estudo
7:52de caso, vamos dizer que dá 7 horas no
7:54total. 7 horas de aula ao vivo, não dá
7:58para passar tudo que vocês precisam se
8:00dedicar para aprender o assunto, tá?
8:02Normalmente uma disciplina dessas você
8:04vai demorar 50, 60, 70 horas para
8:07começar a a internalizar o assunto.
8:10Então, entenda que esse tempo extra
8:12precisa ser dedicado fora das aulas ao
8:15vivo. Beleza? [roncando] E vamos lá. A
8:19aula que eu trouxe para vocês hoje, eu
8:20espero completar esse sumário, né? Vamos
8:23começar com os conceitos e tentar chegar
8:24lá nos últimos elementos da lista.
8:27Sistema operacional. Que raios é isso,
8:29professor? O que eu faço? Para que esse
8:31sistema operacional? Ele é o primeiro
8:33software que executa no seu computador.
8:36Porque vamos lá, o que que é um
8:38computador? Ele é um hardware, uma
8:40máquina que faz cálculos. Então você, de
8:44uma forma ordenada, se você der
8:46instruções para ele, ele vai realizar
8:48cálculos em uma forma sequencial, uma
8:50maneira ordenada ali sequencial. Só que
8:52se eu precisar eh realizar esses
8:54cálculos e tiver que fazer um programa
8:56rodar nele, eu vou fazer um programa
8:58rodar e ele vai começar e terminar e vai
9:01acabar o que precisa ser feito. Só que
9:04no começo lá, quando tudo era mato
9:06ainda, né, e não, a computação ainda eh
9:09tava iniciando, a gente eh eh
9:14era suficiente fazer um programinha
9:17rodar no computador, era suficiente.
9:19Hoje já não é. Hoje, enquanto a gente tá
9:21aqui gravando a aula, tem pode estar
9:23aqui com uma tela do lado, eh, com um
9:26navegador na internet vendo a
9:30previsão do tempo, outra janela aqui com
9:32um editor de texto e etc, tudo
9:34acontecendo meio que ao mesmo tempo.
9:37Então, eu preciso de vários programas na
9:39memória, cada um rodando uma finalidade.
9:42E se eu for fazer isso na mão, na unha,
9:45programador fazendo isso na unha, é
9:46inviável, porque eu vou ter que lidar
9:48com questões de paralelismo,
9:50concorrência, impasses entre aplicações.
9:53E o sistema operacional, ele vem para
9:55essa finalidade. Ele precisa trabalhar,
9:58ele precisa intermediar a comunicação
10:01entre os processos, os programas que
10:04estão rodando e fazer com que eles
10:07coexistam de forma harmônica na eh na
10:10função do computador. Então vamos lá. O
10:13computador, como eu falei, é um hardware
10:15que faz conta. O sistema operacional é o
10:17primeiro software que vai executar para
10:20eh permitir que você interaja com esse
10:24hardware. Interaja de que forma?
10:27pegando o tempo desse hardware para
10:29executar outras outros processos, eh
10:34interagindo com os dispositivos de
10:35entrada e saída de uma forma coordenada
10:38para que cada processo tenha um tempo
10:41para fazer essas essas consultas
10:44e por aí vai. Então o sistema
10:46operacional ele gerencia os recursos do
10:49computador de forma a arbitrar, né? Quem
10:52pode usar o que, em que momento, OK? no
10:55tempo e no espaço, digamos assim.
10:58E
11:00o que que é o sistema operacional?
11:01Então, eh, de que forma eu eu gosto
11:04muito dessa abstração do professor
11:05Tanemba no livro dele de Sistemas
11:07Operacionais Modernos, que ele escreveu
11:09lá nos anos 90, mas de lá para cá sempre
11:12foram sistemas operacionais modernos,
11:14eh, comparados com sistemas operacionais
11:16dos anos 70 que não eram modernos. Veja,
11:20esses sistemas operacionais modernos que
11:22ele escreveu, ele fala muito dessa
11:24abstração em que o hardware vai ser
11:26usado por programas aplicativos, ou
11:28seja, que tem uma aplicação,
11:30aplicabilidade
11:31específica e ele precisa entregar acesso
11:35ao hardware. Mas como que um programa
11:37vai acessar uma área de memória? Bom, a
11:40área de memória tem um endereço lá
11:42complicado de navegar e por vezes que o
11:46programa ele precisa alocar essa
11:48memória, mas ele não pode fazer isso
11:49diretamente, porque se ele fizer isso
11:51diretamente, ele pode entrar em conflito
11:53com outros programas. Precisa que haja
11:55um árbitro intermediando essa
11:58comunicação para que eh de fato eh a
12:01entrega da memória seja uma área que
12:03esteja disponível, que ninguém usou
12:05ainda, né? Então, eh, por conta dessa
12:09particularidade, o sistema operacional
12:11precisa, eh, intermediar. E o professor
12:15Tanebal, quando ele colocava lá no, no
12:17livro dele essa essa perspectiva, ele
12:19fala assim: "Tudo que o hardware mostra
12:21é feio." Por que que é feio? Porque você
12:24tem dificuldade para identificar o que
12:26aqueles bits significam. você não sabe o
12:29que tá escrito em determinada área de
12:31memória. O hardware ele escreve lá e
12:33você fica sem saber se se representa a
12:36posição que mouse que mudou, se
12:38representa uma letra que foi escrita,
12:40uma tecla apertada, se é uma impressora
12:43pedindo eh um sinal específico.
12:46Então você não sabe o que tá
12:47acontecendo, mas o sistema operacional
12:51ele vai decodificar essas
12:54e essas mensagens feias e vai criar o
12:58que a gente chama de interface bonita.
13:00Ele vai dar uma uma interface de
13:02programação, eh, uma API que a gente
13:05fala, né? uma interface de aplicação
13:07específica
13:09pro pras pros programas acessarem esse
13:12hardware. Então, quando eu quiser saber
13:14qual é a tecla que foi apertada do
13:16teclado, eu vou perguntar pro sistema
13:18operacional essa exatamente essa
13:20pergunta e ele vai lá no hardware e
13:22verifica qual foi a tecla apertada,
13:25porque ele sabe decodificar isso, a
13:27interface feia paraa interface bonita.
13:29Beleza? Então, eh, a frase dele é sempre
13:33essa, né? Sistemas operacionais
13:34transformam o hardware feio em
13:36abstrações bonitas. Se eu quiser
13:38perguntar, eh, se eu quiser gravar na
13:40área de vídeo, eu vou ter uma função lá
13:42do sistema operacional e digo: "Olha,
13:44desenha na tela para mim essa janela". E
13:47ele vai eh desenhar lá na memória de
13:49vídeo do jeito que a memória de vídeo
13:51aceitar. Mesmo que eu não saiba como
13:53isso é internamente, mas ele vai fazer
13:55do jeito correto. Esse é o objetivo do
13:57sistema operacional. O sistema
13:59operacional, claro, intermediar os o
14:03hardware significa que ele vai gerenciar
14:05recursos críticos e quais sejam eles, o
14:09uso do processador. Então, o processador
14:12é um recurso finito, ele precisa ser eh
14:15o que a gente vai falar depois
14:16escalonado, precisa ser eh feito uma
14:19fila de prioridades em que cada processo
14:21vai usar o processador eh ordenadamente.
14:24E é um por vez. O processador não pode
14:26ser usado vários ao mesmo tempo. É um
14:30por vez. Ah, mas meu computador tem 16
14:33núcleos de CPU. Pois é, são 16 que vão
14:36ser usados cada um uma vez, um por vez.
14:40Pode ser usar os 16 ao mesmo tempo, mas
14:43é finito. É, são aqueles 16. Eu sou do
14:46tempo ainda que os os processadores eram
14:49que a gente chamava falava de monocor,
14:52ou seja, um núcleo. Então era um
14:55processo por vez terminado, ele vinha o
14:58próximo e assim vai. Então, era a luta
15:02que que a gente que a gente sobreviveu,
15:04né, que a minha geração sobreviveu
15:06daqueles processadores daquele jeito.
15:09E e basicamente é isso. Ele vai
15:11gerenciar recursos críticos ali,
15:13recursos que são limitados de eh eh
15:17fazendo com que os processos acessem
15:19ordenadamente, respeitando os limites
15:22uns dos outros. seja o gerenciamento de
15:25memória, ou seja, ou quer dizer, eh, a
15:29memória sendo alocada, respeitando os
15:32espaços ali para cada processo, os
15:34dispositivos sendo alocados eh
15:37ordenadamente numa janela de tempo em
15:39que o processo vai ter a resposta que
15:42ele solicitar no momento oportuno,
15:44quando o dispositivo responder.
15:46arquivos. Quando você tiver um um
15:48compartilhamento de arquivos, eles sejam
15:51eh compartilhados
15:54quando eles sejam abertos por um
15:56processo, outro processo seja sinalizado
15:59antes de tentar abrir também. Esse tipo
16:01de controle é o sistema operacional que
16:02faz. Desenhar na interface gráfica tem
16:05que ser limitado só o sistema
16:07operacional que realiza as questões de
16:09segurança e controle de acesso todo
16:13também nessa ideia. o acesso à rede
16:14também controlado pelo sistema
16:16operacional. Então ele é um gerenciador
16:18de recursos, ele é o árbitro que
16:20intermedia o acesso aos recursos por
16:23parte dos processos, né? Então ele vai
16:26ter os recursos todos que a gente já
16:27falou
16:30no sentido aí memória, dispositivos de
16:33entrada e saída e outros recursos que se
16:36visualizar. a processadora, é um recurso
16:37também [roncando]
16:39e organizados no tempo e no espaço, no
16:42tempo de acesso e no espaço,
16:44considerando eh espaço de armazenamento
16:46e tal, como a gente já mencionou, tá?
16:49aqui esse diagrama, só para ter uma
16:51ideia, né, como o sistema operacional
16:54gerencia tudo isso.
16:56E o sistema operacional também eh tem
17:00essa perspectiva de ser o intermediário
17:04pro do usuário para o hardware e o
17:07usuário, lógico, vai ter suas aplicações
17:09de nível de usuário que vão querer
17:11acessar o hardware.
17:13Ah, as aplicações elas podem estar e
17:17usar uma interface de acesso chamada
17:20comando de linha, ou seja, um terminal
17:23comando de linha sendo o caminho de
17:27entrada de comandos ou de interação com
17:29o usuário. Ou você pode usar interface
17:32gráfica. Então, são as duas formas, as
17:34duas manifestações de interação do
17:36usuário. Além disso, os processos quando
17:39são iniciados, eles vão ter privilégios
17:42no nível usuário ou privilégios no nível
17:45núcleo. O que quer dizer isso? quer
17:48dizer que os os processos, quando eles
17:50tiverem privilégios de nível usuário,
17:52eles vão ter recursos limitados, eles
17:55vão ter acessos limitados ao ao nível de
17:59acesso previsto para ele. Então, eh ele
18:02vai ter acesso à sua própria memória,
18:05acesso eh que a segurança permita para
18:07aquele usuário que iniciou o processo,
18:09aquilo que está no escopo de atuação
18:11dele, limitado daquela forma. E
18:14processos de modo núcleo a gente
18:16considera como se fosse processo do
18:18administrador, que tem privilégio
18:20elevado, tá? Então, basicamente, modo
18:23usuário é o privilégio básico e modo
18:25núcleo é o privilégio elevado em que ele
18:28pode fazer mais, muito mais, talvez tudo
18:30inclusive, e que eh levanta a
18:34necessidade de você eh se precaver, né,
18:36de ter certeza se é o caso de realizar
18:39certas operações, porque elas podem
18:41inclusive danificar o funcionamento do
18:43sistema operacional, tá?
18:46E
18:48tem uma pergunta interessante aí. Ozinho
18:51colocou Linux é um exemplo de ambos,
18:53correto, professor? Linux é um exemplo
18:56de ambos que tem Cli e GUI. É isso que
18:58você quer dizer? O Windows também tem
19:01hoje em dia, tá? Eh, se você comprar
19:04Windows Server, eh, eu não lembro se é
19:06Nano ou Core, que é o nome da
19:08distribuição, ele vem só com comando de
19:10linha também, tá? Mas é claro que sua
19:12sua observação está correta. Linux é um
19:15exemplo que tem o modo comando de linha,
19:18que você não vem com interface gráfica
19:19acoplada e você pode acoplar uma
19:21interface gráfica e iniciar por ali, tá?
19:24Eh, mas bacana a sua observação.
19:26Obrigado pela pela ideia aí. E fica essa
19:29dica que o Windows também tem, o Windows
19:31Server também tem, é somente comando de
19:34linha. Eh, se você ligar
19:37o Windows,
19:40não, mas acho que o Windows novo, ele
19:42vai entrar na interface gráfica de
19:43qualquer maneira, mesmo que você queira
19:45entrar no modo de reparação. É que no
19:47modo de reparação você entra na
19:48interface eh comando de linha, fica
19:51limitado ali, mas funciona mouse, tem
19:53interface gráfica também, então não dá
19:55para comparar. Eh,
19:59a Gisele Oliveira fez uma pergunta
20:00interessante. A aula de hoje abrange
20:02unidades um e dois, tá? E aulas
20:04conceituais, eu não tenho certeza, não
20:06sei fazer esse paralelo não, mas a ideia
20:08é que a gente vai progredir no conteúdo
20:11e pode ser que o meu material fique um
20:13pouco assíncrono com a o material
20:16didático, porque tem elementos que eu
20:18gosto de inserir para aumentar um pouco
20:21a o aproveitamento de vocês na
20:23disciplina. O material tem que ser lido
20:25de ponta a ponta e entendido de ponta a
20:27ponta, mas as minhas aulas são para
20:30complementá-lo e as aulas conceituais
20:32também. Então são três fontes de
20:33conhecimento, além de vocês terem que
20:35pesquisar na internet, pesquisar em
20:37livros, ah, os conceitos que a gente
20:39fala em aula, beleza? Muito bacana.
20:41Obrigado pela observação. Eh, e vamos
20:44lá. O que que é que raios é um sistema
20:46operacional, né? Continua a pergunta
20:48inicial lá. Sistema operacional foi tudo
20:50isso que a gente falou e ele está ali
20:52entre o software e o hardware, OK? Eh,
20:56ele tem uma as formas de conversar com
20:59os programas, com os programas, os
21:02aplicativos que você instalar. Eh,
21:05[limpando a garganta]
21:06eles têm eh formas de comunicar que são
21:09as chamadas que os aplicativos vão pedir
21:12recursos avançados e o hardware também
21:16pode interagir. Os dois primeiros ali, a
21:18chamada de sistema significa quando o
21:22aplicativo precisa de de um privilégio
21:24elevado, ele pede pro sistema
21:26operacional essa chamada de privilégio
21:28elevado. E é quando ele também precisa
21:31de interrupção de software, quando ele
21:33precisa é mudar de de nível, né? São as
21:37duas formas que ele vai interagir com o
21:39sistema operacional para mudar de modo
21:42usuário para modo núcleo. Além disso, o
21:44hardware também pode conversar com o
21:46sistema operacional avisando o que a
21:48gente chama de interrupções, né? A gente
21:50vai falar de interrupções nessa, não sei
21:52se dá tempo nessa aula, mas
21:53provavelmente na próxima. A ideia da
21:55interrupção é que quando um dispositivo
21:58estiver pronto, né, uma chamada que foi
22:01feita para ele antes, ele terminou,
22:03resolveu, aí ele vai fazer uma
22:04interrupção avisando: "Estou pronto para
22:06que o sistema operacional eh eh entregue
22:09aquele resultado para o processo que
22:11pediu. Por exemplo, eu vou pedir um dado
22:13que está no HD, mas eu não vou ficar com
22:15o processador parado aguardando isso. É
22:17muito ciclo de CPU perdido para isso.
22:19Então ele vai deixar o HD lendo o dado e
22:24vai entregar esse dado para eh eh vai
22:27aguardar esse dado lá e vai aguardar
22:29não, na verdade vai continuar
22:30processando outros processos. Quando o
22:33dado ficar pronto, o HD faz a
22:35interrupção, ó, estou pronto. E aí o
22:37sistema operacional vai chamar de novo o
22:39processo que pediu para que ele eh trate
22:42aquele dado que ele pediu. Beleza? Isso
22:44que é para por isso que existe a
22:46interrupção de hardware. E por isso que
22:48eu falei lá no começo que estudar
22:50arquitetura de computadores é importante
22:52para você associar com essas informações
22:53aqui e compreender como as coisas
22:55funcionam, como o sistema operacional
22:57trata isso e como isso vai influenciar
22:59seu desenvolvimento de sistema, sua eh
23:02arquitetura de sistemas, como você vai
23:05eh montar sua estratégia de software
23:07para que ele tenha desempenho ótimo. OK?
23:12Muito bacana a pergunta do Alan John
23:14ali, ó. STMD e Power Shell, os dois
23:16conversam com o hardware?
23:18D é o a interface comando de linha, é o
23:22Cli, certo? Embora está numa janela no
23:25ambiente gráfico e o PowerShell também,
23:28né? Os dois eh materializam o CLI numa
23:31interface gráfica, né? Pou essa
23:33confusão, mas ele é a interface comando
23:35de linha. Eles não falam com o hardware,
23:38tá? Eles são entradas de comando para
23:41você chamar aplicativos. Os aplicativos,
23:45os programas, os processos que vão
23:47rodar, eles vão pedir pro sistema
23:49operacional acesso ao hardware, da forma
23:52como a gente tem ali um e dois. Por
23:54exemplo, vamos pegar aqui casos, eh,
23:57vamos pegar casos específicos aqui, mais
24:01específicos. Esse do Scorpio eu vou
24:03responder daqui a pouquinho.
24:05Eu vou eu vou falar daqui a pouquinho,
24:06tá? Primeiro eu vou continuar falando do
24:08sem Porschell rapidamente e eu já falo
24:11do do da pergunta do Scorpion ali. Aí,
24:14olha só,
24:16chamada do sistema, ele vai, vamos supor
24:17aqui, caso, ah,
24:22é, beleza, digamos ali um caso de, vamos
24:25pegar um formatar pen drive lá, vamos
24:27pegar o formatar dis sket que era eh,
24:30não, o formatar de pen drive também dá.
24:32Se eu escrever lá no no meu comando de
24:34linha formate, sei lá, F2 pont, né, a
24:38unidade do do pen drive, ele vai
24:40formatar, né, eh vai formatar completo.
24:43RQ seria, então, quer dizer, eu estou
24:45chamando um comando que vai executar uma
24:48formatação, mas que no padrão que é hoje
24:51o o Windows,
24:54ele vai precisar conceder privilégios
24:56elevados para esse comando, para ele
24:59poder chegar no fazer as chamadas
25:01específicas pro hardware. Embora ele
25:03sempre vai estar intermediando, mas vai
25:04usar o driver lá do hardware para isso.
25:07De qualquer maneira, vai fazer uma
25:08chamada de sistema que a gente acabou de
25:10exemplificar para subir o privilégio do
25:14comando formate para ele chegar lá no
25:15pen drive, tá? Então o formate f2/q vai
25:19fazer a formatação rápida e se fizer o
25:21formate C2/Q, você vai perder seu
25:24sistema operacional e vai ter que eh vai
25:26perder essa aula, vai demorar um pouco
25:27para você continuar estudando. Não façam
25:29isso em casa, crianças. Eh, voltando pra
25:32pergunta Scorpion, Scorpions Ges ali,
25:35essa chamada de sistema seria aquela
25:36mensagem que aparece pergunta app fazer
25:38alteração no Windows? É, é um momento em
25:41que o sistema operacional te pergunta se
25:44você autoriza o processo a elevar o
25:48nível dele eh naquela execução. É a
25:50forma como o Windows 7 paraa frente
25:53criou mecanismos de mudar o o nível do
25:56usuário. Até o Windows XP eh tudo rodava
25:59em modo núcleo. Então você conseguia, ao
26:02mesmo tempo que você tava rodando editor
26:04de texto, você conseguia apagar arquivos
26:06do sistema operacional sem pedir licença
26:08para ninguém. E era um problema, porque
26:10quando você reiniciasse o computador,
26:11ele pararia de funcionar, né? Até
26:12naquele momento já poderia parar de
26:14funcionar. Mas muito obrigado pela
26:15pergunta aí. Eu eu agora eu entendi a
26:17correlação que que havia ali, né? Eh,
26:23o Luís Fernando fez uma pergunta um
26:25pouco fora da do objetivo,
26:27que é: "Professor, se eu compro com
26:29Windows ou Linux um notebook, né? Eh,
26:33vou comprar um computador com Windows ou
26:35Linux?" Eu acho que vai depender do que
26:37você quer fazer, tá? Se for por questão
26:39de preço, o com Linux vai ficar mais
26:41barato. Se for por questão de você
26:44trabalhar, talvez com Windows seja
26:45melhor, caso o seu cliente, seu freguês,
26:48eh, use aplicativos ali, sei lá, você
26:50vai programar em DNET, embora tem DNET
26:53para Linux, né? Mas, eh, você vai
26:55trabalhar com Photoshop, Photoshop roda
26:57melhor no Windows, então tem que ver o
26:59que você vai fazer, tá? Eh, eu confesso,
27:02eu no meu trabalho lá, eu eu sou DBA e
27:06hoje sou DB, né? Estou DBA.
27:08E
27:10eu uso o Linux o tempo todo, já tem bem
27:12uns tem quase, tem mais de 15, tem quase
27:1520 anos que eu uso o Linux direto e
27:19só que em casa eu uso Windows, então
27:21quer dizer, para gravar a aula aqui é
27:22mais prático no Windows. Tudo vai
27:24depender do que você precisa fazer, tá?
27:25Não existe esse negócio de ser xita, só
27:28funciona um, só funciona outro. Tem cada
27:30caso um caso, né? Eh,
27:34a Vânia fez uma pergunta interessante
27:36ali também. Podemos comparar o sistema
27:38operacional a um hospedeiro, não? Eh, é
27:42um, desculpa, hospedeiro. Claro,
27:44hospedeiro, sim. Não, um hóspede, né?
27:45Hospedeiro, ele é ele, ele ele é um
27:48hospedeiro para os processos, né? Para
27:51os programas que vão ser hospedados ali,
27:53tá? Eh, de fato, quando a gente cria a
27:55virtualização, a gente tá criando
27:57processos hóspedes naquele ambiente
28:00hospedeiro. Bacana isso aí. Bacana sua
28:03observação. Obrigado. Eh,
28:06e aqui eu eu só espero que vocês não
28:08fujam muito do tema porque a nossa aula
28:10ela é ela é bem intensa e a gente eu
28:13quero muito conversar com vocês, mas é
28:14bom a gente focar nos objetivos aqui. Eu
28:16vou tentar seguir aqui as perguntas que
28:18vocês fizeram, mas tentem não fugir dos
28:20assuntos, tá? Professor? Não sei se pode
28:23ser considerado relíquia, mas conforme
28:25pera um pouquinho, pera um pouquinho.
28:27Passou. Conforme passou as novas
28:28atualizações operacional
28:30impossibilitário de acessar o DOS. como
28:32era isso e faz parte dessa conexão com
28:34hardware, não é? Porque foi atualizado o
28:36DOS, ele ele tem uma obsolescência
28:39intrínseca que eh dificulta o
28:41funcionamento de sistemas modernos. A
28:43exemplo do que eu falei do modo núcleo
28:45nativo, né? Você não troca de modo
28:47usuário para modo núcleo, fica sempre
28:49modo núcleo e ele é inseguro, né? Se
28:51torna inseguro, por isso que bloqueou.
28:54Então você precisa do PowerSell e das
28:57das eh derivações do Power Shell para
29:00proteger o ambiente quando você quiser
29:01executar alguma coisa, eh pelo menos
29:04mudar de modo usuário para modo núcleo.
29:06Bacana sua pergunta. Obrigado, viu,
29:07Vinícius?
29:10Ã,
29:12deixa eu ver aqui.
29:15Eu tô vendo vocês conversando. Eu só vi
29:17se tinha mais alguma pergunta
29:18específica. Se eu deixar alguma pergunta
29:20de vocês para trás, talvez
29:24eh
29:27ali o Alex ele fala ali, parece a
29:29pergunta do colega sobre qual comprar.
29:30Pode ser o Windows e fazer comparação,
29:32repartição para uso do Linux, certo? É
29:34uma alternativa também você ter os dois,
29:36mas você ter os dois, você vai usar usar
29:38só um e não vai ficar trocando,
29:40entendeu? Melhor na verdade é você ter
29:43um e usar aquele. E se ele não for o
29:46ideal pro seu trabalho, você vai lá e
29:48troca, né? Embora ficar trocando sistema
29:49operacional é complicado, né? Então se
29:52você instalar o Linux e acostumar,
29:54excelente. Se você instalar o Windows e
29:55acostumar, excelente também, tá? Eu
29:58penso dessa forma. Eh, aí tem uma
30:01pergunta aqui, professor, o Dnet hoje
30:02funciona em Linux com DNET core? Ah,
30:04obrigado. Não era pergunta, era
30:05afirmação. Beleza, obrigado. É isso
30:07mesmo, Igor. Professor, então o sistema
30:09operacional, uma camada entre hardware e
30:11usuário, ele tem dois níveis. É uma
30:12camada entre as aplicações que o usuário
30:15vai usar, certo? E o hardware é ali,
30:19veja os dois níveis que tá aparecendo
30:21ali, o software, que é o rosinha desse
30:22diagrama, né? Eles são ali o editor de
30:25texto, eh, o navegador de internet, eles
30:28estão acima do sistema operacional e
30:30eles usam as chamadas do sistema
30:31operacional para conversar com o
30:33hardware, para imprimir na tela, para
30:35ler o que o teclado tá escrevendo, para
30:36ouvir da placa de rede e por aí vai.
30:41Ah, olha que pergunta interessante aí.
30:43Eh, professor, desculpa ignorância, mas
30:45na sua função DBA precisa aprofundar
30:47conhecimento de sistemas operacionais.
30:49Poderia explicar a importância na sua
30:50função? Muito obrigado pela pergunta,
30:52Alan. Como é que diz? Finalmente alguém
30:54reconheceu meu papel, né? Brincadeira
30:56fora da parte aí. Mas é que eh embora a
31:00minha função de DBA é a principal, mas
31:02eu também faço gestão de configuração de
31:04software, ou seja, eu mantenho a camada
31:07de aplicação dos sistemas funcionando e
31:11mantenho a configuração delas, versão de
31:13sistemas e tal. Eh, são duas funções
31:15separadas, mas a de DBA é
31:18importantíssimo o sistema operacional
31:19porque o banco de dados ele conversa
31:22diretamente com o sistema operacional.
31:23Eu preciso manter as chamadas sistema
31:26operacional eh adequadas, versões
31:28corretas, eh versão do sistema
31:32compatível com a versão do meu banco de
31:33dados. Ã, ah, beleza, chegou o colega
31:36aí. Obrigado lá o colega que saiu.
31:38Bem-vindo aí, viu? E vamos lá. Eh, eu
31:43preciso manter essa compatibilidade
31:44entre as versões de de todos os
31:47softwares e os e o banco de dados. ele
31:50vai utilizar esse chamado sistema
31:51operacional para otimizar tudo aquilo
31:53que ele realiza. Por exemplo, eh, se eu
31:56fizer leituras em sequência, as chamadas
31:59elas podem precisar a quero pegar um
32:02exemplo mais concreto. Ahã.
32:06Deixa eu pegar um exemplo concreto de
32:08banco, né? No fim das contas, tudo que
32:11você vai, vamos, vamos pegar aqui bancos
32:12de dados, Postigres, Postgres no
32:14Windows, ele vai ter eh uma estrutura de
32:17de de
32:21como é que fala? eh
32:25uma infraestrutura de implantação dele,
32:29vamos dizer que você vai ter o diretório
32:31que ele vai ficar instalado, você vai
32:33ter o serviço dele, vamos lá, no
32:35Windows, o serviço que vai ser eh
32:37configurado, as permissões desse
32:39serviço. Então, conhecer o sistema
32:41operacional com profundidade para você
32:43hospedar o serviço de forma adequada.
32:45Por vezes, você vai precisar entender
32:47como a segurança do sistema operacional
32:49opera para você proteger os arquivos do
32:52seu banco. Eh, muito comum você ter, eh,
32:56como eu falei, o postgris, você instala
32:58ele de uma forma errática ou eh uma
33:01forma qualquer e depois ele vai ter
33:04problemas para expandir armazenamento.
33:06Aí você descobre que foi instalado num
33:08disco lento ou que o diretório não tá
33:10com permissionamento correto. Então,
33:12essas questões elas vão influenciar
33:13diretamente a minha vida de DBA. Eh, na
33:16hora de implantar eu costumo implantar
33:19em Linux, OK? Mas se eu precisar
33:22implantar em Windows, eu também preciso
33:23conhecer o sistema operacional e suas
33:25particularidades na hora de subir.
33:27Depois a gente vai ver as questões de
33:28contêiners que também influenciam a
33:30implantação, porque eu posso usar
33:33contêiners e que vai ter outro
33:34comportamento na hora de implantar.
33:36Muito bacana essa
33:38eh eh essas perguntas, né?
33:42E eu queria avançar no assunto, pessoal.
33:44Eu vou responder uma última pergunta. Eu
33:46acho que vocês falaram várias coisas. Se
33:48eu tiver esquecido de alguma coisa, a
33:50professora puder eh identificar ali.
33:54Eh, se eu tiver esquecendo alguma coisa,
33:56professora Gimena, se quiser, como é que
33:58é, interceder aí, não tem problema, tá?
34:01Eh, eu agradeço as perguntas, elas são
34:02muito boas por esse momento, mas a gente
34:03tem que avançar na teoria, senão a
34:05disciplina vai ficar quebrada, né? E se
34:07eu tiver esquecido alguma coisa, por
34:09favor, me avisem. Eu é só repetir a
34:10pergunta, beleza? Eu vou avançar nesse
34:12assunto. Isso aqui é muito legal, mas a
34:14gente tem que avançar.
34:16A gente precisa falar de classificação
34:18de sistemas operacionais, porque em
34:19algum momento vocês vão precisar desses
34:21elementos para definir como vai ser a
34:23solução de software que você vai
34:25implementar, como vai ser a estratégia
34:27que você vai usar. Então, a gente
34:28precisa entender o que que é sistema
34:30operacional monusuário. É o sistema
34:32operacional que só dá para ter um
34:35usuário por vez, não é? Porque eh
34:38[limpando a garganta]
34:40no fim das contas acaba sendo também que
34:42se você pode ter cadastros de múltiplos
34:45usuários, naturalmente o sistema
34:47operacional vai acabar te permitindo
34:49múltiplos acessos simultâneos. Mas a
34:51ideia de monousário significa aqueles
34:54sistemas operacionais antigos, né?
34:56muitas vezes monolíticos que só
34:59permitiam um acesso por vez e se você
35:01quisesse trocar tinha que sair, entrar
35:03outro, tal. O DOS, como era eh o antigo
35:08DOS, ele rodava de um jeito que não
35:10tinha tela de login, era entrar e usar,
35:13porque não havia eh critérios de
35:17segurança para separar isso aí. Depois
35:19com a implantação de outros sistemas
35:21operacionais, né, na verdade já existiam
35:23os outros, né, os baseados em Unix já
35:25tinham essa ideia de usuário e
35:28separavam, né, os espaços de usuário e
35:31consideravam a ideia de múltiplos
35:33usuários.
35:34A quantidade de tarefas também é
35:37particular, porque você pode implementar
35:39um sistema operacional monotarefa
35:42hoje, não tem problema. Em que
35:44circunstância, professor? Bom, eu usaria
35:48um sistema monotarefa pensando em
35:50mineração de Bitcoin. Por quê? Porque eu
35:53vou dar toda a todo o processamento para
35:57um processo só e vou deixar ele usar o
35:59máximo da capacidade do hardware
36:02eh para aquela finalidade que é ganhar
36:04dinheiro, né? Fazer dinheiro.
36:06E então monotarefa faz sentido em algum
36:09contexto, tá? Eh, sistemas embarcados,
36:12sistemas especialistas também podem ser
36:14monotarefa, mas aí vai depender, lógico,
36:17do objetivo que se espera, né, da
36:19finalidade que se planeja. Então, o
36:21monotarefa ainda tem finalidade se a
36:23gente for analisar. Eu vou dizer para
36:25vocês que não é porque é, mas poderia
36:28ser, como eu falei, a questão de
36:30mineração de Bitcoin poderia ser
36:31monotarefa, mas hoje em dia, por
36:33praticidade não é, né? a gente acaba
36:36embarcando em sistemas operacionais
36:38multitarefa e tal, e os processamentos
36:41ali de Bitcoin vão acontecer em
36:42ambientes eh que ainda vai ter essa
36:45burocracia, esse overhead de chaveamento
36:48de tarefas.
36:50Ã,
36:52eu vejo aqui
36:56eh algumas perguntas interessantes. O
36:58Edson falou ali: "Então,
37:00ter múltiplos acessos facilitam um
37:02vazamento de dados?" Claro, eh, ter
37:05múltiplos acessos significa que você tá
37:06compartilhando, alguém pode vazar essa
37:08informação, tá? É natural, mas eh todo
37:12sistema que você for trabalhar, você vai
37:14ter que trabalhar com multitarefa, multi
37:16múltiplos acessos e naturalmente você
37:19vai ter que conviver com essa
37:21possibilidade.
37:22Fortn,
37:24eu não lembro o que que é esse Fortnet,
37:26Vinícius, Fortnet pode ser considerado
37:27monotarefa. Fortnet.
37:30Eu não tô identificando o que é o
37:32Fortnite que você está falando, meu
37:33amigo. Se você puder dar um
37:36contextualizar melhor o que é o Fortnet,
37:39[limpando a garganta] tá? Eh, ah, tá. O
37:42Edson falou, refiro múltiplos usuários.
37:44É, de fato, foi o que eu entendi também.
37:46Múltiplos usuários. De fato, você tem a
37:49possibilidade de vazamento, porque tem
37:50vários usuários, várias senhas para
37:52vazar, né? Uma delas pode vazar e dar
37:54problema para você.
37:57Eh, mesmo se vários usuários, terá
38:00sempre um administrador. Sim, não é o
38:02caso de você ter todo mundo ser
38:04administrador, então ninguém administrar
38:05nada, né? Na verdade, todo mundo eh todo
38:08mundo pode, né? Fica esquisito, né?
38:11Então, [roncando] mas o Fortnet, agora
38:14entendi, Fortnall, ele é multitarefa.
38:17Multitarefa, possivelmente multiusuário
38:19também. Se não me engano, Fortnet é um
38:22fire baseado em Linux também, tá? Então
38:25ele por trás lá tem eh um sistema Linux
38:28embarcado, sistema dedicado ali
38:30especialista, tal e e ele é multitarefa,
38:34ele você vai olhar lá dentro, ele tem
38:36vários processos acontecendo, tá?
38:39Fortgate, tá? O Fortgate é Fortnet é a
38:43marca, né? O Fortgate que é o o Firewall
38:45lá, ele a princípio é isso aí. Outras
38:47marcas de Fel certamente vão também usar
38:50sistemas multitarefa, porque
38:52eh é evidente que ele vai trabalhar com
38:55múltiplas conexões e se for um processo
38:58só chaveando múltiplas conexões, ele vai
39:01eh vai se perder. Ele precisa de
39:03múltiplos
39:05processos e eh trabalhando
39:07individualmente as conexões, tá?
39:10Bacana. Obrigado aí pelos
39:11esclarecimentos. E por fim, ali a
39:13quantidade de processadores, a gente vai
39:14perceber que tem uma uma
39:18um conjunto de, digamos, de complexidade
39:21tratando quando é monoprocessado
39:24para multiprocessado.
39:26Beleza?
39:28Ah, então a gente tem essas
39:30características aí para lidar. A
39:32classificação de sistemas operacionais
39:34quanto ao escalonamento, ou seja, quanto
39:36a regra, ao mecanismo de chaveamento
39:40entre processos. Ele pode ser em lote,
39:43ou seja, um processo por vez em
39:45sequência. Eu faço um script lá, uma
39:48sequência de tarefas e ela vai rodar em
39:50lote, tá? As duas palavras aparecem, né?
39:53O bet e tradução literal em lote, né? Em
39:57sequência, em pacote.
39:59E elas vão acontecer em sequência, um
40:01por vez. Não é porque chama um, chama o
40:03outro, chama o outro e vai fazendo. Não.
40:05Chama o primeiro, termina, chama o
40:07próximo, termina, chama o próximo e
40:09termina. Então é em sequência de fato.
40:13Tempo compartilhado é a estratégia
40:15normal, é o computador de vocês aí
40:17rodando, assistindo essa aula e tal,
40:20porque os processos eles vão pegando
40:22fatias de tempo e cada um faz um
40:24pouquinho. Como a gente tem bilhões de
40:26instruções por segundo, você consegue
40:28fazer muita coisa no mesmo segundo e
40:31parece que foi ao mesmo tempo, mas na
40:33verdade foi em sequência. inúmeras
40:35coisas acontecendo em sequência que
40:38foram muito rápidas aparentemente como
40:40se fosse ao mesmo tempo. E o sistemas em
40:43tempo real, eu não lembro se eu coloquei
40:45slides aqui para dar essa
40:48eh acho que eu coloquei para explicar. E
40:50o tempo real significa significa quando
40:54você tem um sistema que precisa
40:56responder no imediato instante em que um
40:59evento acontece.
41:00Eh, vamos pegar,
41:03vamos pegar sistemas tempo real,
41:04sistemas que
41:06eh eu que eu não queria usar exemplos
41:08que o hardware resolve, né? Porque se a
41:11gente falar, vamos dizer assim, um
41:12exemplo, um sistema que protege contra
41:16tiro, né? Aquele sistema lá os
41:18israelenses tem lá o o escudo de ferro
41:20lá que protege contra mísseis e tem o
41:23que protege contra disparo também. Ele
41:25tem que trabalhar no pentelhéso de
41:27segundo lá no no detalhe. E quando
41:30houver um um disparo vindo,
41:33outro evento tem que acontecer. Aquele
41:35lá é o hardware acontecendo, fazendo
41:38acontecer. Mas os sistemas em tempo real
41:40eles têm que dar resposta. por exemplo,
41:43eu quero responder na tela o nanosegundo
41:47que aconteceu um evento. Então, ele quer
41:49em tempo real e eu quero eh no momento
41:52que o evento aconteceu, eu quero
41:55registrar o o tempo do relógio que está
41:57lá na eh armazenado lá no relógio do
42:00computador e pegar esse tempo de relógio
42:02e mostrar na tela. Veja, é um exemplo de
42:04tempo real.
42:06Ah, o tempo real ele só vai acontecer se
42:10houver apoio de hardware, de contadores
42:13específicos, relógios específicos, ah,
42:16físicos, né, dando sinais pro sistema
42:18operacional para que ele entregue esse
42:21recurso. OK?
42:24Ah,
42:26eh, bacana que o Alan Felipe respondeu
42:28de domo, né? é o domo de ferro lá do dos
42:30israelenses lá que que protege lá da das
42:33questões de
42:35como é que é? De eh de ataques, né,
42:37ataques externos. E ele faz isso no
42:40nível hardware, né, não é o sistema
42:41operacional que vai definir, né, senão
42:43vai dar tela azul lá no no disparador do
42:45do do sistema de defesa, né? Então tem
42:49que ser o hardware fazendo aquilo lá.
42:51Então aqui a gente tá dando exemplos de
42:54situações em que acontece sistemas em
42:55lote. Eu dei uma ideia geral lá, a gente
42:57dá uma acelerada aqui nos nos exemplos.
43:01Ah, e o Alan Jones fez uma pergunta.
43:03Sistema operacional dá prioridade no
43:07tipo no escalonamento, tipo, se eu estou
43:09em um processo longo e preciso e preciso
43:12abrir uma aplicação mais simples e
43:14rápida, então ele executa, ele para,
43:16executa mais rápido e volta. Isso pode
43:18ser uma estratégia de escalonamento, mas
43:21ela tem que ser implementada. No fim das
43:23contas, o sistema operacional, ele tem
43:25que implementar a regra de escalonamento
43:28que seja mais justa, tá? A gente, eu, eu
43:31sempre falo sobre isso, que eh a
43:34política de escalonamento tem que ter
43:36pensar em justiça, OK? E por ela pensar
43:39em justiça, talvez ela tenha que
43:41terminar o que tá fazendo para começar
43:42outro ou eh ir alternando um pouco de
43:46cada um até e atender todos de forma
43:49equânime.
43:51Então, é parecido com o que você pensou,
43:52mas não é bem o que você pensou.
43:56Ã, só porque a aplicação é mais simples
43:58e rápida, não quer dizer que ele vai
43:59fazer primeiro, a não ser que dê um
44:01critério de prioridade para isso. Aí
44:03você vai estabelecer outro critério de
44:05escalonamento. Beleza? Bacana.
44:08Eh,
44:10é que faltava esse critério da
44:10prioridade, por isso que eu eh por isso
44:13que eu falei. Vamos lá. Então, em Bet a
44:16gente tem os sistemas multiprogramados,
44:18ou seja, eh não é monoprogramado, não é
44:21um processo somente, eu tenho múltiplos
44:23processos, mas eu vou executar somente
44:26um por vez em sequência, tá? E os
44:28sistemas em Bet costumam ser interação
44:31com o usuário. É aquele que você põe
44:33para executar, espera ficar pronto. Você
44:35sai de perto e deixa fazer funcionar.
44:38Ele demora para responder, mas costuma
44:40ser o desempenho melhorado quando
44:42comparado com sistemas interativos, né?
44:44Us de tempo compartilhado. Observa, a
44:46gente tem ali o processador e os
44:48processos vão chaveando, né? Primeiro
44:51um, depois outro, depois outro, depois
44:52outro, um pouquinho para cada um. E se
44:54todos rodarem um pouquinho de cada um,
44:56no mesmo segundo eu posso rodar todos,
44:58talvez até mais de uma vez, né? A ponto
45:01de parecer que tá sendo ao mesmo tempo.
45:05Ah, tem uma pergunta nova ali do Tom Tom
45:08Chess. Eh, esse escalonamento funciona
45:12em conjunto com as expectativas de
45:14requisitos mínimos de hardware que as
45:16empresas impõem sistema operacional como
45:17Windows 11?
45:19Não, o escalonamento é um algoritmo que
45:22é implementado pelo sistema operacional,
45:25seja o Windows 11, seja Linux, seja Free
45:27BSD, ele vai implementar essa
45:31eh essa política de chavear entre os
45:34processos, tá? e vai ser processos de
45:37usuário, processos do sistema
45:38operacional, todos os processos vão
45:40entrar no escalonamento. Ele vai ter os
45:42critérios lá estabelecidos no algoritmo.
45:45Eh, quando você fala em conjunto com as
45:47expectativas de requisitos mínimos de
45:48hardware,
45:51ele não é em conjunto, ele ele meio que
45:54usa, né, usa o hardware e se o hardware
45:57for a quem da necessidade, ele vai rodar
45:59lento. Eu vi um, não tem muito tempo
46:02ainda, esse ano falaram que um era um
46:06processador antigo, foi iniciar um
46:09sistema operacional moderno e levou tipo
46:12dias para abrir a tela de login, um
46:14negócio assim. Colocaram lá para
46:15processar. Como o processamento era
46:17muito lento comparado com o nosso nosso
46:19atual e por mais que o sistema
46:22operacional fosse pequeno, para ele
46:24abrir a tela de login, ele levou dias,
46:26mas mas rodou, entendeu? Eh, o hardware
46:29era abaixo do requisito mínimo, mas
46:30rodou. Então,
46:33sistemas em tempo compartilhado estão
46:35relacionados a sistemas
46:37multiprogramados, senão não seria tempo
46:38compartilhado, compartilhado de um só,
46:40né? Vai chavear de um só. E a fatia de
46:42tempo entre os processos. Eh, nós que
46:45fizemos escalonamento ao próprio sistema
46:47operacional. Isso mesmo, Vânia. É o
46:49sistema operacional que faz. O que a
46:51gente precisa saber nesse momento é que
46:53ele faz. E as regras gerais que ele faz.
46:56Outro aspecto que eu gosto de falar nas
46:59aulas, que é justamente o que que me
47:01atrai mais, inclusive paraa carreira que
47:03vocês escolheram, né, de desenvolvimento
47:05de sistemas, mesmo que tenha alguém aí
47:07na turma que seja de redes, eh mesmo que
47:11eh
47:13mesmo que seja pessoas que vão trabalhar
47:15na segurança, não tem problema.
47:18Vocês vão ter que entender o sistema
47:20operacional, compreender por que a gente
47:22Ah, obrigado aí, Tomess, valeu aí a a
47:25ideia aí. Eh,
47:27na verdade, vamos eh vamos pensar assim,
47:31todas as características que eu tô
47:32falando, elas vão trazer insites,
47:35conhecimento e ideias para vocês de como
47:37os problemas foram resolvidos com o
47:39passar dos anos. Porque imaginem, nós
47:42saímos lá nos nos anos 80, os primeiros
47:46PCs desktop, né, os primeiros
47:48computadores pessoais que surgiram, que
47:49as pessoas levaram para casa, começaram
47:51a programar por conta própria e
47:53começaram a compreender como usar e tal.
47:55eh eles tinham limitações severas na
47:57quantidade de memória, capacidade de
47:59processamento. Então, eh tudo que foi
48:02feito foi feito com muita criatividade
48:05para dar certo, né? Eh, imaginem o Atari
48:082600, ele tinha o quê? Ele tinha quantos
48:11kiles de memória? Acho que era 2 KB ou 4
48:13KB de memória. Imagina você ter isso e
48:17conseguir programar o River Raid lá, o
48:20Enduro, né? Jogos que são até hoje são
48:23divertidinhos, né? Mas eu tinha quilobby
48:25de memória para fazer isso, né? Então,
48:28se vocês procurarem o histórico dessas
48:30tecnologias,
48:32vocês vão ver ideias muito interessantes
48:34para otimizar código hoje em dia, para
48:36fazer soluções interessantes hoje em
48:37dia. E o que eu vou falar daqui paraa
48:39frente em sistemas operacionais são
48:41insites dessas características que hoje
48:44nos acompanham, né? como o escalonamento
48:46começou, os algoritmos eh rudimentares
48:49que apareceram e a combinação deles que
48:52gera o que a gente consegue eh ter de
48:55solução hoje. E eu vejo a discussão de
48:57vocês aí, eu vou ter que avançar no
49:00conteúdo.
49:01Eh,
49:03deixa eu ver aqui. Eh, só tem ali, tem
49:07muitas informações. Se vocês tiverem
49:09alguma pergunta mais específica assim,
49:11por favor, vocês repitam, porque eu vi
49:13que surgiu um monte de mensagem aqui
49:14agora. me perdi. Mas olha só,
49:17classificação dos sistemas em tempo real
49:20é aquela que eu tinha falado lá do do
49:22hardware dar a eh dar apoio para que o
49:25sistema operacional entregue o de fato
49:28tempo real, o o ciclo de CPU ser base
49:31para entregar essa resposta o quanto
49:34antes, né? Então as interrupções de
49:36hardware são mandatórias, né? Para você
49:39ter a resposta ali em tempo real. E os
49:42temporizadores, tanto de software como
49:44de hardware, são mandatórios. A gente
49:47tem aí a classificação de sistemas
49:48operacionais de rede, é uma
49:50classificação eh fundamental porque
49:54eh vocês vão compreender a diferença
49:56deles para outras classificações, porque
49:58ele precisa de características para
49:59comunicação e e o funcionamento. Vamos
50:03lá. O sistema operacional, ele vai
50:05funcionar os aplicativos dele, no escopo
50:08dele, no hardware dele, tal.
50:11Só que quando ele vai falar em rede, ele
50:13não precisa necessariamente conversar
50:15com um sistema operacional igual, ah,
50:18com programas iguais, enfim, ele precisa
50:20de um dialeto comum, né? Um, digamos,
50:24aqui no Brasil a gente fala português,
50:25na China fala mandarim e a gente quer
50:28conversar com eles, a gente não tem um
50:30idioma comum. Vamos falar os dois, vamos
50:31falar inglês, por exemplo. Vamos pegar
50:32um exemplo esdrúxulo aqui, mas é mais ou
50:35menos a ideia. Eu tenho um dialeto comum
50:37para eh que computadores diferentes
50:39conversem. Veja, sistemas operacionais
50:42de rede, né, eles eh coexistem, eles
50:47sabem, você tem noção de que existem
50:49dois computadores, eles têm noção um do
50:51outro e eles não precisam
50:53necessariamente serem iguais, eles podem
50:55ter sistemas operacionais diferentes. O
50:56que interessa é que eles tenham dialeto
50:58para conversar em comum
51:00e eles podem compartilhar recursos em
51:02rede com base nesse dialeto, né? seja
51:05por chamadas estrangeiras, seja por
51:07chamadas remotas, quero dizer, eh, ah, o
51:11Maurício respondeu a pergunta ali, um
51:13exemplo de sistema operacional
51:14compartilhado. É que você fala de tempo
51:16compartilhado, Windows e Linux são de
51:18tempo compartilhado, tá? Eh, que não é
51:21compartilhado, é sistema operacional em
51:23tempo compartilhado, tá? É o tempo
51:25compartilhado entre os processos. Acho
51:27que foi isso que faltou a a o se é isso
51:31que te te gerou confusão, né?
51:34E o Luís Moura fez outra pergunta.
51:35Quando um fabricante homologa um sistema
51:37operacional, significa que ele testou o
51:38sistema em seu hardware? Sim, é isso
51:40mesmo. Ele homologa, é claro, tem que
51:42molhar a mão, né? Quem quer rir, tem que
51:44fazer rir. Eh, eu homolo lá o sistema
51:46operacional porque o o desenvolvedor do
51:49sistema eh combinou comigo, ó, pô, é
51:52homologado, vai impulsionar minhas
51:54vendas porque eu vou vender pro para
51:56quem comprar seu hardware. Então, a
51:57gente faz essa combinação.
51:59Eh, além do que, enfim, você pode vender
52:03a fazer a venda casada, como a gente
52:05compra computadores com
52:07eh computadores com sistema embarcado já
52:09instalado, porque daí você facilita a
52:11implantação dele depois pelo usuário.
52:14Eh,
52:16e aqui a gente começa a falar então
52:18quando a, voltando pro sistema
52:19operacional de rede, que a gente já deu
52:20todos os detalhes, em comparação com
52:23sistemas operacionais distribuídos, que
52:26a gente tem a ideia de sistemas
52:27operacionais multicomputadores, sistemas
52:29em grade, né, em que você tem uma
52:32resposta eh
52:34que é respondida pelo grupo, né? Então
52:37você tem, por vezes, vamos supor, o
52:38Facebook, o Google, você faz lá, abre o
52:41página do Facebook, parece que você tá
52:43indo em um servidor, mas na verdade é um
52:45grupo de servidores que responde pelo
52:47mesmo serviço como se fosse um só. Você
52:50vai na página do Google, eh, e, e é um
52:53grupo de servidores que responde pelo
52:54mesmo serviço, mas parece um só. Então
52:57essa comparação é uma uma ideia de um
52:59funcionamento em grade, o grid, grid
53:02computing, né, ou em cluster, em
53:04conjunto. Ah, o ponto é que esses
53:08sistemas eles respondem como se fosse um
53:10só. Então todos eles têm que ter o mesmo
53:13sistema, o mesmo software rodando, eh as
53:17respostas têm que ser padronizadas
53:18iguais e tal, mas eles respondem como se
53:21fosse um conjunto, tá? a mesma aplicação
53:23executada em vários computadores. Muito
53:25bacana isso aí.
53:28Ainda pela classificação de sistemas
53:29operacionais, é importante a gente
53:31lembrar de sistemas eh interativos
53:34embarcados, computadores pessoais e
53:36servidores. São quatro classificações
53:38fundamentais. Sei, acho que é, eu acabei
53:40colocando sistema interativo, todo
53:41aquele que o usuário pode executar
53:43comando, seja ele servidor, seja ele eh
53:45eh estação de trabalho, eh mesmo o
53:49sistema embarcado é interativo também,
53:51né? A não ser que ele não seja
53:53interativo, né? que você não tem
53:55interface de comando. Ah, professor,
53:56fala um sistema não interativo.
53:59Ahã. Sistema dentro de Arduino. O Arduío
54:04ele provê serviços, ele conversa com
54:06outros servidores, mas ele não é
54:08interativo pro usuário, a não ser que se
54:10coloque uma interface, né? Mas, por
54:11exemplo, um Arduíno que esteja tenha
54:14sensores e esses sensores sejam eh
54:17consumidos por outros sistemas, então
54:19ele vai ter um sistema operacional
54:21embarcado e e não interativo, né? Então,
54:26eh veja uma uma situação aí específica
54:29ali, ó. O suporte TI monitoramento fez a
54:32gente lembrar de uma coisa bem antiga,
54:34de muito antigamente, o Red Novel com
54:36estação terminal burro sem HD, eh, dando
54:40boot pela rede, usando sistema
54:41operacional somente. Então, esse aí você
54:44tá querendo lembrar,
54:46ah,
54:48esse aí parece grade, mas não é grade
54:50não, esse aí é sistema operacional em
54:51rede, tá? Porque quando você roda ele
54:54[limpando a garganta] em terminal
54:55remoto,
54:58o terminal remoto tá rodando o sistema
55:00operacional na rede e tá só visualizando
55:02a tela no remoto. Essa visualização de
55:05tela, mesmo assim, o sistema operacional
55:07é de bacana, bacana esse aí. Eh,
55:12eh, o sistema operacional em rede, ele
55:14tá trabalhando em rede, OK? E o terminal
55:16remoto, só vê a tela projetada lá do do
55:20servidor do do terminal remoto. Ele é um
55:24sistema operacional em rede, tá? Ele não
55:25é grid não, tá? Esse aí não é grid.
55:29A pergunta do Oziel também, ó, em
55:31sistemas distribuídos do sistema
55:32operacional em Linux ou em Windows, dá
55:34para fazer os dois. Você pode ter o eh
55:38em sistemas distribuídos, você pode ter
55:39os dois. A questão aqui é que eh a
55:44tendência é que todos tenham que ser
55:45iguais para eles poderem compartilhar os
55:48recursos de uma forma homogênea. O que
55:50pode acontecer também é você fazer uma
55:52um grid usando contêiner. Aí você vai
55:55ter um sistema Linux, o contêiner eh
55:59embarcado eh hospedado nesse Linux e
56:03conversando em rede, aí você dá para
56:05fazer uma farofa aí. Mas o Windows ele
56:07pode também ter contêiners, né? embora
56:09ele vai usar WS para poder eh eh simular
56:12o ambiente Linux. Então, eh é um é uma
56:15bagunça, é uma bagunça, mas não é
56:17limitado a Linux, não. Eh, sistemas das
56:21lâmpadas inteligentes, olha que pergunta
56:23interessante do Luiz Moura. Sistema de
56:25lâmpadas inteligentes, eles são eh
56:28embarcados, né? Aí os de lâmpada
56:30inteligente, eu acho que ele, eu nem sei
56:32se tem sistema operacional naquilo, eu
56:33acho que não é considerado sistema
56:34operacional. Eu acho que são só
56:37dispositivos mesmo. Ah, mas ele conversa
56:39em rede, né? Aí dependendo se ele se ele
56:42receber eh identificação na rede e
56:46responder em rede TCPIP, aí vai dar
56:48diferença. Eu não tenho certeza para
56:50falar não. Eu tenho a impressão de que
56:52ele nem tem sistema operacional,
56:55porque daí é só o hardware que tá
56:56conversando com você ali, OK?
57:00E ele seria considerado embarcado, seria
57:02considerado embarcado interativo, né?
57:04Porque tem um botão ali de ligar e
57:05desligar.
57:06Eh, bacana, bacana. Mas
57:11eh
57:13tá, o Luís Moura falou, podemos
57:15controlar até pelo celular, mas aí
57:17depende de um controlador, não é isso
57:18que a Vânia falou ali, mas depende de um
57:20controlador. Eu acho que tem que ter um
57:22controlador,
57:23um terceiro no caso, porque se ele for
57:26independente, ele receber IP na sua rede
57:28e você comunicar diretamente, aí
57:30significa que ele tem um sistema
57:32embarcado lá, como se fosse o Arduío que
57:33eu falei, tá? Então aí vai ser um eh
57:38sistema embarcado. E aí aqui a gente tá
57:40falando de sistemas embarcados, que esse
57:41é o elemento. O que que é o sistema
57:43embarcado? É um sistema especialista que
57:45só funciona naquele hardware.
57:48A exemplo da lâmpada inteligente que
57:49você acabou de citar, a exemplo dessa
57:52geladeira aí que tem uma tela ali para
57:54pra pessoa instalar e paraa pessoa
57:56interagir e é específico para
57:59dispositivo.
58:01Beleza? Então, muito bacana as
58:03observações de vocês. Então, sistemas
58:05embarcados interativos ou não, né? Tal
58:08eh o fato dele conversar em rede, ele é
58:11um sistema em rede, mas se ele não tiver
58:13ali uma interface nele mesmo para você
58:16eh interagir, ele não é considerado
58:18interativo. Se ele falar em rede, ele tá
58:21sendo interativo pela rede, não é?
58:23Entendam que os conceitos são
58:24diferentes, né? interagir local nele
58:27diretamente com tela, com mouse,
58:29teclado, seja o que for, botões ali.
58:31Seria a ideia do interativo.
58:34Beleza? Avançando aqui, vamos fugir
58:36dessas filosofias, né? Vamos a aos
58:38fatos. Eh, a questão é que computadores
58:41pessoais são interativos, são eh
58:43multiprocessados agora, são eh
58:46multitarefa, multiusuário. Eu coloquei
58:49essa tela de Windows XP aí só para matar
58:51saudade, né, da do campinho dos
58:52Teletubs.
58:54Mas só pra gente lembrar que é desde
58:56essa época aí de muito antes até, os
58:58sistemas já eram os sistemas de
59:01computadores pessoais e para tarefas
59:03domésticas em comparação com servidores.
59:06Ah, a ideia do servidor é ele prover
59:10serviços. É por isso que a gente fala
59:11servidor. Serve, né? Serve para alguma
59:14coisa. Ele serve o quê? Página web,
59:17serve banco de dados serve serve de
59:20prover, né? Servir. Ah,
59:24ele entrega quaisquer serviço que seja,
59:27compartilhamento de arquivos, etc.
59:29Então, todos esses aspectos,
59:32ã, tornam ele um servidor. Ah, meu
59:35computador em casa pode ser um servidor?
59:37Pode, pode. Se você colocar serviços
59:39nele e consumir de fora, ele está
59:41fazendo papel de servidor, tá? Eh, a
59:44ideia é que o servidor dedicado vai ter
59:48serviços que vão ser usados por um
59:50grupo. Então, a gente acaba criando em
59:52um e esse servidor em um hardware mais
59:55robusto para poder atender o grupo. Ao
59:57passo que seu computador em casa pode
59:59ter 8 GB de memória e vai resolver o
1:00:02problema, eh, o servidor às vezes
1:00:04precisa de 100 GB e talvez fique lento,
1:00:06né? Porque muita gente acessando isso,
1:00:09dando eh eh detalhes eh meramente em
1:00:13termos de memória. A gente tem que
1:00:14pensar também processador, placa de
1:00:16rede. Opa, Liverson, bem-vindo de volta
1:00:19aí. Maravilha. Eh,
1:00:22e então pensando assim, placa de rede,
1:00:25quantidade de processadores, ah, a
1:00:28quantidade de memória que a gente falou,
1:00:30velocidade de armazen do armazenamento,
1:00:31etc., né?
1:00:36Ah, olha que ideia bacana ali. Eh, lá
1:00:39Loureiro falou: "O roteador é um sistema
1:00:41embarcado que controla um sistema
1:00:42específico." Bacana, muito bacana sua
1:00:44ideia. O roteador, de fato, tem um
1:00:46sistema operacional próprio dele,
1:00:48embarcado, eh, específico, que opera em
1:00:52rede e, a princípio é eh, a princípio é
1:00:56multiuário, a princípio é multitarefa,
1:00:58né? Então, a gente tem todas essas
1:01:00classificações pros dispositivos que
1:01:02você agora vocês podem pegar as
1:01:04classificações que nós falamos e sair
1:01:06classificando os dispositivos. Vamos lá.
1:01:08O smartphone. O smartphone que tipo que
1:01:10é? É embarcado? É multitarefa,
1:01:12multiusuário? Então vamos pegando aí.
1:01:14Vamos e por aí vai. Certo? Eh,
1:01:19deixa eu ver.
1:01:21Eu tô vendo que vocês têm bastante
1:01:23interações aí. Eu vou eu vou avançar.
1:01:25Beleza?
1:01:27Agora a gente vem paraas próximas
1:01:28classificações fundamentais que nós
1:01:30temos aí. Uma delas e das principais é
1:01:33processo.
1:01:35Que raiz é processo, professor? processo
1:01:37é quando eu pego um programa, um código
1:01:40lá, uma sequência de instruções, coloco
1:01:42na memória e digo que ele vai ser
1:01:45executado, vai ser processado, vai
1:01:48passar pelo CPU, né, pelo processador
1:01:50central de processamento. Então, por
1:01:53isso que ele se chama processo, que ele
1:01:54está em processo.
1:01:56Ele é basicamente então uma sequência de
1:01:58instruções que vai ser executado e a
1:02:00gente precisa conhecer as
1:02:01características delas dessa sequência de
1:02:04instruções, os metadados que o o eh que
1:02:08o circundam pra gente poder compreender
1:02:11como o sistema operacional manipula esse
1:02:13programa. Porque vamos lá, o sistema
1:02:15operacional vai colocar esse programa em
1:02:16memória, vai trazer esse código paraa
1:02:18memória e vai identificá-lo de uma forma
1:02:21que ele consiga mandar eh eventualmente
1:02:24ele ser processado de forma ordenada.
1:02:27Ele precisa dos metadados para isso. E
1:02:29quais são os metadados? Ah, não, daqui a
1:02:32pouco a gente fala dos metadados. Faltou
1:02:33um detalhe ainda.
1:02:35Se eu carregar o mesmo programa duas
1:02:37vezes na memória, eles são dois
1:02:39processos, tá? Se eu abrir duas vezes o
1:02:41bloco de notas, são dois processos de
1:02:43bloco de notas separados, tá? Se eu
1:02:45tiver dois navegadores, são dois
1:02:47processos de navegador, embora o mesmo
1:02:49código, mas a gente vai ver que a
1:02:50execução deles gera resultados
1:02:52diferentes.
1:02:54Da mesma forma, então os processos eles
1:02:56podem ser de primeiro plano e de segundo
1:02:57plano. O foreground que a gente fala de
1:03:00primeiro plano são os processos que têm
1:03:02interação com o usuário e os processos
1:03:04de segundo plano é o que a gente vai
1:03:05chamar de serviço. Fica eh que só os
1:03:09próprios processos conseguem interagir.
1:03:11nós usuários não conseguimos interagir
1:03:13com os processos de segundo plano,
1:03:15beleza? dos dados ali, então, que são eh
1:03:19estruturados para manipular do processo,
1:03:21a gente tem o contexto de software, o
1:03:22contexto de hardware e os espaços de
1:03:24endereçamento. Essas três perspectivas
1:03:26que são colocadas ali, tá ali no
1:03:28diagrama da direita, é assim, são os
1:03:30metadados que esse processo tem para que
1:03:34o que o sistema operacional consiga
1:03:37manipulá-lo.
1:03:38tipo o process ID, ou seja, o código do
1:03:43processo, o número do processo está em
1:03:45execução que o próprio sistema
1:03:46operacional atribui quando inicia ele.
1:03:49usuário que iniciou, que por vezes é um
1:03:52código também, um número de usuário, a
1:03:55prioridade do processo, a data de
1:03:56criação, o tempo que já usou de CPU, eh
1:04:00quanto tempo já usou e quanto tempo, eh,
1:04:02pode vir a usar, as cotas de CPU, cotas
1:04:05de acesso que ele pode ter, os
1:04:07privilégios que pode ter. Então, todas
1:04:09essas características e outras
1:04:12são controladas pelo sistema operacional
1:04:14para determinar eh quando esse processo
1:04:17vai entrar em execução de novo, tá? São
1:04:19características que vão eh o ser usadas
1:04:22para determinar isso, né? As o contexto
1:04:25de hardware já prevê a instrução que vai
1:04:29ser executada, seja a primeira ou a
1:04:30enésima que que vai ser executada ali
1:04:32naquele momento. Ele precisa guardar
1:04:34essa informação.
1:04:36Eh, por que que é contexto de hardware?
1:04:38Porque tem a ver com o hardware de fato,
1:04:39né? Tem a ver com a posição da memória
1:04:41em que eh está a instrução que vai ser
1:04:43executada. Ah, a pilha de execução,
1:04:46quantos valores tem na pilha de
1:04:48execução, o status do programa, se ele
1:04:50está aguardando a entrada de saída, se
1:04:52ele está pronto, se ele está iniciando,
1:04:54etc.
1:04:56E e os próprios registradores de
1:04:58propósito geral que vão ficar lá no
1:05:00processador eh em termos de eh em termos
1:05:04de uso dele, né? Aí vai depender da
1:05:06arquitetura, inclusive do próprio
1:05:08processador. O espaço de endereçamento é
1:05:11as áreas corresponde às áreas de memória
1:05:14que o processo tem acesso.
1:05:16Então ele processo vai iniciar, precisa
1:05:19de memória, vai alocar essa memória para
1:05:20ele e ele vai ter isso eh registrado
1:05:23para ele lá isolado o a área de memória
1:05:25que ele tem direito. que não estiver no
1:05:27escopo da área de memória que ele tem
1:05:29acesso, o sistema operacional em
1:05:32conjunto com a unidade de gestão de
1:05:34memória vai proibir ele de acessar
1:05:37outras áreas, né? Ele tem que ser
1:05:38primeiro autorizado a essa área de
1:05:40memória para depois ter acesso a essa
1:05:43área de memória. Veja a importância do
1:05:45espaço de endereçamento ser controlado
1:05:47pelo sistema operacional de forma bem
1:05:49decisiva ali, incisiva.
1:05:51Eh,
1:05:53a gente vai falar disso agora mesmo. A
1:05:55Oziosiel perguntou: "Professor,
1:05:56escalonamento que organiza o início do
1:05:57processo". Exatamente, Oziel. É Oziel,
1:06:01né? É o Oziel. Isso é que entrou a
1:06:03mensagem do Alan em seguida. Aí eu eu li
1:06:05O Oziel e de repente eu vi Alan. Aí eu
1:06:08confundi, mas beleza. Eh, escalonamento
1:06:11que inicia, isso mesmo. E o Alan
1:06:13perguntou em seguida, como ele calcula a
1:06:14prioridade de alocação de memória? Aí
1:06:16vai depender da política do sistema
1:06:18operacional. é uma política justa, tão
1:06:20justa quanto possível, mas eh cada
1:06:23sistema operacional eh eh determina
1:06:27a prioridade de alocação de memória. É
1:06:31interessante sua pergunta porque ele vai
1:06:35autorizar a acesso à memória de acordo
1:06:38com a necessidade do processo. O
1:06:39processo fala: "Preciso de memória". Ele
1:06:41vai lá, prioriza esse acesso. Se não
1:06:43houver mais espaço, vai usar memória
1:06:45virtual. se não houver mais espaço, vai
1:06:47falhar miseravelmente e vai dizer: "Não
1:06:50posso mais alocar espaço, o seu processo
1:06:51vai ser terminado". Porque a ideia é
1:06:54atender o que o processo pedir, né? O
1:06:56sistema operacional, ele só vai coibir
1:06:58esse acesso ele for autorizado. Por
1:07:01exemplo, digamos [limpando a garganta]
1:07:03aqui num caso hipotético, o processo tem
1:07:05acesso aos endereços de 0 a 1000.
1:07:09Se ele tentar acessar o 1001, o sistema
1:07:11operacional vai dizer que não pode. Esse
1:07:14que é o ponto, tá? Agora, se ele pedir
1:07:17mais espaço do 1001 até o 2000, o
1:07:20sistema operacional, se estiver
1:07:22disponível, ele vai alocar. Claro que
1:07:24não é o espaço específico de não é o
1:07:28local, a área de memória específica que
1:07:30vai ser alocada, mas sim a quantidade de
1:07:33memória que vai ser alocada. Ah, eu
1:07:34preciso de 1 me ele vai lá, entrega 1
1:07:36mega. Eu preciso de um mais 1 me entrega
1:07:382 me, eu preciso do endereço tal de
1:07:40memória. Se não corresponder ao endereço
1:07:42autorizado, ele não vai deixar acessar.
1:07:44Eu acho que esse é o ponto que que é
1:07:46importante vocês terem a entenderem a
1:07:48diferença. Quando a gente falar de
1:07:50memória, a gente vai falar desses
1:07:52aspectos com mais calma. Provavelmente
1:07:54na entre a segunda e terceira aula vai
1:07:56dar tempo da gente falar exatamente
1:07:58sobre isso.
1:08:00O que que é um processo em memória? Ele
1:08:02vai ter, então, quando eu trago do
1:08:04armazenamento e coloco na memória, eu
1:08:06vou trazer instruções e, provavelmente,
1:08:09dados. E na maior parte das vezes vai
1:08:13ter dados associados eh a um, digamos
1:08:16assim, um estado inicial da aplicação.
1:08:18Eu tenho valores iniciais ali que vão
1:08:20aparecer, mesmo que sejam eh valores que
1:08:25se eu falar em um um texto que aparece
1:08:27na tela eh para um campo que eu vou
1:08:30preencher depois, aquele texto é um
1:08:32valor fixo que a aplicação tem. Então
1:08:35aquilo lá já é um dado, tá? Não é
1:08:36necessariamente uma instrução, é um
1:08:38dado. Por isso que eles vão vir dados e
1:08:40instruções já no corpo lá da aplicação,
1:08:43no arquivo original da aplicação. E
1:08:46conforme ela vai executando, ela vai
1:08:47operar o HIP, que são os objetos,
1:08:50digamos, globais, né? Os os termos
1:08:53globais, as variáveis globais
1:08:56e e a pilha, que é a execução local.
1:08:59Então, quando eu crio um programa, ele
1:09:01vai vir com os dados e instruções,
1:09:02beleza? Aí eu vou começar a criar lá os
1:09:05objetos globais, um eh eh as classes
1:09:08principais, eu vou alocando elas e elas
1:09:10vão ah eh subindo esses objetos em
1:09:13memória, criando os os globais, eles vão
1:09:16ficar no hiço.
1:09:19Ah, eu vou chamar uma função aqui do do
1:09:21calcula, qualquer coisa. Esse calcula
1:09:24vai ter variáveis, vai ter eh
1:09:27parâmetros. Esses valores de parâmetros
1:09:29e variáveis, eles vão paraa pilha, que
1:09:32ela vai ser eh dinâmica. Toda execução
1:09:35vai ter, cada chamada de função vai ter
1:09:38um vai empilhar. Depois que eu empilho
1:09:41os valores dela, executo e termino, eu
1:09:43desempilho esses valores e termino a
1:09:45execução da função. Então a pilha ela é
1:09:48bem dinâmica, ela vai alterando ali
1:09:50dinamicamente, separado da HIP. Essa é a
1:09:53filosofia geral de funcionamento de um
1:09:56processo em memória, tá? Eu posso ter
1:09:58vários processos, cada um deles vai se
1:10:00comportar dessa forma. Eh, se eu
1:10:02precisar de mais espaço para pilha,
1:10:04naturalmente que o sistema operacional
1:10:06vai conceder esse espaço. Se eu precisar
1:10:08de mais espaço para RIP também, mas a
1:10:10ideia é que esses quatro elementos eles
1:10:12existem, eles coexistem dentro do espaço
1:10:15de memória autorizado pro processo. OK?
1:10:19Eh, a gente falou muito desses
1:10:21elementos.
1:10:24Ah, muito bacana a pergunta do Luca
1:10:26Lucas Alves. É, as funções em baixo
1:10:29nível como no debugger.
1:10:31Eh, o debugger e funções de baixo nível,
1:10:34eu acho que a gente tá confundindo os
1:10:35conceitos. O debugger é quando você vai
1:10:39olhar o que está escrevendo conforme as
1:10:41as instruções são executadas. Beleza?
1:10:43Isso é debugar, é o é o analisar o
1:10:47código conforme ele executa. Funções em
1:10:50baixo nível. Eu acho que você está
1:10:52dizendo as funções que você executou lá,
1:10:54as funções que o seu código tem. Digamos
1:10:56que eh são funções específicas, né,
1:11:00conforme eu vou chamando as funções. Eu
1:11:02tenho a função soma, função empilha,
1:11:05desempilha, enfilera.
1:11:08a função inclui no no arrei, a função
1:11:12grava no arrei, ordena, são funções.
1:11:15Cada função dessas vai ter variáveis,
1:11:17vai ter parâmetros e é por isso que elas
1:11:19usam a pilha que eu citei, ok? Então,
1:11:22muito bacana a sua pergunta, Lucas. Mas
1:11:24é só pra gente ter, quando você fala em
1:11:26baixo nível, eu tô entendendo que são as
1:11:27funções implementadas no código. Então,
1:11:30eh, não necessário. Quando a gente, e
1:11:32quando se usa o termo baixo nível, a
1:11:35gente tá considerando, eh, mais próximo
1:11:38da linguagem de máquina, tá? Então, o
1:11:40que a máquina entende lá, os códigos
1:11:41binários que ela entende, a gente diz
1:11:43que é baixo nível. E o alto nível é
1:11:45quando a gente escreve código em PHP,
1:11:48Python, C, é o alto nível que é o que a
1:11:50gente consegue interpretar, que depois
1:11:52vai ser compilado pra máquina poder
1:11:54entender, tá? Só para definir aí esse
1:11:56negócio do baixo nível. Aí o Cadu falou
1:11:59ali, essa memória que você falou é que
1:12:02tem disponível para o sistema ou
1:12:03especificamente, tipo RAM Cash. Memória
1:12:06principal. A memória principal é alocada
1:12:09como sendo a memória RAM, tá?
1:12:12da RAM. Se a gente olhar lá na
1:12:14arquitetura de computadores, quando eu
1:12:15vou executar, eu copio da RAM para Cash
1:12:18e a Cash vai sendo usada pelo
1:12:20processador, no caso, vai copiando da
1:12:22cash pros registradores e executando as
1:12:24instruções, tá? A cash porque é mais
1:12:26próxima do processador e mais rápida e a
1:12:29memória RAM ela é mais ela é maior, né?
1:12:32Então eu consigo trazer o programa para
1:12:34RAM e transferindo para Cash conforme os
1:12:37trechos que vão ser executados. Beleza,
1:12:39pessoal?
1:12:43Muito bacana a sua pergunta. Obrigado
1:12:44pela todas as perguntas que eu tô
1:12:46tentando responder. Vejam que elas têm
1:12:48finalidade, né? A gente tá a gente tá
1:12:50muito tem uma sinergia muito boa aqui,
1:12:52porque eu percebo que as perguntas de
1:12:54vocês estão bem voltadas para pro
1:12:56conteúdo. É desse jeito que vai dar
1:12:58certo. Beleza, pessoal?
1:13:02Fico feliz aí que vocês estão
1:13:03aproveitando as explicações.
1:13:05E vamos lá. A gente já explicou da
1:13:07pilha, falei da RIP.
1:13:10Eh,
1:13:12ah, eh, o Alan falou uma pergunta. A
1:13:15cash deve ser coisa bem específica
1:13:17porque o tamanho pequeno, 16 m por aí.
1:13:20Alan, eu vou falar aqui e talvez quando
1:13:23a gente falar de memória de novo, mas eu
1:13:25eu é uma questão de arquitetura de
1:13:27computadores, então não é sistemas
1:13:28operacionais, mas está totalmente
1:13:29voltado para cá. Eh, a cash ela está
1:13:33próxima do processador. Se o processador
1:13:36tivesse que ler da memória RAM
1:13:38diretamente, ele demoraria vários ciclos
1:13:41de CPU até trazer eh aquele dado para
1:13:45dentro do registrador do processador.
1:13:47Então, é ineficiente esse que é o ponto.
1:13:51Para que a memória eh seja lida tão
1:13:54rápido quanto o processador pode ler,
1:13:57ele tem que estar no cash. Só que se eu
1:13:59fizer a memória RAM com cash, vai ficar
1:14:02caríssimo e vai ficar vai gerar muito
1:14:05calor, porque a memória cash consome
1:14:08muita energia, então fica inviável, você
1:14:10só consegue ter cash pequena. A cash,
1:14:13inclusive ela fica eh fisicamente no
1:14:16processador, tá? ela já vem já eh
1:14:19embutida no processador para ser mais
1:14:21rápida possível que que você tiver
1:14:23acesso. E e ela é pequena justamente por
1:14:27por quanto essas questões físicas que eu
1:14:29falei, né, de custo e geração de calor.
1:14:31E a memória RAM, ela vai ser muito mais
1:14:35rápida do que o armazenamento, então é
1:14:36melhor deixar os programas nela para
1:14:38poder utilizar, mas ainda assim e não é
1:14:43legal ler diretamente da RAM para gravar
1:14:45nos registradores do processador por
1:14:47conta de desempenho. Então a gente lê
1:14:49pedaços da memória RAM e grava na Cash
1:14:52para que na hora de executar seja tão
1:14:54rápido quanto possível, tá? E vai lendo
1:14:56e vai fazendo isso em blocos, tá? Essa
1:14:59que é a filosofia que se faz. Essa
1:15:02filosofia ela acontece na arquitetura de
1:15:04computadores com eh com ah
1:15:09de uma forma, digamos, incisiva, né? O
1:15:11objetivo dela é na arquitetura de
1:15:13computadores. E o sistema operacional
1:15:15usa esses recursos. Não é o sistema
1:15:17operacional que manda copiar para cash,
1:15:20é o hardware, tá? Mas o sistema
1:15:22operacional determina o que vai ser
1:15:24executado e aí o hardware vai fazer as
1:15:26cópias para cash e tal, tá? Às vezes, da
1:15:29forma como eu explico, pode confundir,
1:15:31parecer que o sistema operacional que
1:15:33manda copiar para cash, mas existe uma
1:15:35otimização de hardware em cima disso.
1:15:38Beleza, pessoal?
1:15:40Então, esse é o momento pra gente Ah,
1:15:42obrigado, Razix, aí que tá tá clareando
1:15:45aí, tá compreendendo. Eh, vejam que
1:15:48estudar arquitetura de computadores vai
1:15:49trazer mais clareza ainda para vocês
1:15:51conforme vocês se aprofundarem nos
1:15:53temas. Por isso que a gente precisa
1:15:54falar dos dois. E por isso que eu falo
1:15:56muito que algoritmos está relacionado
1:15:58com isso, porque aqui, ó, a gente falou
1:16:00aqui de como o programa funciona na
1:16:02memória. Na hora de implementar os
1:16:03algoritmos, você vai perceber essas
1:16:06nuances que eu estou falando, OK? Eh,
1:16:11e bacana, vocês estão aí. Que bom que a
1:16:12gente tá avançando no assunto. A gente
1:16:14falou do RIP da cash, falamos do do RIP
1:16:17da pilha, falamos ali do das instruções
1:16:21e dos dados, né? E agora aqui o que é o
1:16:23processo? O processo é esse conjunto da
1:16:26obra que vai sendo executado, ele é um
1:16:28fluxo de execução, ele vai sendo
1:16:30executado as instruções conforme a
1:16:32orientação lá do do o acesso do sistema
1:16:34operacional, recursos gerenciados pelo
1:16:36sistema operacional. Só que alternar de
1:16:39um processo para outro, veja o que que
1:16:41eu falei de tudo isso que está
1:16:42relacionado. Quando eu copio as
1:16:44instruções para cash, eu tive um gasto,
1:16:47um um recurso físico ali que ah, beleza
1:16:51aí. eh um um consumo de recurso que é
1:16:59isso aí. O o Oziel fez a pergunta: "E
1:17:01quem controla essa questão da cash?" O a
1:17:04otimização de hardware no sentido de que
1:17:07eh o que está na memória, o que eh
1:17:09quando der falha de acesso lá de
1:17:12conteúdo, o hardware tem que ajudar a
1:17:13cópia daquele conteúdo para cash, né?
1:17:16Ah, eu quero um conteúdo da memória. Ah,
1:17:18não tá na cash. Então essa é o que eu
1:17:20falei de falha. ele vai trazer da
1:17:22memória principal para cash. [roncando]
1:17:24Eh, isso tem que ser otimizado por
1:17:26hardware, senão fica lento. Mas o
1:17:28sistema operacional que vai dizer qual
1:17:30instrução vai ser executada e aí o
1:17:33hardware vai determinar a instrução na
1:17:36memória principal e se ela não estiver
1:17:37na cash ainda vai ser copiada. Beleza?
1:17:41H, e olha, outra pergunta muito bacana
1:17:44do Scorpion Gas ali, que é uma dúvida
1:17:47que gera por conta dos contextos em que
1:17:50a gente fala a palavra cash. O cash, a
1:17:52gente fala cash de navegador. Cash de
1:17:54navegador é um armazenamento temporário
1:17:57do navegador web que a gente vai limpar
1:17:59frequentemente, mas a cash do
1:18:01processador é uma memória de auto
1:18:03desempenho que é controlada pelo
1:18:05hardware e pelo sistema operacional, né,
1:18:08de uma forma combinada ali, e que ele é
1:18:11automático. A gente não vai mexer nisso
1:18:13nem se a gente programar em C, tá?
1:18:15Porque é um controle que é feito lá no
1:18:17no nível do hardware, tá? Esse cash do
1:18:20sistema, o cash do processador, a gente
1:18:24usa de forma automática, igual o
1:18:27funcionamento do estômago. A gente tá
1:18:29com fome, a gente come, mas a gente não
1:18:30fica pensando em o estômago fazer
1:18:32digestão, ele é automático, tá? O cash
1:18:35do processador é isso aí.
1:18:38Aí, ó, que bacana. Ah, o suporte de
1:18:39monitoramento. Ah, eu já te dei aula no
1:18:42na outra disciplina. Que bacana, cara.
1:18:43Que legal. Bacana a gente se encontrar
1:18:45por aqui de novo. Valeu, pessoal, pelo
1:18:47pelas eh pelos retornos aí. Então, o
1:18:50processo, quando ele está no processador
1:18:52lá no cash, o as instruções estão lá no
1:18:55cash para executar, se eu for trocar por
1:18:57outro, veja, eu tenho que copiar de
1:18:59volta o que está lá no cash. Se não
1:19:01couber, claro, né, um couber o outro,
1:19:03vou ter que colocar outro no lugar.
1:19:04Então, essas trocas é o que a gente
1:19:06chama de caro. Caro por quê? Porque vai
1:19:09ter que vai demorar para fazer essa
1:19:11troca. Então, toda vez que eu troco de
1:19:13um processo para outro, vai haver uma
1:19:15lentidão. É, é o que a gente sentia nos
1:19:18computadores antigos quando trocava do
1:19:20Word pro Excel, quando abria o
1:19:22navegador, voltava pra calculadora, seja
1:19:24o que for, ficava aquela lentidãozinha,
1:19:26pô, por que que tá demorando, né? Porque
1:19:28de fato ele tá trocando o contexto de
1:19:29uma aplicação para outra, tá? E essas
1:19:31trocas elas têm um custo disso.
1:19:35Eh, então beleza, dadas essas
1:19:38características, agora a gente vai
1:19:40começar a falar de outras que são também
1:19:42igualmente importantes de contexto que a
1:19:45gente eh precisa que vocês eh se
1:19:48aprofundem, se se apoderem desses
1:19:50conhecimentos.
1:19:52Eventos de criação, quando que um
1:19:54processo é criado? Ou seja, quando que
1:19:56eu vou trazer um programa para memória
1:19:58para ele começar sua execução? Na
1:20:00inicialização do sistema operacional é
1:20:02um dos eventos. Quando o sistema chama
1:20:05um driver, quando chama um processo do
1:20:08próprio sistema operacional, quando eh
1:20:11ocorre uma situação que vai fazer essa
1:20:13chamada, quando o usuário pede, ah, eu
1:20:15quero abrir o bloco de notas, então vou
1:20:18pedir essa abertura. E em tarefas em
1:20:21lote, o lote de execução, ele vai
1:20:23chamando uma a uma, mas ele vai chamar
1:20:25de fato. Então são situações em que há
1:20:27criação de processo. E quando eles
1:20:30terminam, bom, você tem a o término
1:20:32normal em que você vai lá e fecha o
1:20:34programa e ele sabe que está fechando.
1:20:37Você tem o erro controlado quando o
1:20:41programa executa uma operação que ele
1:20:42sabe que é errada, que ele não pode
1:20:44continuar e que ele precisa terminar.
1:20:47Vamos dizer uma situação lá, a
1:20:48calculadora tenta dividir por zero, aí,
1:20:51pô, aconteceu uma divisão por zero, não
1:20:53pode fazer essa divisão por zero, não é
1:20:56possível, vou preciso fechar. E aí ele
1:20:59fecha ordenadamente, sabendo que está
1:21:01fechando. É o que a gente chama de
1:21:02tratamento de exceções. Quando você
1:21:05programa,
1:21:06você programa calculadora, você sabe que
1:21:09tem operações que não podem ser
1:21:10executadas, né? Então você tem eh
1:21:15eh situações lá, o dividir por zero,
1:21:18deixa eu lembrar outra.
1:21:22Eh, enfim, a gente tem as as operações
1:21:24que vão gerar valores que eu não posso
1:21:26materializar ele na memória, né? divisão
1:21:29por zero, o exemplo, você vai fazer um
1:21:31tratamento de exceções, porque quando eu
1:21:33executar uma divisão, eu preciso eh
1:21:36limitar a resposta, que se der um valor
1:21:39errado, se eu tiver usando uma divisão
1:21:41por zero, eu preciso dar esse tipo de
1:21:43resposta do meu aplicação. Então, se
1:21:46houver tratamento de exceções, é uma
1:21:48saída por erro tratada. Se eu não fizer
1:21:51o tratamento de exceções ou for alguma
1:21:53função que eu não sabia e não fiz o
1:21:55tratamento, eh, eu vou ter um erro
1:21:57fatal. Ele vai tentar executar uma
1:21:59operação que o processador não pode
1:22:01executar e que não foi tratada e que vai
1:22:04gerar uma interrupção involuntária. Esse
1:22:06é o ponto que eu quero, a inflexão que
1:22:09ocorre. a gente tem tratamento de
1:22:11exceção que gera interrupção voluntária
1:22:14que vai ser tratada e é o erro fatal que
1:22:17é o involuntário não tratado. A o erro
1:22:21eh voluntário pode ter perda de dados,
1:22:24mas você diminui a possibilidade de
1:22:26perda de dados. No erro fatal, você vai
1:22:29perder dados porque eles não vão ter eh
1:22:31tratamento posterior. Tudo que tava
1:22:33sendo feito vai ser perdido. Da mesma
1:22:35forma o cancelamento da sua aplicação.
1:22:37Se você cancelar, mesmo que por
1:22:39terceiros, você fala, ó, finaliza isso
1:22:41aí, chega, vai lá no gerenciador de
1:22:43tarefas e finaliza abruptamente. Você
1:22:46vai perder dados. Ah, o programa que
1:22:48travou, eu não consigo mais executar, eu
1:22:49vou finalizar. Pois é, é um cancelamento
1:22:52que vai perder dados, tá? são as
1:22:54situações de finalização.
1:22:57Eh,
1:22:59eh, o Alan Felipe tá falando aí, eh,
1:23:02sabendo, percebeu que tem que estudar
1:23:04bastante. Preparem-se aí para vocês se
1:23:06dedicarem à disciplina aí, pelo menos
1:23:07mais umas 80 horas para cumprir a carga
1:23:10horária da disciplina, tá? porque vocês
1:23:12precisam desse tempo mesmo. E o Vinícius
1:23:16falou ali, o senhor falando de cash,
1:23:18lembrei da modificação que fazia no
1:23:19regedit no nível três,
1:23:22uma forma tentativa de ter maior
1:23:23desempenho, embora não surja efeito por
1:23:25conta deste auto do processador. É, você
1:23:28pensa que tá fazendo cash nível três,
1:23:30mas eu acho que era numa época que não
1:23:32existia cash nível três, tinha cash
1:23:34nível um e dois. Eu tô querendo lembrar
1:23:36de quando era isso, tá?
1:23:39Eh, e é isso aí. estudem bastante, mas
1:23:42eu eu tô querendo lembrar desse regedite
1:23:43aí, mas eu não eu acho que era de uma
1:23:45época que só tinha nível dois. Bom,
1:23:47beleza, falamos do início final e os
1:23:50estados que um processo pode ter durante
1:23:52o funcionamento são aquela situação, ele
1:23:56é um novo processo, então ele está sendo
1:23:58admitido e ele vai ser eh executado a
1:24:03partir dali.
1:24:04Ah, ele vai trazido da do armazenamento
1:24:08e trazido paraa memória. Está sendo
1:24:09admitido. Quando ele chegar na memória,
1:24:12está carregado, ele vai mudar pro status
1:24:14de pronto. Ou seja, o escalonador, o o
1:24:19agendador de tarefas, ele vai dizer que
1:24:21aquele ele vai saber que aquele processo
1:24:23pode ser executado a partir dali, pode
1:24:25ser processado.
1:24:27Todos os processos que estão prontos
1:24:29[limpando a garganta] concorrem ali para
1:24:30usar o processador,
1:24:32né? Considerando aqui uma ideia que só
1:24:34tem um processador, né? E eles vão sendo
1:24:37eh [limpando a garganta]
1:24:38mandados lá para processamento,
1:24:40colocados em processamento. Aí vai ter
1:24:42aquele aquela odisseia, né, de trazer da
1:24:45memória principal, leva na cash, as
1:24:47instruções vão sendo copiadas lá pros
1:24:49registradores e tal. É bom estudar lá na
1:24:51arquitetura de computadores com detalhes
1:24:53para ver como isso acontece. E quando
1:24:55ele terminar de executar ali o quantum
1:24:57dele, o tempo de execução dele, ele vai
1:25:00voltar paraa situação de pronto. O
1:25:02sistema operacional faz isso, o
1:25:04escalonador, o agendador faz isso, fala:
1:25:06"Ó, acabou seu tempo, chega, chega,
1:25:08volta pra fila de pronto". E ele vai
1:25:10tirar o o a gente vai perceber depois o
1:25:13despachador, ele eh vai fazer a troca de
1:25:17contexto que a gente tinha falado,
1:25:18aquela parte cara, né? de tirar o
1:25:20processo do processador,
1:25:22eh, e guardar ele de novo na fila de
1:25:24pronto. Se por acaso durante a execução
1:25:26dele, ele perceber que ele precisa de
1:25:28entrada e saída, ou seja, lê do disco,
1:25:31lê da placa de rede, ler da placa de
1:25:32som, tal, etc., do teclado, mouse, ele
1:25:35vai pra fila de aguardando entrada e
1:25:37saída, ele vai paraa outra fila, porque
1:25:40na fila [limpando a garganta] de pronto
1:25:41ele não tá pronto ainda, ele tá
1:25:42aguardando a entrada de saída. Quando a
1:25:45entrada de saída eh terminar, concluir a
1:25:49a sua carga, ela vai avisar via
1:25:52interrupção pro sistema operacional, pro
1:25:54via hardware: "Estou pronto, o processo
1:25:56pode pegar o resultado aqui." E aí o
1:25:59processo sai da fila de aguardando e
1:26:01volta pra fila de pronto para que na vez
1:26:03dele lá no escalonamento ele possa vir a
1:26:05executar e processar aquele dado que o
1:26:08que a entrada de saída deu para ele.
1:26:10Então vejam, e quando ele terminar, ele
1:26:12vai da situação de executando para
1:26:14terminado. Veja que não tem execução e
1:26:16situação de pronto para terminado, ele
1:26:18vai de executando para terminado, que é
1:26:20o correto, né? Ele vai de pronto para
1:26:23terminado quando for erro fatal ou
1:26:26cancelamento, tá? Mas aqui a gente não
1:26:28modela dessa forma porque são as saídas
1:26:32que que vão ter perda de dados e é o que
1:26:34a gente prefere que não aconteça.
1:26:37Eh,
1:26:39bacana aí as observações de vocês.
1:26:41Obrigado aí pelas observações. Aqui a
1:26:43gente vai finalizar a aula, não agora,
1:26:45né, com um assunto de trads pra gente já
1:26:48ter esse entendimento pra próxima aula,
1:26:50porque infelizmente a gente ainda teria
1:26:53depois das trades ainda tinha que falar
1:26:55do escalonador e a gente vai ter que
1:26:57falar na aula que vem e mas vai dar
1:26:59tempo, vai dar tempo. Essas quatro aulas
1:27:01aí vão ser bem positivas, a gente vai
1:27:02conseguir falar de tudo que precisa.
1:27:04Quando eu tenho, então, um processo,
1:27:07ele tem lá aqueles elementos que nós
1:27:09vimos, só que por vezes eu posso ter
1:27:11trechos dele que ficariam muito bem
1:27:15concorrendo entre eles, tá? OK.
1:27:19Então, a gente vai perceber que eh eu
1:27:23poderia ter uma parte do processo
1:27:25olhando pro mouse, uma parte do processo
1:27:27olhando pro teclado, uma parte do
1:27:29processo conversando com a tela, uma
1:27:31parte do processo conversando com HD. Só
1:27:33que todas elas, concorrendo entre elas,
1:27:36eh, se eu for executar uma por vez, vai
1:27:37ficar esquisito, né? Vai ficar um
1:27:39escravos de Jó esquisito. É melhor eu
1:27:41ter eh esses tratamentos paralelos. Tudo
1:27:45que acontecer eh em, digamos assim, o
1:27:48paralelo virtualmente, né, lógico, o
1:27:50processo uma por vez, mas eu ter esses
1:27:52tratamentos sem que um espere o outro
1:27:54acabar para eu poder começar. Por isso
1:27:57que surgiram as ideias de trads, que eu
1:27:58posso ter várias coisas eh disponíveis
1:28:01acontecendo, como se fosse processo, mas
1:28:04eh tratando de de hardware ou de entrar
1:28:08de saídas diferente de forma tal que
1:28:12elas possam acontecer em paralelo,
1:28:14acelerando o funcionamento, tá?
1:28:17Isso. A ideia do Alan Felipe colocou ali
1:28:19tudo assíncrono. Se o mouse der resposta
1:28:22rápida, ela não precisa necessariamente
1:28:25esperar o teclado dizer que teve
1:28:27resposta ou não. Ele pode pegar a
1:28:28resposta do mouse imediatamente, né? E a
1:28:32do teclado quando acontecer e a da porta
1:28:35de de da placa de rede quando acontecer
1:28:37e assim vai, tá? Então elas são
1:28:40assíncronos ali. E a ideia do
1:28:44do da tradimento
1:28:48de dados sem necessariamente precisar
1:28:51entrar em processo modo núcleo para
1:28:52isso, né? porque a gente sabia lá que o
1:28:54modo núcleo poderia pegar qualquer área
1:28:56do eh da memória, mas para isso não
1:28:59acontecer, eu tenho uma área de processo
1:29:01que eu posso compartilhar e dentro do
1:29:03processo eu compartilho tudo, porque já
1:29:05é do meu processo mesmo. O que que a
1:29:08gente pensa em trades? Então, digamos,
1:29:09um processo, vamos finalizar o o assunto
1:29:12com essa ideia aqui.
1:29:14Eh, se eu copiar um processo, fizer um
1:29:17fork nele, eu vou copiar todos os dados,
1:29:21a pilha, hiip, as instruções dos dados.
1:29:24Se eu tiver um processo e criar uma
1:29:26trade, uma nova trad, eu vou criar, eu
1:29:29vou copiar as instruções, ou seja, eu
1:29:31tenho eh o contexto de hardware copiado,
1:29:34eh por vezes ali algumas coisas do
1:29:37contexto de software, [roncando] os
1:29:39espaços de endereçamento copiados
1:29:41também, porque ela vai ter acesso à
1:29:43aqueles conteúdos e ela só vai ter a
1:29:45pilha de execução, ou seja, a execução
1:29:47local das instruções lá dos das funções
1:29:51separada. e ela vai ter acesso a RIP, a
1:29:54pilha e dados do processo principal.
1:29:56Então essa esse compartilhamento ele é
1:29:58muito positivo porque eh o teclado e eu
1:30:01tenho um processo que lê o teclado e
1:30:03pode gravar no processo principal, né?
1:30:05Eu tenho a trad que lê o teclado e grava
1:30:07no processo principal sem impedir que o
1:30:09processo principal continue executando.
1:30:11A tradicar bloqueada lá aguardando
1:30:14resposta do teclado enquanto o processo
1:30:16continua executando. Quando o teclado
1:30:18responder, né, com a tecla eh tecla
1:30:21pressionada, eu vou lá e gravo na no
1:30:23processo principal essa resposta. Então,
1:30:25veja como isso torna eh muito dinâmico e
1:30:28acelerado o tipo de resposta, porque eu
1:30:30não vou precisar ficar aguardando
1:30:31entrada de saída para tudo, OK?
1:30:35Eh,
1:30:37ah, e aqui a gente vai tá finalizando,
1:30:41né, porque eu acho que acabou nosso
1:30:42tempo, até já passou um pouquinho.
1:30:43Professora, muito obrigado pelo tempo,
1:30:45já deu tempo da gente, mas eu gostei
1:30:47muito da observação da do Ivoni Leal.
1:30:50Foi bem complicada essa aula assim como
1:30:52desenvolvimento de ponteiros, né,
1:30:53estrutura de dados. Muito bacana a
1:30:55comparação, mas é isso mesmo. Tem que
1:30:57sair da zona de conforto, igual os
1:30:58colegas falaram. Mas a ideia de trad,
1:31:01gente, é o que vai salvar o desempenho
1:31:03para vocês aí nos aplicações daqui para
1:31:05frente. Professor, a gente continua
1:31:06depois desse, na próxima aula, a gente
1:31:08continua desse assunto mesmo, né?
1:31:11Obrigado pelo tempo de vocês, aguardando
1:31:12mais um minutinho aí nessa hora da
1:31:14noite, mas eu fico feliz que a gente
1:31:16chegou aí num momento oportuno.
1:31:18Obrigadão, pessoal. Tudo ótimo, deu tudo
1:31:21certo. Foi incrível a sua aula, esse
1:31:23conteúdo é incrível, impressionante, de
1:31:25muito aprendizado. Excelente, professor.
1:31:28Gratidão. Gratidão a todos vocês que
1:31:30participaram, que interagiram, que
1:31:33fizeram perguntas inteligentíssimas de
1:31:35muito conteúdo agregando valor pra nossa
1:31:37aula.
1:31:38>> Gratidão. Boa noite a todos e até a
1:31:40próxima aula, até a próxima terça.
1:31:43>> Valeu, pessoal. Forte abraço. Tchau. C.
1:31:49[música]