Какие языки программирования использовались для полета на Луну?

У меня возникла проблема в том, что я хотел завершить многопроцессорный подпроцесс, если потребовалось больше времени, чем заданная длина таймаута. Я хотел установить тайм-аут в Popen(), но это не сработало. Затем я понял, что Popen().wait() равен call(), и поэтому у меня возникла идея установить тайм-аут в рамках метода .wait(timeout=xxx), который, наконец, работал. Таким образом, я решил это так:

import os
import sys
import signal
import subprocess
from multiprocessing import Pool

cores_for_parallelization = 4
timeout_time = 15  # seconds

def main():
    jobs = [...YOUR_JOB_LIST...]
    with Pool(cores_for_parallelization) as p:
        p.map(run_parallel_jobs, jobs)

def run_parallel_jobs(args):
    # Define the arguments including the paths
    initial_terminal_command = 'C:\\Python34\\python.exe'  # Python executable
    function_to_start = 'C:\\temp\\xyz.py'  # The multithreading script
    final_list = [initial_terminal_command, function_to_start]
    final_list.extend(args)

    # Start the subprocess and determine the process PID
    subp = subprocess.Popen(final_list)  # starts the process
    pid = subp.pid

    # Wait until the return code returns from the function by considering the timeout. 
    # If not, terminate the process.
    try:
        returncode = subp.wait(timeout=timeout_time)  # should be zero if accomplished
    except subprocess.TimeoutExpired:
        # Distinguish between Linux and Windows and terminate the process if 
        # the timeout has been expired
        if sys.platform == 'linux2':
            os.kill(pid, signal.SIGTERM)
        elif sys.platform == 'win32':
            subp.terminate()

if __name__ == '__main__':
    main()
30
задан Amal Murali 29 March 2014 в 17:59
поделиться

4 ответа

Не полный ответ, но немного больше информации:

"Бортовой компьютер наведения "Аполлона" (AGC) был размером около 1 кубического фута с 2К 16-битной оперативной памяти и 36К памяти с жесткой проводкой в виде медных проводов, нанизанных или не нанизанных на крошечные магнитные сердечники. 16-битные слова обычно состояли из 14 бит данных (или двух операционных кодов), 1 бита знака и 1 бита четности. Время цикла составляло 11,7 микросекунды. Программирование осуществлялось на языке ассемблера и на интерпретируемом языке, на обратном польском языке. "

http://www.hq.nasa.gov/alsj/a11/a11.1201-fm.html

Добавлено: BBC недавно опубликовала замечательную статью об AGC, включая интервью с разработчиками и с "маленькими старушками", которые плели "веревочный сердечник". В ней не рассказывается о том, как разрабатывалось, кодировалось или тестировалось программное обеспечение, но вы, вероятно, все равно найдете ее интересной!

Кроме того, исходный код основного и посадочного модулей можно найти здесь

34
ответ дан Community 27 November 2019 в 18:26
поделиться

Управляющий компьютер Apollo был запрограммирован на ассемблере.

5
ответ дан Chris Upchurch 27 November 2019 в 18:26
поделиться

Не полный ответ, но немного больше информации:

«Бортовой компьютер управления Apollo (AGC) ) был около 1 кубического фута с 2K 16-битной оперативной памяти и 36K жесткой памяти сердечника и веревки с медными проводами, пронизанными или не пропущенными через крошечные магнитные сердечники. 16-разрядные слова были обычно 14 битами данных (или два операционных -коды), 1 знаковый бит и 1 бит четности. Время цикла составило 11,7 микросекунды. Программирование было выполнено на ассемблере и на языке интерпретации на обратном польском языке. "

http: //www.hq.nasa.gov/alsj/a11/a11.1201-fm.html

Added: BBC недавно опубликовала замечательную статью об AGC , включая интервью с дизайнерами, и с «маленькими старушками», которые плели «веревочную сердцевину». Это не

1
ответ дан Mitja 27 November 2019 в 18:26
поделиться

Я помню, как читал, что одно и то же программное обеспечение было написано (по крайней мере) двумя разными непересекающимися командами. Затем компьютеры сравнивают свои ответы и проверяют наличие расхождений ... не уверены, что они будут делать, если найдут какие-либо, но, по крайней мере, они будут знать, что возникла проблема. Я думаю, что на самом деле они использовали четыре разных компьютера и получили большинство голосов, поэтому, если один компьютер был не прав, он был проигнорирован.

1
ответ дан mpen 27 November 2019 в 18:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: