MAINFRAME: substantivo. Um dispositivo obsoleto ainda usado por milhares de empresas obsoletas que atendem bilhões de clientes obsoletos e obtêm enormes lucros obsoletos para seus acionistas obsoletos. E a corrida deste ano foi duas vezes mais rápida que a do ano passado. (do dicionário do diabo do diabo )
Abaixo estão duas seções. Um no que são mainframes, o outro em programadores de mainframe.
A primeira coisa que você precisa saber sobre mainframes é que eles são projetados para uma finalidade diferente de muitos computadores modernos.
Os computadores de hoje são todos sobre a velocidade e a potência do processador. Ocasionalmente, um PC fica travado em um ciclo de espera e às vezes até falha.
Os mainframes, por outro lado, são sobre confiabilidade, disponibilidade e capacidade de manutenção (RAS).
Confiabilidade. Esta palavra é usada tanto no sentido de hardware (eles continuam funcionando) quanto no sentido de dados (corrupção de dados é ultrajante). Veja minhas notas abaixo sobre por que isso é verdade.
Disponibilidade. Os mainframes têm algo chamado de "cinco noves", o que significa que o fator "up time" de um mainframe é 0.99999 ou colocado em linguagem simples, um mainframe pode rodar 24x7x365 sem parar suportando milhares de usuários simultâneos por um ano inteiro e pode ser confiavelmente contado para não ficar "para baixo" por mais de 5 minutos no total do ano.
Facilidade de Manutenção. Um mainframe é construído com muitos circuitos personalizados, cada um focado em uma tarefa especial. Se alguma parte começar a falhar, o problema será detectado automaticamente e outro circuito assumirá e o operador do sistema será notificado. Se o circuito com problema precisar ser substituído, geralmente isso pode ser feito enquanto o computador continua funcionando.
Os computadores modernos começam com uma Unidade Central de Processamento genérica (como a série x86) e o software do SO é gravado usando os códigos de CPU existentes. Mas a razão pela qual os mainframes são tão sólidos é porque o hardware e o software são co-projetados.
Se o sistema operacional precisa continuamente fazer uma tarefa complexa em um PC, então uma rotina é escrita e chamada pela CPU, que faz todo o trabalho. Mas em um mainframe - se a demanda por ele é alta o suficiente - às vezes um circuito especializado é projetado e instalado dedicado a essa tarefa. Por exemplo, em alguns mainframes modernos existem circuitos especializados apenas para criptografar e descriptografar dados e outros circuitos apenas para executar o código Java. Há também circuitos especiais para falar com drives de disco e impressoras, para que o processador não fique preso em trivialidades. E, claro, há uma tonelada de circuitos especiais projetados para evitar a corrupção de dados. Em um PC moderno, tudo isso é feito pela CPU.
A coisa mais próxima que temos dos PCs são (1) co-processadores de matemática e (2) coprocessadores gráficos, ambos invenções relativamente modernas para PCs, mas os mainframes estavam fazendo esse tipo de coisa há mais de 50 anos.
Uma última coisa: a maior força dos mainframes em como eles são usados é algo chamado de processamento maciço de transações paralelas . Essa é a capacidade de um único mainframe se comunicar com dezenas de milhares de usuários e / ou outros sistemas ao mesmo tempo. Pense em todos os sistemas de ponto de venda do cartão de débito em praticamente todas as lojas / postos de gasolina / restaurantes em que você faz compras. Todos eles conversam com um mainframe toda vez que alguém rouba um cartão e uma resposta é retornada normalmente em menos de um segundo depois de pesquisar por bilhões de registros.
A conclusão: a menos que algo saia muito errado (e, mesmo assim, geralmente é causado por erro humano), os mainframes não param e não travam. Os dados que eles manipulam são acessados com rapidez e precisão. Eles são chamados de "ferro grande" por um bom motivo.
Consulte http://www.mainframes360.com/2009/06/what-is-frame-computer.html e também http://www.wired.com/2015/01/z13-mainframe/ para mais informações.
Você também perguntou sobre programadores "manter" o computador ...
Mainframes tem dois tipos diferentes de programadores. O primeiro tipo é o que você está acostumado, programadores de aplicativos . Estas são as pessoas que escrevem usando COBOL e C ++ e JAVA para trabalhar com bancos de dados e relatórios e coisas assim. O outro tipo é chamado de programador de sistema e seu trabalho é manter o sistema operacional e monitorar o hardware.
O código legado é simplesmente um código "herdado" de gerações anteriores de programadores. É um bom código sólido que funciona e, porque funciona, as empresas que o usam preferem não substituí-lo por um código "novo" que possa ter bugs. Como acontece com todas as coisas de software que exigem que o código seja ocasionalmente modificado e é aí que os programadores especializados em código legado são necessários. Eles conhecem essas linguagens e sistemas antigos e esse conhecimento é valioso para empresas que usam mainframes e outros tipos de computadores antigos.
Cada usuário de PC tem uma combinação única de aplicativos e hardware. No entanto, a Microsoft envia periodicamente "atualizações" de tamanho único para o Windows e você as aceita ou rejeita. Mesma coisa com algumas das várias distribuições Linux. E, às vezes, essas atualizações causam problemas porque não funcionam corretamente com seu hardware e software.
Um mainframe é como um avião, ganha dinheiro quando funciona e perde dinheiro quando não funciona. Um mainframe é incrivelmente caro para ficar inativo ou travado devido a uma atualização incorreta e as empresas que operam com eles não podem arcar com "problemas". Então eles têm programadores de sistema para evitar esses problemas.
O trabalho de um programador de sistemas é analisar as atualizações do sistema operacional (patches) da IBM e testá-las ANTES de instalá-las para garantir que elas não causem problemas nessa máquina específica. Eles realmente examinam partes do código-fonte das atualizações e as comparam com a configuração de hardware e software da empresa. Se necessário, eles trabalharão com a IBM para personalizar a atualização para que ela funcione com segurança com seu sistema exclusivo.
O programador do sistema precisa conhecer cada aplicativo que está instalado e cada peça de hardware que está conectada. Ele ou ela é responsável por qualquer coisa e tudo que muda no sistema.
Esta é uma pequena parte do que um programador de sistemas faz, e o período típico de treinamento para um programador de sistemas especialistas é de 10 a 20 anos.
Consulte https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.zmainframe/zconc_sysprogrole.htm para obter mais informações.