Why the startup of a new application causes system stuttering
Then sound from VLC player starts stuttering
Você apenas forneceu um exemplo de "gagueira", e não é o sistema que gagueja, mas um programa aplicativo sensível à latência de I / O. Em poucas palavras, seu sistema atingiu um limite para sua largura de banda de E / S.
So, each running app would get a certain amount of time slice from cpu for their operation(depending on their demand)
Talvez, ou talvez não. O agendador do sistema operacional pode usar timeslices para alocar tempo de CPU para cada processo, ou um esquema prioritário de preferência pode ser utilizado. Ou, se o agendamento cooperativo for usado, um processo pode permitir que a CPU ative até que ela abandone o controle. Um "sistema operacional moderno" oferecerá aos programadores de sistema e aplicativos muitas opções para adaptar o agendamento.
Mas vamos supor que um agendamento de timeslicing round-robin seja usado em seu exemplo. O player VLC deve ser categorizado como um programa intensivo de E / S , ao contrário de um intensivo de CPU . Essencialmente, o player VLC é repetidamente
- lendo dados (de um arquivo de disco)
- escrevendo os dados (no dispositivo de áudio)
O player VLC não utiliza seu intervalo de tempo para cálculos intensivos, mas principalmente para executar uma operação de entrada ou saída e, em seguida, é suspenso até que a operação de E / S seja concluída. Dependendo do agendador do sistema operacional, a porção não utilizada da timeslice pode ser creditada de volta ao processo por um período de tempo extra longo no próximo go-around, ou o processo perde, ou o processo chega ao início da fila pronta como assim que a E / S for concluída. O que acontece exatamente dependerá de como o planejador do sistema operacional é implementado. Por exemplo, o kernel do Linux pode ser construído para usar um dos vários agendadores, cada um com características diferentes de "justiça" para diferentes tipos de processos.
Então, quando você inicia o NetBeans, inicia uma enxurrada de leituras de disco para localizar e carregar o código do aplicativo e as bibliotecas compartilhadas. Muito provavelmente, essa atividade adicional do disco é misturada com as solicitações do player VLC e faz com que cada leitura do VLC demore mais do que a latência aceitável, portanto, o dispositivo de áudio fica sem dados e, portanto, a "gagueira" audível.
Infelizmente, os agendadores tendem a se concentrar na alocação de recursos da CPU e têm dificuldade (ou evitar lidar) com problemas de E / S imprevisíveis. Você pode tentar uma unidade de disco mais rápida e / ou localizar o arquivo de áudio em uma unidade diferente da unidade de programas do OS +.
Seu problema está relacionado aos sistemas realtime e near-realtime , que lidam com respostas confiáveis e rápidas / previsíveis aos eventos. A reprodução de vídeo e áudio não tolera a latência de E / S variável e possui algumas características dos sistemas near-realtime . Os jogadores devem incorporar técnicas usadas em sistemas quase em tempo real se o sistema operacional tiver recursos como prioridades de processo.
A rede tem sido responsiva ao lidar com tráfego de baixa latência versus tráfego comum, já que tinha que resolver esse problema para VoIP. Algo semelhante é necessário para sistemas de armazenamento em massa.