Eu concordo, mas só Brazuca não, eu pessoalmente nunca encontrei alguém que explicasse do jeito que o Akita faz nem em Ingles nem em Italiano, ficaria muito feliz se alguém pudesse me indicar algum canal que foi feito desde o começo pra funcionar como uma curadoria de conteúdo, organizado pra ser assistido desde o começo até o final em ordem, referenciando os conteúdos anteriores e cobrindo uma base bem respeitável de conhecimento gerais necessários de cada assunto. To assistindo esse vídeo 4 anos depois da criação dele e é 100% atual, isso é fantástico.
Resumiu minha matéria de SO da graduação em menos de 1 horas. Akita, não tenho perdido nenhum dos seus vídeos hahaha, fica aqui meus agradecimentos pela qualidade do conteúdo do seu canal. Abraço. vlw.
Vou confessar algo. Sou público alvo desta série. 42 anos e iniciando em progamação. Agora a confissão: tenho de assistir cada vídeo da série mais de uma vez. Não dou conta de assimilar toda esta informação. Ufa falei. Com isto não penso estar fazendo uma crítica direta. Considero que a série é excelente e tem me ajudado muito. Também não saberia dizer como simplificar. Gosto do percursso histórico e das metáforas que os acompanham. Até me identifico muitas vezes. Também eu usei monitores em tons de verde e o Msdos. Também fiquei surpreso com a interface gráfica do windows e a possibilidade de navegar entre as pastas com o cursor. Me encantei com a chegada do open source e a revolução extraordinária do universo mobile. Enfim, dou força ao #akitando. Vamos em frente. Ainda que, no meu caso ao menos, isso signifique retornar aos vídeos antetiores uma, duas, ou sei lá quantas vezes :-)
Fabio Akita, mt obrigado de verdade, eu sou um rapaz de 25 anos com metade de um curso de SI em uma federal do nordeste que por acaso do destino arranjei um trabalho e fiquei encarregado de lidar com tarefas como scraping de dados das plataformas da empresa como (salesforce, Zendesk, etc) e o desenvolvimento de algumas a APIS the conexão como sharepoint, Google drive para armazenamento e manipulação dos arquivos dos scraps pos processados, tudo isso em nuvem e não tem ninguém para me ensinar nesta empresa. Gosto bastante de programar e graças aos seus vídeos estou sabendo me direcionar para fazer algo que minimamente funcione. Muito obrigado.
Fui assistindo, relembrando as aulas de Sistemas Operacionais da faculdade, e finalmente tapando buracos de conhecimento que tinham ficarado de lá pra cá. Bom trabalho, Fábio!
Um curso de sistemas operacionais em 42 minutos, muito bom parabéns mesmo. Ministro aula de sistemas operacionais e não chego a detalhes que você comentou, muito por que as vezes os estudantes não veem a importância disso para ser um bom profissional. Parabéns por sua série e gostaria que não parasse de trazer videos muito importantes como esse.
Esse canal é um tesouro para uma pessoa curiosa como em querer entender mais afundo as coisas, sou assim a ponto de no dia a dia eu ter que me segurar em não pesquisar mais afundo algo que usei e não apenas entender o necessário para poder aplicar e resolver algum problema, muito obrigado akita por ter criado esse canal.
A gente que é mais nova usa o computador hoje de uma forma tão fluida e nem imagina o tanto de coisa que já aconteceu para termos isso hoje. Parabéns, Akita!
Fábio já pensou em disponibilizar seus vídeos em formato podcast? Por exemplo no Spotify. Digo isso por que seria muito bom poder ouvir o conteúdo desse vídeo (que é super longo) no metrô por exemplo. Esse video foi muito útil pra mim pois estou estudando sistemas operacionais pra poder entender paralelismo descentemente. Ver todo conteúdo resumido de forma simples me ajudou a entender e montar uma road lógica do que estudar pra masterizar paralelismo. Muito bom!
Estou vendo o vídeo pela terceira vez, anotando cada detalhe para poder pesquisar mais afundo. Eu sinceramente estou maravilhado com esse conteúdo raro! Fiquei também impressionado sobre Reactor Pattern já possui tanto tempo de amadurecimento. Certeza que depois desses vídeos serei um programador melhor, obrigado por despertar a curiosidade com um foco plausivel, abrir meus olhos e enxergar um mundo que não é demonstrado devidamente em faculdades quanto menos em mercado. Fábio Akita, parabéns por compartilhar seu conhecimento e se dedicar tanto pelo canal e conteúdo!
Adicionando um pouco ao tópico: se você tem paralelismo, é imposto que você tem concorrência, mas nem sempre quando você tem concorrência você tem paralelismo, como o Fabio Akita falou sobre o time slicing. Assincronia também impõe concorrência. Assincronia é basicamente uma situação onde uma instrução possui tasks que podem iniciar dela, sem precisar ficarem bloqueadas por outras(você pode forçar um bloqueio, com o conceito de await). Você pode obter assincronia tanto na forma single thread(com event/message loops, por exemplo) quanto na forma de multi threading. De uma forma geral, existem 2 tipos de situações bloqueantes: relacionados a I/O, e CPU. Problemas de I/O sempre foram pertinentes, como o Fabio Akita falou em 30:54, de nada adianta ter um processador com concorrência se o barramento de I/O vira um gargalo. Por ultimamente a maioria dos bloqueios no mundo de desenvolvimento web/sass serem ocasionados por I/O, o javascript+web api/node.js trouxeram mais a tona o conceito de assincronia, através do I/O assíncrono, usando event loop. Agora assíncronia não é estritamente relacionado única e exclusivamente a I/O. Existem tasks que podem ser bastante intensivos pra CPU: pensem num processamento da ordenação de uma lista gigantesca de números. Um exemplo de algoritmo para resolver isso é o merge sort, que aplica o conceito de "dividir e conquistar" usando multi threading e paralelismo quando disponível. Nesse esquema uma programação I/O assíncrona single threaded de nada adianta para ajudar no processamento, os callbacks com os cálculos serão executados de forma síncrona na call stack por ser justamente single thread. Esse tipo de bloqueio mais limitado a CPU é mais presente em machine learning, data science, inteligência artificial e etc. Portanto, cada macaco no seu galho. O java nativamente por exemplo pode fazer assincronia somente através da utilização de threads, pois a jvm não possui por exemplo um event loop(existem libs como vertx.io e spring webflux que adicionam essa possibilidade). O node.js faz assincronia de I/O em single thread utilizando o event loop + API do C++ + fila de callback, pra trabalhos mais CPU bound o node está em fase experimental desde a versão 10.5 no uso de multi threading. O C# além de threads também pode através do async/await(compilador + state machine).
Akita, ja assisti 2 vezes, nesta segunda tomando nota, criando infograficos, fluxos e etc e provavelmente tera uma 3, talvez agora estou conseguindo criar a imagem na cabeça de como isso funciona, nada na pratica ainda mas ja ajuda muitoo!!! Não sei exatamente sua motivação de criar este conteudo, mas fica aqui sinceramente o meu MUITO OBRIGADO!!!
Relembrando muita coisa com seus vídeos. LLVM, scheduler, etc... Tinha coisas da história que nem lembrava mais... Assisti três vídeos que eu estava atrasado, agora estou em dia no canal. Parabéns pelas aulas!
Melhor conteúdo q já encontrei falando sobre multi-processo e multi-thread. Sempre ensinei as pessoas das minhas equipes nesse tópico quando se aprofundavam em C, mas realmente me faltava essa noção das diferenças de custo e problemas entre os sistemas operacionais. Uma coisa que é muito importante ressaltar é que existia um ponto negativo no uso de threads no que tange o uso de memória. Em um sistema compilado em 32 bits, cada processo só podia alocar no máximo 4 GB de memória. Se vc utilizasse multi-thread, o limite de 4 GB valia para todas as threads. Dando fork, cada processo tinha seu próprio espaço de memória e podia alocar até 4 GB, o que viabilizava trabalhar com um volume maior de dados em memória em cada processo (e podia fazer com que ele finalizasse antes de atingir o limite, caso houvesse um memory leak).
Essa comparação entre Chef+Garçon com o epoll foi a mais pedagógica que já vi! Achei justa a fala sobre o NGINX, mas fiquei com vontade de provocar sobre o Varnish, que também tem seu lugar ao sol quando se trata de entrega de conteúdos estáticos.
Que video sensacional. Há alguns meses virei entusiasta em usar threads em aplicações Java. Acho uma tecnologia incrível e facilita mto o serviço em cargas pesadas de trabalho. Ótima explicação!
Caramba Fábio, sou estudante de ciências da computação e já acompanho a um bom tempos seus vídeos. Por algum motivo acabei vendo este somente hoje e tenho que tirar o chapéu 10x pela didática e objetividade que você tratou o tema. Da pra ver que tem um carinho imenso na elaboração do conteúdo. Quem me dera ter visto esse vídeo quando estava estudando SO1 xD.
Cara, tu me ajudou a entender um problema que ninguém conseguia me explicar até hoje de maneira simples: Por que o NodeJS consegue atender milhões de conexões possuindo apenas uma thread e o Java não, sendo multi thread. O multi thread fazia todo o sentido pois em processadores multi core/ multi thread, todos os recursos de hardware seriam utilizados e as threads seriam processadas em paralelo. Mas utilizando threads bloqueantes, há gastos enormes com a troca de contexto (Tanto de processamento quanto de memória) e isso limita o número de conexões que uma aplicação Java baseada em Servelets pode atender. O Node pode atender muito mais pois esses recursos não ficam bloqueados, eles ficam pendentes de eventos do S.O. Então isso significa que no Java há paralelismo real e mais rápido em processar um certo número de conexões e que o Node mais lento (Pois não há paralelismo real, já que o Event Loop é single thread) mas consegue atender mais conexões concorrentes. Cero?
Em resumo, não há nada que o node.js faça que Java, ou C, out C++, out Python também não consiga fazer. Por isso muitos componentes de servidor importantes são feitos em Java ou C (como um NGINX ou Cassandra). A diferença mais é que Node é mais "facinho" de começar. Só isso. Mas ele não chega até onde outras linguagens mais decentes chegam pelas várias limitações que ele tem (falta de thread nativa sendo só uma delas)
Meu professor de sistemas operacionais da faculdade em 2013 certa vez falou: "Décadas atrás, os recursos de uma máquina era disputado a tapa pelos processos"
Muito, mas muito bom. Tô maratonando seus vídeos aqui. Achei que já sabia uns 2%, depois do terceiro vídeo teu vi que devo saber uns 0,02% kkkk. Muito bom aprender dessa forma vindo de gente que realmente sabe o que está falando e em português ainda. Valeu. Abraço.
Caraca...uma palestra a Jato...cada vídeo daria uma palestra de 2 horas ou mais com certeza.... parabéns ao Akita pela eficiência em agrupar tanta informação de forma sequencial, seguindo a linha de raciocínio...TOP
Eu estava estudando a infra estrutura do Telegram e me deparei com esse event looper e uso de epoll do linux para conseguir responder a quantidade de requisicoes que eles recebiam. Isso me ajudou a criar meu aplicativo utilizando esta implementacao no codigo nativo JNI para controle de notificacoes push e ping pong de servidor cliente com sincronizacoes off-line first.. foi a unica forma que consegui resolver Parabens pelo video, conteudo muuito complexo visto de uma forma clara e sem paixão voce é demais
Eu fiz um trabalho da faculdade esses dias que era sobre sistemas operacionais , mais especificamente sobre threads , programação multithreads , estados de threads e por ai vai ... e essa sua playlist de entendendo back-end ajudou muito cara . Vlw kkk
akita SEM PALAVRAS estes teus videos, cara eu leio pra caralho e NÃO SABIA deste BO das threads no linux até 2006, lembro que voltei a usar linux ali por 2008 , alias TENTEI e incrivel saber que hoje ele é MUITO MELHOR e aqui vemos um porque e ai nestes teus videos estou vendo algumas explicações, surreal, foda mesmo, obrigado. Como meu pai sempre falou, a gente está sempre aprendendo algo, incrivel mesmo. Incrivel como quanto mais estudamos, mais vemos que pouco sabemos kkkkk, é foda ... vamos que vamos kkkkkk Há e quando digo que é muito melhor não falo de ser melhor que windows ou macos , e sim que ele melhorou em relação a si mesmo, incrivel.
As ferramentas CAD com que eu trabalho tem vários problemas de performance devido a concorrências e paralelismos.. Essa aula me ajudou a entender um pouco mais as limitações que elas possuem.
Curioso ver tudo isso na faculdade mas, pela falta de experiência naquela época, não fazer tanto sentido como agora. Sempre bom revisitar as bases. Muito obrigado pelo conteúdo!! 👏🏼👏🏼👏🏼👏🏼
Muito massa, me lembrou do capítulo do livro de Delphi do Cantu que falava de programação em thread... Muito interessante e o teste era fazer contadores em paralelo e você via a diferença de velocidade em função do escopo de variáveis e as diferenças das várias estratégias de programação paralela... Sugestão: faça um vídeo detalhando o Minix do Tanembaum... Abraços!
No momento agora estou nos EUA sem PC notebook só o Note 8 da Samsung Galaxy note agora só assistir ou interagir simples mas em junho estarei com certeza procurando esse gênio humilde porém nunca bobo.
Muita gente se achando burro por ter que assistir mais de uma vez pra aprender. Porém, isso é exatamente o que você tem que fazer. Pra entender, talvez você precise assistir uma ou duas vezes, mas pra aprender você vai ter que assistir dezenas de vezes. E convenhamos, você não tem nada melhor pra fazer...XD
Muito bom assistir esses vídeos do Akita. Recordei me das aulas de sistemas operacionais, onde vi conceitos de região crítica semáforos. Processos e Threads. Problemas do filósofos comendo macarrão. Kkk
Muito legal sua didática e otimas analogias. Continue sempre fazendo conteúdo legais assim. No minuto 30:11 você disse: "um servidor do WhatsApp hoje serve mais de 2 milhões de conexões simultaneas", mas os protocolos tcp ou udp so podem endereçar 2^16=65535 que seria o maximo de conexões que poderia ficar estabelecidas ao mesmo tempo.
Parabéns Akita, sempre com conteúdo excelente. PS: tive a oportunidade de ver você falando sobre esse assunto em uma panificadora de manhã cedo após um evento :)
Com tantos exemplos da vida real, utilizados para exemplificar a computação, fica ainda mais claro que estamos imitando a vida real ao escrever sistemas :)
Quando comprei meu primeiro Mac em 1999, um PowerPC G3 233MHz, ele fazia, com o MacOS 9 algo que parecia bruxaria à época: Ele conseguia gravar audio ao mesmo tempo que executava vários arquivos de audio ao mesmo tempo.
Se poder fazer alguns cursos de programação, certo que já tem em alguns canais Mas queria ver você ensinando, como Node.Js Python C# ou outras é ferramentas essenciais que todo programador tem que saber hoje para iniciar
obs: Quando se fala de troca de contexto, basicamente está se falando em salvar o contexto dos registradores para uma thread. Basicamente é salvar os valores dos registradores da cpu na estrutura da thread. Isso é o context switch feito por software, mas existe o salvamento feito em tss e esse é o context switch feito por hardware. Por fim, é importante lembrar que quando o sistema operacional possui estrutura de thread e estrutura de processo, então o processador vai lidar com threads. Mas sistemas antigos só tinham estrutura de processo e o contexto dos registradores eram salvos na estrutura de processo mesmo.
Lembro até hj como simular as threads preemptivas no Windows 95/98 usando processador single-cores, era só tocar uma música no media player e abrir o browser em seguida, q era notavel como o scheduler de processos trabalhava, pois para dar conta dos dois processos intercalando de tempos em tempos em cada um dos processos, o som do media player sofria varios cortes a cada segundo enquanto estava carregando o browser.
O MELHOR CONTEÚDO DE COMPUTAÇÃO BRAZUCA NO RUclips. OBRIGADO
Eu concordo, mas só Brazuca não, eu pessoalmente nunca encontrei alguém que explicasse do jeito que o Akita faz nem em Ingles nem em Italiano, ficaria muito feliz se alguém pudesse me indicar algum canal que foi feito desde o começo pra funcionar como uma curadoria de conteúdo, organizado pra ser assistido desde o começo até o final em ordem, referenciando os conteúdos anteriores e cobrindo uma base bem respeitável de conhecimento gerais necessários de cada assunto.
To assistindo esse vídeo 4 anos depois da criação dele e é 100% atual, isso é fantástico.
Resumiu minha matéria de SO da graduação em menos de 1 horas. Akita, não tenho perdido nenhum dos seus vídeos hahaha, fica aqui meus agradecimentos pela qualidade do conteúdo do seu canal. Abraço. vlw.
Vou confessar algo. Sou público alvo desta série. 42 anos e iniciando em progamação. Agora a confissão: tenho de assistir cada vídeo da série mais de uma vez. Não dou conta de assimilar toda esta informação. Ufa falei. Com isto não penso estar fazendo uma crítica direta. Considero que a série é excelente e tem me ajudado muito. Também não saberia dizer como simplificar. Gosto do percursso histórico e das metáforas que os acompanham. Até me identifico muitas vezes. Também eu usei monitores em tons de verde e o Msdos. Também fiquei surpreso com a interface gráfica do windows e a possibilidade de navegar entre as pastas com o cursor. Me encantei com a chegada do open source e a revolução extraordinária do universo mobile. Enfim, dou força ao #akitando. Vamos em frente. Ainda que, no meu caso ao menos, isso signifique retornar aos vídeos antetiores uma, duas, ou sei lá quantas vezes :-)
Não é nenhuma vergonha isso não!! Muito pior seria assistir tudo sem ter entendido e nunca voltar pra ver os pontos de dúvida. Valeu!
Tô é ficando desesperado com tanta informação, haha!
Fabio Akita, mt obrigado de verdade, eu sou um rapaz de 25 anos com metade de um curso de SI em uma federal do nordeste que por acaso do destino arranjei um trabalho e fiquei encarregado de lidar com tarefas como scraping de dados das plataformas da empresa como (salesforce, Zendesk, etc) e o desenvolvimento de algumas a
APIS the conexão como sharepoint, Google drive para armazenamento e manipulação dos arquivos dos scraps pos processados, tudo isso em nuvem e não tem ninguém para me ensinar nesta empresa.
Gosto bastante de programar e graças aos seus vídeos estou sabendo me direcionar para fazer algo que minimamente funcione.
Muito obrigado.
Espero aprender muito mais com você 🎉
22:25 fork... copy on write
24:18 pthreads... bugs... 1 pra 1, linux 2.6
25:58 scheduling... macOS, multimídia
29:35 c10k... async events
33:30 apache
35:45 nginx
36:40 event loop, reactor pattern
39:57 concorrência x paralelismo
Fui assistindo, relembrando as aulas de Sistemas Operacionais da faculdade, e finalmente tapando buracos de conhecimento que tinham ficarado de lá pra cá. Bom trabalho, Fábio!
Um curso de sistemas operacionais em 42 minutos, muito bom parabéns mesmo. Ministro aula de sistemas operacionais e não chego a detalhes que você comentou, muito por que as vezes os estudantes não veem a importância disso para ser um bom profissional. Parabéns por sua série e gostaria que não parasse de trazer videos muito importantes como esse.
Fico muito contente quando um real profissional do ensino manda feedback. Obrigadão! 😊
Esse canal é um tesouro para uma pessoa curiosa como em querer entender mais afundo as coisas, sou assim a ponto de no dia a dia eu ter que me segurar em não pesquisar mais afundo algo que usei e não apenas entender o necessário para poder aplicar e resolver algum problema, muito obrigado akita por ter criado esse canal.
A gente que é mais nova usa o computador hoje de uma forma tão fluida e nem imagina o tanto de coisa que já aconteceu para termos isso hoje. Parabéns, Akita!
Fábio já pensou em disponibilizar seus vídeos em formato podcast? Por exemplo no Spotify.
Digo isso por que seria muito bom poder ouvir o conteúdo desse vídeo (que é super longo) no metrô por exemplo. Esse video foi muito útil pra mim pois estou estudando sistemas operacionais pra poder entender paralelismo descentemente. Ver todo conteúdo resumido de forma simples me ajudou a entender e montar uma road lógica do que estudar pra masterizar paralelismo. Muito bom!
Tamer, uma solução para você seria baixar o RUclips Go, fazer o download desse video lá e escutar no metro sem consumir dados. :o)
Sonho realizado, busca Akitando no spotify
Solicitação atendida com sucesso hahahaha
@ Sério? Aí sim
@@miguellopes9177 sim, ele posta o áudio dos vídeos no spotify
Estou vendo o vídeo pela terceira vez, anotando cada detalhe para poder pesquisar mais afundo. Eu sinceramente estou maravilhado com esse conteúdo raro! Fiquei também impressionado sobre Reactor Pattern já possui tanto tempo de amadurecimento. Certeza que depois desses vídeos serei um programador melhor, obrigado por despertar a curiosidade com um foco plausivel, abrir meus olhos e enxergar um mundo que não é demonstrado devidamente em faculdades quanto menos em mercado.
Fábio Akita, parabéns por compartilhar seu conhecimento e se dedicar tanto pelo canal e conteúdo!
Adicionando um pouco ao tópico: se você tem paralelismo, é imposto que você tem concorrência, mas nem sempre quando você tem concorrência você tem paralelismo, como o Fabio Akita falou sobre o time slicing. Assincronia também impõe concorrência.
Assincronia é basicamente uma situação onde uma instrução possui tasks que podem iniciar dela, sem precisar ficarem bloqueadas por outras(você pode forçar um bloqueio, com o conceito de await). Você pode obter assincronia tanto na forma single thread(com event/message loops, por exemplo) quanto na forma de multi threading. De uma forma geral, existem 2 tipos de situações bloqueantes: relacionados a I/O, e CPU. Problemas de I/O sempre foram pertinentes, como o Fabio Akita falou em 30:54, de nada adianta ter um processador com concorrência se o barramento de I/O vira um gargalo.
Por ultimamente a maioria dos bloqueios no mundo de desenvolvimento web/sass serem ocasionados por I/O, o javascript+web api/node.js trouxeram mais a tona o conceito de assincronia, através do I/O assíncrono, usando event loop. Agora assíncronia não é estritamente relacionado única e exclusivamente a I/O. Existem tasks que podem ser bastante intensivos pra CPU: pensem num processamento da ordenação de uma lista gigantesca de números. Um exemplo de algoritmo para resolver isso é o merge sort, que aplica o conceito de "dividir e conquistar" usando multi threading e paralelismo quando disponível. Nesse esquema uma programação I/O assíncrona single threaded de nada adianta para ajudar no processamento, os callbacks com os cálculos serão executados de forma síncrona na call stack por ser justamente single thread. Esse tipo de bloqueio mais limitado a CPU é mais presente em machine learning, data science, inteligência artificial e etc.
Portanto, cada macaco no seu galho.
O java nativamente por exemplo pode fazer assincronia somente através da utilização de threads, pois a jvm não possui por exemplo um event loop(existem libs como vertx.io e spring webflux que adicionam essa possibilidade). O node.js faz assincronia de I/O em single thread utilizando o event loop + API do C++ + fila de callback, pra trabalhos mais CPU bound o node está em fase experimental desde a versão 10.5 no uso de multi threading. O C# além de threads também pode através do async/await(compilador + state machine).
Akita, ja assisti 2 vezes, nesta segunda tomando nota, criando infograficos, fluxos e etc e provavelmente tera uma 3, talvez agora estou conseguindo criar a imagem na cabeça de como isso funciona, nada na pratica ainda mas ja ajuda muitoo!!!
Não sei exatamente sua motivação de criar este conteudo, mas fica aqui sinceramente o meu MUITO OBRIGADO!!!
Relembrando muita coisa com seus vídeos.
LLVM, scheduler, etc...
Tinha coisas da história que nem lembrava mais...
Assisti três vídeos que eu estava atrasado, agora estou em dia no canal.
Parabéns pelas aulas!
FOGOS!!! NA VIDA REAL ACHEI UM ÍDOLO!!! PARABÉNS!!!
Melhor conteúdo q já encontrei falando sobre multi-processo e multi-thread.
Sempre ensinei as pessoas das minhas equipes nesse tópico quando se aprofundavam em C, mas realmente me faltava essa noção das diferenças de custo e problemas entre os sistemas operacionais.
Uma coisa que é muito importante ressaltar é que existia um ponto negativo no uso de threads no que tange o uso de memória. Em um sistema compilado em 32 bits, cada processo só podia alocar no máximo 4 GB de memória. Se vc utilizasse multi-thread, o limite de 4 GB valia para todas as threads.
Dando fork, cada processo tinha seu próprio espaço de memória e podia alocar até 4 GB, o que viabilizava trabalhar com um volume maior de dados em memória em cada processo (e podia fazer com que ele finalizasse antes de atingir o limite, caso houvesse um memory leak).
Essa comparação entre Chef+Garçon com o epoll foi a mais pedagógica que já vi!
Achei justa a fala sobre o NGINX, mas fiquei com vontade de provocar sobre o Varnish, que também tem seu lugar ao sol quando se trata de entrega de conteúdos estáticos.
Que video sensacional. Há alguns meses virei entusiasta em usar threads em aplicações Java. Acho uma tecnologia incrível e facilita mto o serviço em cargas pesadas de trabalho. Ótima explicação!
As melhores explicações da área de programação no RUclips. Por favor não pare!
Caramba Fábio, sou estudante de ciências da computação e já acompanho a um bom tempos seus vídeos. Por algum motivo acabei vendo este somente hoje e tenho que tirar o chapéu 10x pela didática e objetividade que você tratou o tema. Da pra ver que tem um carinho imenso na elaboração do conteúdo. Quem me dera ter visto esse vídeo quando estava estudando SO1 xD.
Terceira vez que assisto este video e sempre tem algo que não havia entendi antes e agora consigo pegar melhor.
Cara, tu me ajudou a entender um problema que ninguém conseguia me explicar até hoje de maneira simples:
Por que o NodeJS consegue atender milhões de conexões possuindo apenas uma thread e o Java não, sendo multi thread.
O multi thread fazia todo o sentido pois em processadores multi core/ multi thread, todos os recursos de hardware seriam utilizados e as threads seriam processadas em paralelo. Mas utilizando threads bloqueantes, há gastos enormes com a troca de contexto (Tanto de processamento quanto de memória) e isso limita o número de conexões que uma aplicação Java baseada em Servelets pode atender. O Node pode atender muito mais pois esses recursos não ficam bloqueados, eles ficam pendentes de eventos do S.O.
Então isso significa que no Java há paralelismo real e mais rápido em processar um certo número de conexões e que o Node mais lento (Pois não há paralelismo real, já que o Event Loop é single thread) mas consegue atender mais conexões concorrentes. Cero?
Em resumo, não há nada que o node.js faça que Java, ou C, out C++, out Python também não consiga fazer. Por isso muitos componentes de servidor importantes são feitos em Java ou C (como um NGINX ou Cassandra). A diferença mais é que Node é mais "facinho" de começar. Só isso. Mas ele não chega até onde outras linguagens mais decentes chegam pelas várias limitações que ele tem (falta de thread nativa sendo só uma delas)
Isso foi uma aula de ciências da Computação
Muito obrigado professor
Lembrando aqui das minhas aulas de Computação Paralela. E meu TCC será nesse tema, é muito interessante
Meu professor de sistemas operacionais da faculdade em 2013 certa vez falou:
"Décadas atrás, os recursos de uma máquina era disputado a tapa pelos processos"
Ainda é kkkk especialmente se rodar um tanto de aba do Chrome kkkk
@@Akitando não para o Mac Pro [ o Max foi 6 mil abas do Chrome ] .... se bem que travou também né hehe
@@renanborges9167 6 mil abas na guerra dos chrome de 2019
Muito, mas muito bom. Tô maratonando seus vídeos aqui. Achei que já sabia uns 2%, depois do terceiro vídeo teu vi que devo saber uns 0,02% kkkk. Muito bom aprender dessa forma vindo de gente que realmente sabe o que está falando e em português ainda. Valeu. Abraço.
Caraca...uma palestra a Jato...cada vídeo daria uma palestra de 2 horas ou mais com certeza.... parabéns ao Akita pela eficiência em agrupar tanta informação de forma sequencial, seguindo a linha de raciocínio...TOP
Eu estava estudando a infra estrutura do Telegram e me deparei com esse event looper e uso de epoll do linux para conseguir responder a quantidade de requisicoes que eles recebiam.
Isso me ajudou a criar meu aplicativo utilizando esta implementacao no codigo nativo JNI para controle de notificacoes push e ping pong de servidor cliente com sincronizacoes off-line first.. foi a unica forma que consegui resolver
Parabens pelo video, conteudo muuito complexo visto de uma forma clara e sem paixão voce é demais
Mais um espetáculo de explicação. Akita o professor mais completo do universo, nunca vi ninguem igual.
Uma coisa é vc pesquisar o assunto fragmentadamente. Outra é vc passar por todos os assuntos e ter uma ideia geral e relativizada! Muito bom!
Eu fiz um trabalho da faculdade esses dias que era sobre sistemas operacionais , mais especificamente sobre threads , programação multithreads , estados de threads e por ai vai ... e essa sua playlist de entendendo back-end ajudou muito cara . Vlw kkk
Um maestro tecnológico. Tô curtindo muito o canal amigo. Gratidão 🙏🏼 Maratonando tudo Aki.
Fascinante ! Espetacular ! Uma aula Magistral ! Totalmente Esclarecedor !
akita SEM PALAVRAS estes teus videos, cara eu leio pra caralho e NÃO SABIA deste BO das threads no linux até 2006, lembro que voltei a usar linux ali por 2008 , alias TENTEI e incrivel saber que hoje ele é MUITO MELHOR e aqui vemos um porque e ai nestes teus videos estou vendo algumas explicações, surreal, foda mesmo, obrigado.
Como meu pai sempre falou, a gente está sempre aprendendo algo, incrivel mesmo.
Incrivel como quanto mais estudamos, mais vemos que pouco sabemos kkkkk, é foda ... vamos que vamos kkkkkk
Há e quando digo que é muito melhor não falo de ser melhor que windows ou macos , e sim que ele melhorou em relação a si mesmo, incrivel.
Akita é monstro demais!! Conteúdo extremamente complexo sendo mostrado com analogias simples! Show!
Privilégio poder consumir esse conteúdo de altíssima qualidade. Muito obrigado mesmo!
As ferramentas CAD com que eu trabalho tem vários problemas de performance devido a concorrências e paralelismos.. Essa aula me ajudou a entender um pouco mais as limitações que elas possuem.
Mano do ce'u. Eu assistindo em 2x tive que diminuir para 1.5x para entender tudo. Parabens Fabio. Muito bom o conteudo.
Tera algum video sobre codificacao de caracteres? Acho um tema bem importante tambem. Otimo trabalho.
Tem em inglês. Sobre unicode.
Curioso ver tudo isso na faculdade mas, pela falta de experiência naquela época, não fazer tanto sentido como agora. Sempre bom revisitar as bases.
Muito obrigado pelo conteúdo!! 👏🏼👏🏼👏🏼👏🏼
Melhor que minhas aulas de OS na faculdade muitooo bom.
Muito massa, me lembrou do capítulo do livro de Delphi do Cantu que falava de programação em thread... Muito interessante e o teste era fazer contadores em paralelo e você via a diferença de velocidade em função do escopo de variáveis e as diferenças das várias estratégias de programação paralela... Sugestão: faça um vídeo detalhando o Minix do Tanembaum... Abraços!
Esse assunto é cabeludo mesmo, mas depois de ver o vídeo 2x e anotar tudo, até um noob como eu consegui entender :D Vlw Akita!
Parabéns! Excelente conteúdo!
Conteúdo de alta qualidade. Aprendo muito com esse canal.
Muito legal! Parabéns pelo trabalho, Akita!
Lembrei das minhas aulas da faculdade.... Sempre digo isso para os mais jovens, foquem nos conceitos...
AKITA sua didática e muito boa em explicar, e qualidade em gravação
Vc é o cara
apredendo um pouco mais aqui, curtindo bastante essa série, valeu.
Muito, muito bom! Obrigado por compartilhar.
Esse cara explica nos minimos detalhes show muito bom mestre tive uma materia sobre SO na faculdade me recordei dela
Cara, a sua didática é coisa de outro nível
No momento agora estou nos EUA sem PC notebook só o Note 8 da Samsung Galaxy note agora só assistir ou interagir simples mas em junho estarei com certeza procurando esse gênio humilde porém nunca bobo.
Muita gente se achando burro por ter que assistir mais de uma vez pra aprender. Porém, isso é exatamente o que você tem que fazer. Pra entender, talvez você precise assistir uma ou duas vezes, mas pra aprender você vai ter que assistir dezenas de vezes. E convenhamos, você não tem nada melhor pra fazer...XD
Muito bom assistir esses vídeos do Akita. Recordei me das aulas de sistemas operacionais, onde vi conceitos de região crítica semáforos. Processos e Threads. Problemas do filósofos comendo macarrão. Kkk
Ansioso por esse video.
Simplesmente o melhor!
Melhor explicação sobre deadlock que já vi
Essa série é uma faculdade , fiz CC e algumas coisas estou revendo mas outras coisas não vi nem na faculdade. Parabéns Akita.
Muito legal sua didática e otimas analogias. Continue sempre fazendo conteúdo legais assim.
No minuto 30:11 você disse: "um servidor do WhatsApp hoje serve mais de 2 milhões de conexões simultaneas", mas os protocolos tcp ou udp so podem endereçar 2^16=65535 que seria o maximo de conexões que poderia ficar estabelecidas ao mesmo tempo.
Simplesmente incrível 🚀
Sempre vídeos de grande qualidade!.
Vou assistindo "picado".... Fantástico vídeo Akita, obrigado 🙏
Muito obrigado pelo conteúdo.
Adoro esse episódio!
melhor conteúdo br.
Bem didático o exemplo da mesa! 👏👏👏
Eu acho que esse cara trabalha no vale do silício kkk, você é foda Akita
Incrível é a definição mais acertava para essa sua séries vídeos 😁💪💪👊
34:47 "A terceira opção, como já imaginaram (...)" Ah, claro! rsrs
Que aula meus amigos. Akita é fera demais!
Lembrei do livro Sistemas Operacionais Modernos.
Vlw Akita!
É a segunda vez que venho nesse vídeo, a diferença é que agora eu tô com bagagem pra entender
Parabéns..muito bem explicado
Caraaaaaaaa, a cada vídeo eu aprendo mais valeu Akita !
Parabéns 👏🏻👏🏻👏🏻👏🏻
Excelente canal.
Fantástico, obrigado pela dedicação e pela qualidade dos seus vídeos! AkitaBomDeMais!
Parabéns Akita, sempre com conteúdo excelente. PS: tive a oportunidade de ver você falando sobre esse assunto em uma panificadora de manhã cedo após um evento :)
Panificadora?? Mds kkkk
Rapaz, anos de faculdade em 40 minutos. Show de bola!
Mais um vídeo sensacional da série e como sempre, extremamente detalhado! #AquitaFlix
Primeira vez que fiquei feliz do meu browser dar pau, já que aconteceu exatamente na parte da explicação sobre os crashes em navegadores.
Que aula 👏🏻👏🏻👏🏻
Que série fantástica, valeu Akita!
Agora sim a semana começou hahaha
muito bom, parabens, voce conseguiu resumiu umas 300 paginas do tanembaum em apenas um video
esse cara é bom
Com tantos exemplos da vida real, utilizados para exemplificar a computação, fica ainda mais claro que estamos imitando a vida real ao escrever sistemas :)
Parabens pelo video,otimo conteudo,muito bem explicado.
Quando comprei meu primeiro Mac em 1999, um PowerPC G3 233MHz, ele fazia, com o MacOS 9 algo que parecia bruxaria à época: Ele conseguia gravar audio ao mesmo tempo que executava vários arquivos de audio ao mesmo tempo.
Muito bom Akita!! Parabéns pelo trabalho consiste e o conciso.
Opa! Chegando em casa, vou preparar a 🍿 e assistir o Akita.
Muito boa a explicação, deixa muitos Doutor em TI, no chinelo...
Se poder fazer alguns cursos de programação, certo que já tem em alguns canais
Mas queria ver você ensinando, como Node.Js
Python
C#
ou outras é ferramentas essenciais que todo programador tem que saber hoje para iniciar
Show !
obs: Quando se fala de troca de contexto, basicamente está se falando em salvar o contexto dos registradores para uma thread. Basicamente é salvar os valores dos registradores da cpu na estrutura da thread. Isso é o context switch feito por software, mas existe o salvamento feito em tss e esse é o context switch feito por hardware. Por fim, é importante lembrar que quando o sistema operacional possui estrutura de thread e estrutura de processo, então o processador vai lidar com threads. Mas sistemas antigos só tinham estrutura de processo e o contexto dos registradores eram salvos na estrutura de processo mesmo.
Ah! Fiz a pouco um exercício chamado "o jantar dos filosofos"... Teria sido tao bom ter assistido esse vídeo antes😅
Lembro até hj como simular as threads preemptivas no Windows 95/98 usando processador single-cores, era só tocar uma música no media player e abrir o browser em seguida, q era notavel como o scheduler de processos trabalhava, pois para dar conta dos dois processos intercalando de tempos em tempos em cada um dos processos, o som do media player sofria varios cortes a cada segundo enquanto estava carregando o browser.
Esse vídeo é TOP!