Advertisement
MateuszGrabarczyk

AK

Dec 13th, 2022
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.34 KB | None | 0 0
  1. # This is a sample Python script.
  2. import random
  3. questions = [["Architektura superskalarna:", {"Umożliwia równoległe wykonywanie kilku rozkazów w jednym procesorze":"P",
  4. "Wymaga zastosowania protokołu MESI":"F",
  5. "Wywodzi się z architektury VLIW": "F"}],
  6. ["Cechy architektury CISC:", {"czy występuje model wymiany danych typu pamięć - pamięć":"P",
  7. "jest mała liczba rozkazów":"F",
  8. "czy może być wykonana w VLIW":"F"}],
  9. ["Cechy architektury RISC:", {"czy występuje model wymiany danych typu rej-rej":"P",
  10. "jest mała liczba trybów adresowania":"P",
  11. "jest wykonywanych kilka rozkazów w jednym takcie":"P",
  12. "układ sterowania w postaci logiki szytej":"P",
  13. "jest wykonywanych kilka instrukcji procesora w jednym rozkazie asemblerowym":"F"}],
  14. ["Efektywne wykorzystanie równoległości na poziomie danych umożliwiają:", {"komputery wektorowe":"P",
  15. "komputery macierzowe": "P",
  16. "procesory graficzne":"P",
  17. " rozszerzenia SIMD procesorów superskalarnych":"P"}],
  18. ["Hazard danych:", {" czasami może być usunięty przez zmianę kolejności wykonania rozkazów":"P",
  19. "nie występuje w architekturze superskalarnej":"F",
  20. " jest eliminowany przez zastosowanie specjalnego bitu w kodzie programu":"F",
  21. "może wymagać wyczyszczenia potoku i rozpoczęcia nowej (...)":"F"}],
  22. ["Jak można ominąć hazard danych:", {"przez zamianę rozkazów":"P",
  23. " poprzez rozgałęzienia":"F",
  24. "poprzez uproszczenie adresowania - adresowanie bezpośrednie":"F"}],
  25. ["Komputery macierzowe:", {"wykonują synchroniczną operację wektorową w sieci elementów przetwarzających":"P",
  26. " maja w liście rozkazów m.in. rozkazy operujące na wektorach danych":"P",
  27. " maja macierzowe potokowe układy arytmetyczne":"F",
  28. "maja w typowych rozwiązaniach zestaw pełnych procesów połączonych siecią połączeń":"F"}],
  29. ["Komputery wektorowe:", {"posiadają w liście rozkazów m.in. rozkazy operujące na wektorach danych":"P",
  30. "wykorzystują od kilku do kilkunastu potokowych jednostek arytmetycznych":"P",
  31. " posiadają listę rozkazów operujących wyłącznie na wektorach":"F"}],
  32. ["Mechanizm skoków opóźnionych:", {"polega na opóźnianiu wykonywania skoku do czasu wykonania rozkazu następnego za skokiem": "P",
  33. "wymaga umieszczenia rozkazu NOP za rozkazem skoku lub reorganizację programu":"P",
  34. "wymaga wstrzymania potoku na jeden takt":"F",
  35. "powoduje błąd na końcu pętli":"F"}],
  36. ["Mechanizmy potokowe stosowane są w celu:", {"uzyskania równoległej realizacji rozkazów":"P",
  37. "przyspieszenia realizacji rozkazów":"P",
  38. "uszeregowania ciągu wykonywanych rozkazów":"F"}],
  39. ["Metoda przemianowania rejestrów jest stosowana w celu eliminacji:", {" zależności wyjściowej między rozkazami":"P",
  40. "antyzależności między rozkazami":"P",
  41. "błędnego przewidywania rozgałęzień":"F",
  42. " chybionego odwołania do pamięci podręcznej":"F",
  43. " prawdziwej zależności danych":"F"}],
  44. ["Moc obliczeniowa komputerów wektorowych:", {"jest odwrotnie proporcjonalna do długości taktu zegarowego":"P",
  45. "zmierza asymptotycznie do wartości maksymalnej wraz ze wzrostem długości wektora":"P",
  46. "zależy od liczby stopni potoku":"F",
  47. "jest wprost proporcjonalna do długości taktu zegarowego":"F",
  48. "zależy odwrotnie proporcjonalnie od liczby jednostek potokowych połączonych łańcuchowo":"F",
  49. "nie zależy od długości wektora":"F",
  50. "zależy liniowo od długości wektora":"F"}],
  51. ["Model SIMD:", {" jest wykorzystywany w multimedialnych rozszerzeniach współczesnych procesorów":"P",
  52. " zapewnia wykorzystanie tej samej operacji na wektorach argumentów":"P",
  53. " był wykorzystywany tylko w procesorach macierzowych":"F"}],
  54. ["Podstawą klasyfikacji Flynna jest:", {"Liczba strumieni rozkazów i danych w systemach komputerowych":"P"}],
  55. ["Problemy z potokowym wykonywaniem rozkazów skoków (rozgałęzień) mogą być wyeliminowane lub ograniczone przy pomocy:", {"tablicy historii rozgałęzień":"P",
  56. "wystawienia do programu rozkazów typu „nic nie rób":"P",
  57. "wykorzystania techniki skoków opóźniających":"P",
  58. "technologii MMX":"F",
  59. "techniki wyprzedzającego pobrania argumentu":"F"}],
  60. ["Procesory wektorowe:", {"Mogą być stosowane w systemach wieloprocesorowych":"P",
  61. "mają moc kilka razy większą od procesorów skalarnych":"P"}],
  62. ["Przetwarzanie potokowe:", {"daje przyspieszenie nie większe od liczby segmentów (stopni) jednostki potokowe":"P",
  63. "nie jest realizowane dla operacji zmiennoprzecinkowych":"F",
  64. "nie jest realizowane w procesorach CISC":"F",
  65. "w przypadku wystąpienia zależności między danymi wywołuje błąd i przerwanie wewnętrzne":"F",
  66. "jest realizowane tylko dla operacji zmiennoprzecinkowych":"F"}],
  67. ["Przetwarzanie wielowątkowe:", {"zapewnia lepsze wykorzystanie potoków":"P",
  68. "minimalizuje straty wynikające z chybionych odwołań do pamięci podręcznej":"P",
  69. "nie może być stosowane w przypadku hazardu danych":"F"}],
  70. ["Rozkazy wektorowe:", {"w komputerach wektorowych ich czas wykonania jest wprost proporcjonalny dodługości wektora":"P",
  71. "są charakterystyczne dla architektury SIMD":"P",
  72. "są rozkazami dwuargumentowymi i w wyniku zawsze dają wektor":"F",
  73. "nie mogą być wykonywane bez użycia potokowych jednostek arytmetycznych":"F"}],
  74. ["Rozkazy wektorowe mogą być realizowane przy wykorzystaniu:", {"Macierzy elementów przetwarzających":"P",
  75. "Technologii MMX":"P",
  76. "Potokowych jednostek arytmetycznych":"P",
  77. " Zestawu procesorów superskalarnych":"F",
  78. "Sieci połączeń typu krata":"F"}]
  79. ]
  80.  
  81. oldQuestions = []
  82.  
  83. while len(oldQuestions) != len(questions):
  84. print(100 * "\n")
  85. question = random.choice(questions)
  86. if question in oldQuestions:
  87. continue
  88. oldQuestions.append(question)
  89.  
  90. print(question[0])
  91. for key, value in question[1].items():
  92. print(key)
  93. answer = input("P or F: ")
  94. if answer.upper() == value:
  95. print("To jest dobra odpowiedź\n")
  96. else:
  97. print("ZŁA ODPOWIEDŹ!!!!!!\n")
  98.  
  99.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement