Por que os sistemas operacionais têm uma opção para desligar? [duplicado]


10

Tela de desligamento do Windows 98
(fonte: ytimg.com )

Quero saber por que os sistemas operacionais exigem o desligamento usando uma opção. Por que não consigo desligar com um interruptor mecânico?

Vou danificar o hardware ou corromper meus dados se desligar constantemente um computador sem usar a opção do SO?

Para esclarecer: Desejo usar o Intel Compute Stick como um media player conectado a um projetor, para que ele seja controlado por um interruptor elétrico. O computador terá apenas o vídeo em execução e não será instalado. O computador não terá acesso à Internet.


30
O que sua pesquisa lhe disse? Uma rápida pesquisa no Google por "por que eu preciso desligar meu computador em vez de desligar o computador" encontrará várias respostas ... E sim, você pode danificar seu hardware, mas os riscos são baixos, mas há definitivamente uma chance de corromper ou perder dados.
acejavelin

1
Se o seu hardware suportar isso e o sistema com o qual você estiver trabalhando estiver acessando completamente qualquer armazenamento no modo somente leitura e o sistema não estiver operando com hardware que deve ser desligado com algum procedimento (por exemplo, algumas placas sintonizadoras de TV, modems, ...) , então não há problema em apenas cortar a energia. Tais sistemas são ... bastante difíceis de encontrar, no entanto.
Daniel Jour


1
O hardware mais antigo era menos tolerante à perda repentina de energia. Mas o hardware moderno é tolerante à perda repentina de energia. Os sistemas de desktop tendem a exigir um desligamento ordenado. Os sistemas embarcados podem tolerar a perda repentina de energia. O Linux incorporado geralmente usa sistemas de arquivos JFFS2 e UBIFS; "Tanto o UBI (veja aqui ) quanto o UBIFS são tolerantes a cortes de energia e foram projetados com essa propriedade em mente". . Observe que esses são sistemas de arquivos lidos / graváveis.
sawdust

1
@DrZoo era (ainda é) idêntico no XP se você executá-lo em um sistema sem uma fonte de alimentação ATX. Eu costumava usar um pouco de kit de teste com um PC pro XP padrão construído dentro.
Chris H

Respostas:


41

Depende do que está acontecendo com o sistema no momento em que você optou por cortar repentinamente a energia. Se o sistema estiver ocupado gravando dados importantes e você reduzir a energia, poderá danificar os dados ou corromper o sistema operacional. Muitas coisas estão acontecendo e você realmente não vê. Você precisa se preocupar principalmente com a quebra de algo relacionado ao software ao fazer uma reinicialização completa. Quanto ao hardware, você não deve encontrar nenhum problema. Bata na madeira

Você não deseja criar um hábito ignorando o método de desligamento e cortando a energia. Seria apenas uma questão de tempo até que algo fique corrompido e faça com que você precise reinstalar o sistema operacional.

Em alguns casos, uma redefinição forçada é a única opção que você tem. Se o computador travar e você não conseguir fazer nada, que outra opção existe?

A origem dessa tela é dos sistemas Windows 9X, onde a mensagem é exibida quando o Windows é encerrado com êxito no MS-DOS, mas não está configurado para retornar ao prompt (COMMAND.COM) novamente. Em sistemas com suporte adequado a ACPI e fonte de alimentação ATX, o PC pode desligar.

Em qualquer situação em que você faça uma reinicialização total, não se esqueça de gritar " Eu sou o senhor da eletricidade !!! no seu PC. Mostre quem é o chefe.


26
A última linha ... infelizmente ele não tem o mesmo sentimento quando se é uma máquina virtual
Burgi

14
@Burgi " Eu sou o barão da eletricidade !!! * " - corrigido?
precisa saber é o seguinte

5
@Burgi " Eu sou o rei dos bits !!! "
hBy2Py 10/03/16

5
Quanto ao hardware, meu entendimento é que puxar a força fará com que o disco rígido faça um "parque de emergência". Embora isso normalmente impeça a unidade de ser danificada, os discos rígidos são classificados para um número muito menor de parques de emergência do que os parques regulares (comandados), portanto, a unidade pode se desgastar mais rapidamente.
Nate Eldredge

6
Em um sistema de arquivos com registro de diário moderno, você não precisará reinstalar o SO em circunstâncias normais. Mas você pode, de maneira plausível, perder muitos dados de aplicativos que você pensou que salvou em disco.
Kevin

27

Os computadores são projetados para serem rápidos. Isso pode incluir trapaça. Por exemplo, quando um computador deve gravar dados, os computadores podem armazenar dados na RAM, em vez de gravá-los no disco rígido. Isso é feito porque a RAM é muito mais rápida.

O desligamento informa ao computador para liberar os buffers, o que significa parar de armazenar coisas na RAM e preparar o sistema para perder energia elétrica. Se você realmente perder energia elétrica antes de garantir que todos esses dados sejam gravados corretamente, você poderá perder dados.

Parte dos detalhes da estrutura do volume do sistema de arquivos é tratada pelo código de manipulação do sistema de arquivos do sistema operacional (às vezes chamado de driver do sistema de arquivos). Geralmente, os sistemas de arquivos usam tabelas. (Visualmente, você pode pensar neles como gráficos.) Imagine se você estivesse escrevendo uma tabela de multiplicação e dizia:
2 4 6 8 10 12 14 1

Primeiro de tudo, cada coluna tem apenas uma linha. Os problemas de multiplicação devem ter três partes (dois números que são multiplicados (o multiplicando e o multiplicador) e uma resposta (o produto)). Aqui tudo o que estamos vendo é um monte de números únicos, então nem temos um exemplo completo de um produto de multiplicação. O que temos é inútil.

Segundo, o que temos é realmente pior que inútil. Às vezes, a única coisa pior do que a falta de informações (fazendo com que você não progrida enquanto descobre as informações necessárias) são informações enganosas confiáveis ​​que fazem com que você gaste recursos para prosseguir em uma direção inútil e ruim. Nesse caso, você tem dados inválidos no final: um em vez de 16. (A idéia aqui é que o gráfico parou de ser atualizado repentinamente, antes que todo o número "16" fosse anotado corretamente.) Se você não deixar o computador preenche corretamente seus gráficos, isso pode causar confusão. (Se o computador for instruído a atualizar alguns dados e ele deve gravar na posição dezesseis ... você não deseja que ele escreva na posição número um!) O computador depende de tabelas de natureza bastante semelhante a essa.

Outro exemplo é a memória virtual. Se um computador ficar sem memória RAM, ele poderá usar espaço no disco rígido para acompanhar os detalhes. Por exemplo, talvez você tenha um documento de cinquenta páginas em um processador de texto. O computador está acompanhando o fato de o processador de texto estar aberto e acompanha as 12 primeiras páginas, mas as 38 páginas restantes são armazenadas no disco rígido, no que é chamado de "memória virtual". Quando você desliga, o computador passa por todo o processo de desligamento de programas, o que libera um pouco de RAM e, eventualmente, usa a "memória virtual" para lidar adequadamente com o processador de texto. Se você simplesmente perdeu energia elétrica, o processador de texto para de funcionar (porque tudo para). Então, quando o computador iniciar, vê que a memória virtual possui os dados das 38 páginas do documento que foram abertas em um processador de texto. O computador nem sabe que os dados estavam sendo usados ​​por um processador de texto. O desligamento permite que essas coisas sejam resolvidas enquanto o computador é capaz de acompanhar esses detalhes.

Comparado ao Windows 95, o MS-DOS era mais resistente (menos propenso a problemas) quando se tratava de quedas repentinas de energia. (Parte dessa vulnerabilidade aumentada se deve às habilidades do Windows 95 de realizar multitarefas e manipular memória virtual.) Portanto, a suscetibilidade do computador a desligamentos inválidos, ou mesmo se é necessário um procedimento oficial de desligamento, baseia-se em qual sistema operacional está sendo usado. A maioria dos sistemas operacionais modernos é projetada para depender de um desligamento adequado, porque os sistemas operacionais são mais fáceis de projetar com esse requisito. Não há razão para que isso aconteça e, de fato, alguns sistemas operacionais nanobsd permitem que uma pessoa simplesmente o desligue. Como exemplo, uma página no nanobsd diz "Tudo é somente leitura em tempo de execução - É seguro puxar o plugue".A página inicial do resflash tem um marcador dizendo "A energia pode ser perdida com segurança a qualquer momento". Portanto, não há razão para que os desligamentos absolutamente tenham que ser um requisito que os projetistas de sistemas operacionais impõem quando criam o design de um sistema operacional. Desligar é simplesmente um requisito bastante comum.


1
"Então, quando o computador inicia, ele vê que a memória virtual possui os dados das 38 páginas do documento que foram abertas em um processador de texto". - ele não se importa, tratará isso como dados de lixo e não os usará até que sejam substituídos. (Porque o que você poderia esperar para estar lá Ela nunca vai ser nada de útil?)
user253751

1
"não vai se importar, vai tratar isso como lixo" - certo. É por isso que a minha próxima frase (depois da que você citou) disse: "O computador nem sabe que os dados estavam sendo usados ​​por um processador de texto". Perdeu a noção desse fato.
TOOGAM 10/03/16

O que quero dizer é que isso não causa problemas.
user253751

" A maioria dos sistemas operacionais modernos são projetados ... mais fáceis de projetar com esse requisito ". OMI é uma simplificação excessiva. Podemos evitar desligamentos, mas a um custo muito caro . Sem cache, não há como os processos em segundo plano (servidores, gerenciadores de backup, atualizações) serem notificados. Além disso, o hardware moderno não é mais usado com o PIO, mas com o DMA , você diz ao HDD e à NIC para ler os dados da RAM e eles notificam você quando terminar. E se a energia perdida entre o HDD estiver gravando do cache para as placas? Deixe o sistema operacional decidir quanto adiar o desligamento. Sabe melhor.
Margaret Bloom

5

Nos dias do MS-DOS, a interrupção da energia do computador geralmente causava a perda de qualquer informação mantida na RAM, mas não armazenada no disco, mas não afetava as informações armazenadas no disco. O ato de armazenar informações no disco, no entanto, geralmente torna as informações antigas ilegíveis pelo menos um pouco antes que a nova versão seja legível. A perda de poder entre o tempo em que a versão antiga é destruída e a nova versão escrita deixaria uma sem qualquer versão da informação. Se as informações em questão forem algo como uma estrutura de diretórios, essas áreas do disco podem ficar inacessíveis.

Se alguém estiver usando um software que grava informações no disco apenas quando solicitado explicitamente, então, desde que não seja necessário consumir energia imediatamente após solicitar ao sistema que escreva no disco, não se deve desobedecer acidentalmente nenhuma informação no disco. Os sistemas modernos, no entanto, geralmente têm uma ou mais tarefas que podem começar a gravar informações no disco às vezes que o usuário não espera necessariamente. Se, por acaso, o sistema começar a escrever algumas informações antes que o usuário acabe com a energia, isso poderá resultar em corrupção do disco e perda de dados.

Parte do objetivo de selecionar "desligamento" é eliminar a possibilidade de o sistema iniciar espontaneamente qualquer ação que grave dados no disco, exatamente quando o usuário está prestes a perder energia. Qualquer ação que não seja acionada antes da mensagem "Agora você pode desligar o computador" é mostrada não poderá ser acionada até depois que o sistema for reiniciado; portanto, não há perigo de que algo aconteça, assim como o usuário puxa o plugue.


1
Mesmo nos dias do DOS, era uma péssima idéia. Se um arquivo foi atualizado, mas o FAT não foi atualizado, você receberá um arquivo corrompido.
precisa

1
@DewiMorgan: Nos dias do DOS, havia utilitários disponíveis para o cache de write-back, mas todas as versões independentes do DOS que eu lembro usavam o cache de write-through como seu comportamento normal. O que alguém faria de outra forma para notificar o sistema que queria desligar?
precisa

3
@DewiMorgan: Eu sei que alguns discos rígidos antigos tinham utilitários de estacionamento, mas eles eram praticamente obsoletos antes do Windows 95 substituir o DOS.
supercat

1
supercat: Nah, o MS-DOS não fazia esse cache, a menos que você executasse um software para fazer isso, como o SmartDrv incluído. Como você notificaria que o sistema deveria desligar é usar SmartDrv/C. (Acredito que o comportamento padrão, em relação ao cache de gravação, foi diferente entre o MS-DOS 5.0 e 6.22 ... Não lembro de imediato se foi a atualização 5.0-> 6.0 ou posterior que fez a alteração). Se a memória não me falha, uma das atualizações posteriores (a partir de 6 ou mais tarde), causada smartdrv para automaticamente fazer isso antes de deixar Command.Com mostrar o pedido novamente, de modo seguro para desligar quando no prompt
TOOGAM

1
@Supercat Pelo que entendi, o cache de gravação protege um único bloco de dados contra corrupção durante uma gravação. Ele não protege dois blocos diferentes (FAT e conteúdo do arquivo) de ficarem fora de sincronia se o poder for reduzido entre a gravação de um e do outro.
Dewi Morgan

4

Há dois motivos principais pelos quais os sistemas de computador precisam de um desligamento ordenado:

Estado da aplicação

Muitos aplicativos possuem estados que devem ser gravados no armazenamento permanente. O exemplo óbvio é um servidor de banco de dados, mas mesmo aplicativos principalmente de leitura, como servidores Web ou NTP, podem gravar logs ou estatísticas que podem ser ininteligíveis se uma gravação for interrompida.

Pode ser possível aliviar esse problema se os aplicativos em questão não lerem ou gravarem arquivos diretamente, mas executarem essas operações por meio de um mecanismo transacional, como gravar em um banco de dados relacional.

Estrutura do sistema de arquivos

À medida que o sistema operacional grava arquivos em nome dos aplicativos, as gravações podem ser armazenadas em buffer até que os discos sejam atualizados, o que significa que as gravações dos aplicativos não são necessariamente concluídas até muito tempo depois. Os mecanismos de economia de energia tendem a aumentar o atraso aqui, para que você tenha uma troca entre consumo de energia e segurança de dados.

Enquanto os dados estão sendo gravados no disco, há pontos em que os dados do sistema de arquivos são inconsistentes. As implementações modernas do sistema de arquivos cuidam para minimizar os períodos, mas não podem ser totalmente eliminadas. Por exemplo, quando um bloco é retirado da lista livre, há uma janela curta em que ele não é alocado nem livre. Esse problema de consistência é o motivo pelo qual, após um desligamento impuro, um sistema operacional precisará executar uma verificação do sistema de arquivos na próxima inicialização, para examinar todos os blocos e garantir que eles sejam contabilizados corretamente.

O sistema de diário de arquivos alivia isso até certo ponto, registrando as alterações pretendidas em um log antes de realizá-las. A verificação do sistema de arquivos pode ser executada muito mais rapidamente, reproduzindo todas as entradas completas do log e descartando as incompletas.

Os problemas de consistência do sistema de arquivos podem ser evitados se não houver discos locais e a montagem do NFS no sistema de arquivos raiz, mas a perda de gravações em cache ainda é um problema para esses sistemas. Os únicos sistemas que estou disposto a desligar sem desligar são os que têm os discos montados somente para leitura (principalmente sistemas embarcados, como o meu tocador de música Empeg Car, mas também alguns terminais de navegação na web que tenho. para visitantes).

TL; DR

As gravações de dados no armazenamento permanente devem ser concluídas antes do desligamento. Se você não tiver armazenamento gravável, a remoção da energia é de baixo risco.


-1

porque se algum arquivo descritor estiver aberto, ele pode corromper um arquivo importante e deixar o SO morto


15
Bem-vindo ao superusuário. Um erro comum que os novos usuários cometem é responder sem detalhes de como realmente resolver o problema. As respostas devem ser detalhadas e incluir referências, conforme necessário. Reserve alguns minutos para editar sua resposta e incluir detalhes de por que ela é válida. Se precisar de ajuda, leia Como escrevo uma boa resposta? .
precisa
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.