{
  "bookTitle": "Embedded System Design",
  "author": "Peter Marwedel",
  "edition": 4,
  "year": 2021,
  "doi": "https://doi.org/10.1007/978-3-030-60910-8",
  "license": "CC-BY-4.0",
  "licenseUrl": "https://creativecommons.org/licenses/by/4.0/",
  "pdfPages": 446,
  "sourceSha256": "9978521f76578fbeaea48dd8bd27fa148a0ac27e0e4a4420e152cdd42e3da5d1",
  "instructionalHeadings": 277,
  "coveredHeadings": 277,
  "exerciseCount": 110,
  "promptCount": 387,
  "chapters": {
    "1": "Giriş ve tasarım akışı",
    "2": "Belirtimler ve modelleme",
    "3": "Gömülü sistem donanımı",
    "4": "Sistem yazılımı",
    "5": "Değerlendirme ve doğrulama",
    "6": "Uygulama eşleme ve zamanlama",
    "7": "Optimizasyon",
    "8": "Test",
    "appendices": "Ekler A–C",
    "correction": "Bölüm 5 düzeltmesi"
  },
  "sections": [
    {
      "key": "8",
      "title": "1 Introduction",
      "chapter": "1",
      "pdfPage": 21,
      "endPdfPage": 21,
      "page": "1",
      "endPage": "1",
      "promptId": "marwedel-topic-8",
      "sourceTextCharacters": 318,
      "sourceTextHash": "f8f2708b5ce63ad6f1f01bedbff1d8b6abe1cc4b752e5205d84a5bd4c52a351d"
    },
    {
      "key": "9",
      "title": "1.1 History of Terms",
      "chapter": "1",
      "pdfPage": 21,
      "endPdfPage": 24,
      "page": "1",
      "endPage": "4",
      "promptId": "marwedel-topic-9",
      "sourceTextCharacters": 7632,
      "sourceTextHash": "c120f84bcce59b2d304f3257114c247be299e7064c38dec7d30f3432e49f3fbf"
    },
    {
      "key": "10",
      "title": "1.2 Opportunities",
      "chapter": "1",
      "pdfPage": 24,
      "endPdfPage": 28,
      "page": "4",
      "endPage": "8",
      "promptId": "marwedel-topic-10",
      "sourceTextCharacters": 12024,
      "sourceTextHash": "c9a1becc3c794e4dbadb8a2f33c312124432995f1c336bcef67f917dede09afd"
    },
    {
      "key": "11",
      "title": "1.3 Challenges",
      "chapter": "1",
      "pdfPage": 28,
      "endPdfPage": 36,
      "page": "8",
      "endPage": "16",
      "promptId": "marwedel-topic-11",
      "sourceTextCharacters": 22830,
      "sourceTextHash": "0c884775e20e35afcacc7ea55a9c7aeed6f0ccfce17527b99450eac06962ce92"
    },
    {
      "key": "12",
      "title": "1.4 Common Characteristics",
      "chapter": "1",
      "pdfPage": 36,
      "endPdfPage": 38,
      "page": "16",
      "endPage": "18",
      "promptId": "marwedel-topic-12",
      "sourceTextCharacters": 5503,
      "sourceTextHash": "edeac407c75c3bf5570c03b8611497657247f954039fb608b00b93ff31adf171"
    },
    {
      "key": "13",
      "title": "1.5 Curriculum Integration of Embedded Systems, CPS, and IoT",
      "chapter": "1",
      "pdfPage": 38,
      "endPdfPage": 39,
      "page": "18",
      "endPage": "19",
      "promptId": "marwedel-topic-13",
      "sourceTextCharacters": 2893,
      "sourceTextHash": "97a24f2cfad62a43e054cca0558e140f034710a381aa582b33449cf8b1e65f2d"
    },
    {
      "key": "14",
      "title": "1.5.1 Prerequisites",
      "chapter": "1",
      "pdfPage": 39,
      "endPdfPage": 40,
      "page": "19",
      "endPage": "20",
      "promptId": "marwedel-topic-14",
      "sourceTextCharacters": 1852,
      "sourceTextHash": "7ac772639f3d593375d5cf9f8b1f6d783b9dd3c064a02afca6a9daddbb1f95b2"
    },
    {
      "key": "15",
      "title": "1.5.2 Recommended Additional Courses",
      "chapter": "1",
      "pdfPage": 40,
      "endPdfPage": 41,
      "page": "20",
      "endPage": "21",
      "promptId": "marwedel-topic-15",
      "sourceTextCharacters": 1129,
      "sourceTextHash": "8d86972586b8fdbf55ce24627412c40b8af7069f0dcc28b65bc4b36aba2e32d2"
    },
    {
      "key": "16",
      "title": "1.6 Design Flows",
      "chapter": "1",
      "pdfPage": 41,
      "endPdfPage": 44,
      "page": "21",
      "endPage": "24",
      "promptId": "marwedel-topic-16",
      "sourceTextCharacters": 10252,
      "sourceTextHash": "65553cfa008d5f16ae1bb99a20b9c0ffc8762a856af5f2e6baa9b74d0ed931b4"
    },
    {
      "key": "17",
      "title": "1.7 Structure of This Book",
      "chapter": "1",
      "pdfPage": 45,
      "endPdfPage": 46,
      "page": "25",
      "endPage": "26",
      "promptId": "marwedel-topic-17",
      "sourceTextCharacters": 4387,
      "sourceTextHash": "765f165cfafde7a977cc3afd900d14997550ae3b85a60e4111ee67a1e278812f"
    },
    {
      "key": "18",
      "title": "1.8 Problems",
      "chapter": "1",
      "pdfPage": 46,
      "endPdfPage": 47,
      "page": "26",
      "endPage": "27",
      "promptId": "marwedel-topic-18",
      "sourceTextCharacters": 1675,
      "sourceTextHash": "a7da938b405d606f6330bb659158de75952680e5257254f11d0bbe752a5086c5"
    },
    {
      "key": "19",
      "title": "2 Specifications and Modeling",
      "chapter": "2",
      "pdfPage": 48,
      "endPdfPage": 48,
      "page": "29",
      "endPage": "29",
      "promptId": "marwedel-topic-19",
      "sourceTextCharacters": 833,
      "sourceTextHash": "f2513f36b3854d9898ec616b61e9b8566f36404b0346952f530bdc50eb5d46c4"
    },
    {
      "key": "20",
      "title": "2.1 Requirements",
      "chapter": "2",
      "pdfPage": 48,
      "endPdfPage": 55,
      "page": "29",
      "endPage": "36",
      "promptId": "marwedel-topic-20",
      "sourceTextCharacters": 20389,
      "sourceTextHash": "2202430fa4007e2d06d27275654b75c165de800ac841ad8e3ecb9ef15bdae011"
    },
    {
      "key": "21",
      "title": "2.2 Models of Computation",
      "chapter": "2",
      "pdfPage": 55,
      "endPdfPage": 60,
      "page": "36",
      "endPage": "41",
      "promptId": "marwedel-topic-21",
      "sourceTextCharacters": 16747,
      "sourceTextHash": "d3abbb749a754a5f182cb80df3125c6740bf2c965dd9c1f93327b1106b8071ec"
    },
    {
      "key": "22",
      "title": "2.3 Early Design Phases",
      "chapter": "2",
      "pdfPage": 61,
      "endPdfPage": 61,
      "page": "42",
      "endPage": "42",
      "promptId": "marwedel-topic-22",
      "sourceTextCharacters": 638,
      "sourceTextHash": "a51600822ef20233af78c90360d17ed7a448c7f2440dadb4aca6159a52567e01"
    },
    {
      "key": "23",
      "title": "2.3.1 Use Cases",
      "chapter": "2",
      "pdfPage": 61,
      "endPdfPage": 62,
      "page": "42",
      "endPage": "43",
      "promptId": "marwedel-topic-23",
      "sourceTextCharacters": 2084,
      "sourceTextHash": "b1390b8065f286203bf4466e4d533b739df631b88b5082c9a8fe68389ba475af"
    },
    {
      "key": "24",
      "title": "2.3.2 (Message) Sequence Charts and Time/Distance Diagrams",
      "chapter": "2",
      "pdfPage": 62,
      "endPdfPage": 65,
      "page": "43",
      "endPage": "46",
      "promptId": "marwedel-topic-24",
      "sourceTextCharacters": 9004,
      "sourceTextHash": "c409933cb303d82d9dde86176414d5f9e7b5a12e1c569874b11d95229d2dc109"
    },
    {
      "key": "25",
      "title": "2.3.3 Differential Equations",
      "chapter": "2",
      "pdfPage": 65,
      "endPdfPage": 67,
      "page": "46",
      "endPage": "48",
      "promptId": "marwedel-topic-25",
      "sourceTextCharacters": 6804,
      "sourceTextHash": "2f5d2a86ec17779b66de5e7d96ed9e9d35a466ba45060c95d974fea08a2ca2d7"
    },
    {
      "key": "26",
      "title": "2.4 Communicating Finite State Machines (CFSMs)",
      "chapter": "2",
      "pdfPage": 68,
      "endPdfPage": 68,
      "page": "49",
      "endPage": "49",
      "promptId": "marwedel-topic-26",
      "sourceTextCharacters": 1200,
      "sourceTextHash": "fa5e708d0e1a01285d3111bbce1e7628f0cbe8bbae3512014421b4da54e20ddf"
    },
    {
      "key": "27",
      "title": "2.4.1 Timed Automata",
      "chapter": "2",
      "pdfPage": 68,
      "endPdfPage": 70,
      "page": "49",
      "endPage": "51",
      "promptId": "marwedel-topic-27",
      "sourceTextCharacters": 5360,
      "sourceTextHash": "df5aa28eb7823fcb037ef0cb10d19e569ec1e8482df758c341f568550d650673"
    },
    {
      "key": "28",
      "title": "2.4.2 StateCharts",
      "chapter": "2",
      "pdfPage": 70,
      "endPdfPage": 70,
      "page": "51",
      "endPage": "51",
      "promptId": "marwedel-topic-28",
      "sourceTextCharacters": 510,
      "sourceTextHash": "4969a70846041322a6ea56184ed942fafb2388f8d35cf1b90e796d80516708ef"
    },
    {
      "key": "29",
      "title": "Modeling of Hierarchy",
      "chapter": "2",
      "pdfPage": 70,
      "endPdfPage": 74,
      "page": "51",
      "endPage": "55",
      "promptId": "marwedel-topic-29",
      "sourceTextCharacters": 10659,
      "sourceTextHash": "96feec6044f6045a5c249df30b7aa535d1627c9395268cdcd26a67d9262dba40"
    },
    {
      "key": "30",
      "title": "Timers",
      "chapter": "2",
      "pdfPage": 74,
      "endPdfPage": 75,
      "page": "55",
      "endPage": "56",
      "promptId": "marwedel-topic-30",
      "sourceTextCharacters": 1864,
      "sourceTextHash": "7fa94c5f983cd2897efeccca9140fe077325e00ecda631580e32640484168ccd"
    },
    {
      "key": "31",
      "title": "Edge Labels and StateMate Semantics",
      "chapter": "2",
      "pdfPage": 75,
      "endPdfPage": 78,
      "page": "56",
      "endPage": "59",
      "promptId": "marwedel-topic-31",
      "sourceTextCharacters": 8012,
      "sourceTextHash": "2fddf5fa1e06045b2deffba738a8c71ee3508b771f71c227f9b5c93e3aca1379"
    },
    {
      "key": "32",
      "title": "Evaluation and Extensions",
      "chapter": "2",
      "pdfPage": 78,
      "endPdfPage": 79,
      "page": "59",
      "endPage": "60",
      "promptId": "marwedel-topic-32",
      "sourceTextCharacters": 2813,
      "sourceTextHash": "e60751e8c3c4a3ed2e69c878e17e18b7f538987bba5de74dbf5b6dd45914ade5"
    },
    {
      "key": "33",
      "title": "2.4.3 Synchronous Languages",
      "chapter": "2",
      "pdfPage": 79,
      "endPdfPage": 79,
      "page": "60",
      "endPage": "60",
      "promptId": "marwedel-topic-33",
      "sourceTextCharacters": 28,
      "sourceTextHash": "8f4be6192d04dbf242202131784098f44dca4a577bad4dfb4ee7f70ab30828ed"
    },
    {
      "key": "34",
      "title": "Motivation",
      "chapter": "2",
      "pdfPage": 79,
      "endPdfPage": 80,
      "page": "60",
      "endPage": "61",
      "promptId": "marwedel-topic-34",
      "sourceTextCharacters": 2383,
      "sourceTextHash": "227fd796ba27f47912897bbdfb613330118ea799a6049511147f27a468b80ac3"
    },
    {
      "key": "35",
      "title": "Examples of Synchronous Languages: Esterel, Lustre, and SCADE",
      "chapter": "2",
      "pdfPage": 80,
      "endPdfPage": 81,
      "page": "61",
      "endPage": "62",
      "promptId": "marwedel-topic-35",
      "sourceTextCharacters": 2592,
      "sourceTextHash": "0b5e7a51b3b5dfd07737521d27fabecf501aed909ebf75f7b87d26d944d4c71a"
    },
    {
      "key": "36",
      "title": "2.4.4 Message Passing: SDL as an Example",
      "chapter": "2",
      "pdfPage": 81,
      "endPdfPage": 81,
      "page": "62",
      "endPage": "62",
      "promptId": "marwedel-topic-36",
      "sourceTextCharacters": 41,
      "sourceTextHash": "a8fbf5e35b40da58d15ee98e234c3c5af4a5847181f3980becb3594b5931db3a"
    },
    {
      "key": "37",
      "title": "Features of the Language",
      "chapter": "2",
      "pdfPage": 81,
      "endPdfPage": 86,
      "page": "62",
      "endPage": "67",
      "promptId": "marwedel-topic-37",
      "sourceTextCharacters": 12463,
      "sourceTextHash": "14dd220d983b1fa3509888be183c81f92a15da361e1535232c2e07798a61220b"
    },
    {
      "key": "38",
      "title": "Evaluation of SDL",
      "chapter": "2",
      "pdfPage": 86,
      "endPdfPage": 87,
      "page": "67",
      "endPage": "68",
      "promptId": "marwedel-topic-38",
      "sourceTextCharacters": 895,
      "sourceTextHash": "c9eb9498122ef257aa9f1b93d1f0d745d9115456219da8648a1cfd38e3d2938e"
    },
    {
      "key": "39",
      "title": "2.5 Data Flow",
      "chapter": "2",
      "pdfPage": 87,
      "endPdfPage": 87,
      "page": "68",
      "endPage": "68",
      "promptId": "marwedel-topic-39",
      "sourceTextCharacters": 14,
      "sourceTextHash": "9da38d7a58a8e0570ce688417f71cfc6129d6a7471ada519ed7bd749721f5d0e"
    },
    {
      "key": "40",
      "title": "2.5.1 Scope",
      "chapter": "2",
      "pdfPage": 87,
      "endPdfPage": 88,
      "page": "68",
      "endPage": "69",
      "promptId": "marwedel-topic-40",
      "sourceTextCharacters": 3385,
      "sourceTextHash": "d45e3627701e5389963eaf799bb15774f5e9e1e26a81b3841399b4163cbabd92"
    },
    {
      "key": "41",
      "title": "2.5.2 Kahn Process Networks",
      "chapter": "2",
      "pdfPage": 88,
      "endPdfPage": 90,
      "page": "69",
      "endPage": "71",
      "promptId": "marwedel-topic-41",
      "sourceTextCharacters": 5319,
      "sourceTextHash": "edd647eee54c0f939f323064ea1dea20eb789a61d44d0a0826911243dffb202c"
    },
    {
      "key": "42",
      "title": "2.5.3 SDF",
      "chapter": "2",
      "pdfPage": 90,
      "endPdfPage": 93,
      "page": "71",
      "endPage": "74",
      "promptId": "marwedel-topic-42",
      "sourceTextCharacters": 8800,
      "sourceTextHash": "091863107ac87074c1cf70f32dd8aea1120618e22141d2ee68c2eda09a3c4733"
    },
    {
      "key": "43",
      "title": "2.5.4 Simulink",
      "chapter": "2",
      "pdfPage": 93,
      "endPdfPage": 95,
      "page": "74",
      "endPage": "76",
      "promptId": "marwedel-topic-43",
      "sourceTextCharacters": 4224,
      "sourceTextHash": "530f224d4ef2452d958ec3baca6cbd4de5f8a38fd7bb4016a1d4fcc622ac1ee2"
    },
    {
      "key": "44",
      "title": "2.6 Petri Nets",
      "chapter": "2",
      "pdfPage": 95,
      "endPdfPage": 95,
      "page": "76",
      "endPage": "76",
      "promptId": "marwedel-topic-44",
      "sourceTextCharacters": 15,
      "sourceTextHash": "5338c1e4e94b40a4bf07f7da7f64ba01ea36d6ce5aed3bff3e177428295b19c8"
    },
    {
      "key": "45",
      "title": "2.6.1 Introduction",
      "chapter": "2",
      "pdfPage": 95,
      "endPdfPage": 97,
      "page": "76",
      "endPage": "78",
      "promptId": "marwedel-topic-45",
      "sourceTextCharacters": 5207,
      "sourceTextHash": "013eecbc72cc58dd72753ad100bc83ead4a73d73b45597aa3ea95b5974221976"
    },
    {
      "key": "46",
      "title": "2.6.2 Condition/Event Nets",
      "chapter": "2",
      "pdfPage": 97,
      "endPdfPage": 98,
      "page": "78",
      "endPage": "79",
      "promptId": "marwedel-topic-46",
      "sourceTextCharacters": 1576,
      "sourceTextHash": "a6e90beb0cc55101266b36b84c877a0b4f152b2b4d3b00944263233451977ea8"
    },
    {
      "key": "47",
      "title": "2.6.3 Place/Transition Nets",
      "chapter": "2",
      "pdfPage": 98,
      "endPdfPage": 103,
      "page": "79",
      "endPage": "84",
      "promptId": "marwedel-topic-47",
      "sourceTextCharacters": 12935,
      "sourceTextHash": "cbff53fc785c682f70e64a484af66f1767481b1ece28d4603853382dcaeac077"
    },
    {
      "key": "48",
      "title": "2.6.4 Predicate/Transition Nets",
      "chapter": "2",
      "pdfPage": 103,
      "endPdfPage": 104,
      "page": "84",
      "endPage": "85",
      "promptId": "marwedel-topic-48",
      "sourceTextCharacters": 2125,
      "sourceTextHash": "b483aaf57e9146d0669d2921091ff7f6a7fd05ebbe7b9aa8cfeeca3ba60434cf"
    },
    {
      "key": "49",
      "title": "2.6.5 Evaluation",
      "chapter": "2",
      "pdfPage": 104,
      "endPdfPage": 106,
      "page": "85",
      "endPage": "87",
      "promptId": "marwedel-topic-49",
      "sourceTextCharacters": 4439,
      "sourceTextHash": "f6510e879288c3ff7e96ba2f0c5438c0b742ffb7556c2e85d2106754ddef7fbe"
    },
    {
      "key": "50",
      "title": "2.7 Discrete Event-Based Languages",
      "chapter": "2",
      "pdfPage": 106,
      "endPdfPage": 106,
      "page": "87",
      "endPage": "87",
      "promptId": "marwedel-topic-50",
      "sourceTextCharacters": 35,
      "sourceTextHash": "6da527505b8f8d045864294f963d11c5dbd265fcee9125775e0554051eb16037"
    },
    {
      "key": "51",
      "title": "2.7.1 Basic Discrete Event Simulation Cycle",
      "chapter": "2",
      "pdfPage": 106,
      "endPdfPage": 107,
      "page": "87",
      "endPage": "88",
      "promptId": "marwedel-topic-51",
      "sourceTextCharacters": 3489,
      "sourceTextHash": "3ff8f588cd28526ef30680430966b64a5ef17fa8385de3b4094c6845963804f7"
    },
    {
      "key": "52",
      "title": "2.7.2 Multi-Valued Logic",
      "chapter": "2",
      "pdfPage": 107,
      "endPdfPage": 108,
      "page": "88",
      "endPage": "89",
      "promptId": "marwedel-topic-52",
      "sourceTextCharacters": 1927,
      "sourceTextHash": "b3ae39b454b3e95a8665c8a2468cd80f5ef814a9d841811f332622f24a7ab8d1"
    },
    {
      "key": "53",
      "title": "One Signal Strength (Two Logic Values)",
      "chapter": "2",
      "pdfPage": 108,
      "endPdfPage": 108,
      "page": "89",
      "endPage": "89",
      "promptId": "marwedel-topic-53",
      "sourceTextCharacters": 484,
      "sourceTextHash": "033a46d34a42978bbe6faac6016adcc65f8992a6a6b9c0d485f47fadcc146fc7"
    },
    {
      "key": "54",
      "title": "Two Signal Strengths (Three and Four Logic Values)",
      "chapter": "2",
      "pdfPage": 108,
      "endPdfPage": 110,
      "page": "89",
      "endPage": "91",
      "promptId": "marwedel-topic-54",
      "sourceTextCharacters": 4355,
      "sourceTextHash": "019ec62881c8e354953722a1644ef74b39c450bf5d469fc0821ac9f4e6ac371f"
    },
    {
      "key": "55",
      "title": "Three Signal Strengths (Seven Signal Values)",
      "chapter": "2",
      "pdfPage": 110,
      "endPdfPage": 111,
      "page": "91",
      "endPage": "92",
      "promptId": "marwedel-topic-55",
      "sourceTextCharacters": 2090,
      "sourceTextHash": "dbff34a080004b9615a00d4578f20b14b0ad757e2b286d64a7844a2a6ba8dd45"
    },
    {
      "key": "56",
      "title": "Four Signal Strengths (Ten Signal Values)",
      "chapter": "2",
      "pdfPage": 111,
      "endPdfPage": 112,
      "page": "92",
      "endPage": "93",
      "promptId": "marwedel-topic-56",
      "sourceTextCharacters": 2705,
      "sourceTextHash": "f6030a325f77cbf5363ce6b5573838aa2a5303222b1041fa1d461c3355997ccc"
    },
    {
      "key": "57",
      "title": "Five Signal Strengths",
      "chapter": "2",
      "pdfPage": 112,
      "endPdfPage": 112,
      "page": "93",
      "endPage": "93",
      "promptId": "marwedel-topic-57",
      "sourceTextCharacters": 326,
      "sourceTextHash": "3edee81cf5dfb904083a369ca99546fc011b216db7e29598112a44ea9a455174"
    },
    {
      "key": "58",
      "title": "2.7.3 Transaction-Level Modeling (TLM)",
      "chapter": "2",
      "pdfPage": 112,
      "endPdfPage": 114,
      "page": "93",
      "endPage": "95",
      "promptId": "marwedel-topic-58",
      "sourceTextCharacters": 4893,
      "sourceTextHash": "802d5699e42a2c9c17840e0bd47daaa0fc6b424e938e417d8d97eef6b53ec237"
    },
    {
      "key": "59",
      "title": "2.7.4 SpecC",
      "chapter": "2",
      "pdfPage": 114,
      "endPdfPage": 116,
      "page": "95",
      "endPage": "97",
      "promptId": "marwedel-topic-59",
      "sourceTextCharacters": 4392,
      "sourceTextHash": "9d03ad22b99296caf101d639787965d66b125c07c1d1daa5d15a58ee6ee9a5f2"
    },
    {
      "key": "60",
      "title": "2.7.5 SystemC",
      "chapter": "2",
      "pdfPage": 116,
      "endPdfPage": 117,
      "page": "97",
      "endPage": "98",
      "promptId": "marwedel-topic-60",
      "sourceTextCharacters": 3434,
      "sourceTextHash": "5bb03a6288d648e86e23d9f0bdea695d310a76693c192dd8f228e925a532ad6c"
    },
    {
      "key": "61",
      "title": "2.7.6 VHDL",
      "chapter": "2",
      "pdfPage": 117,
      "endPdfPage": 117,
      "page": "98",
      "endPage": "98",
      "promptId": "marwedel-topic-61",
      "sourceTextCharacters": 10,
      "sourceTextHash": "479763e95968e5e75be0e8d97ec474ae1f281d0aec93406d1780d21cf1bf3946"
    },
    {
      "key": "62",
      "title": "Introduction",
      "chapter": "2",
      "pdfPage": 117,
      "endPdfPage": 118,
      "page": "98",
      "endPage": "99",
      "promptId": "marwedel-topic-62",
      "sourceTextCharacters": 2845,
      "sourceTextHash": "ec8d36ca96f50edc412d8fee6f44290cf1630ffc36f86bdc7c713b9304495873"
    },
    {
      "key": "63",
      "title": "Entities and Architectures",
      "chapter": "2",
      "pdfPage": 118,
      "endPdfPage": 120,
      "page": "99",
      "endPage": "101",
      "promptId": "marwedel-topic-63",
      "sourceTextCharacters": 4018,
      "sourceTextHash": "6822c885debe5c94ec7e923d69959ed2d9d4904f3dd3a348b7b697feed301d2b"
    },
    {
      "key": "64",
      "title": "Assignments",
      "chapter": "2",
      "pdfPage": 120,
      "endPdfPage": 122,
      "page": "101",
      "endPage": "103",
      "promptId": "marwedel-topic-64",
      "sourceTextCharacters": 5026,
      "sourceTextHash": "b441b1975eca7cd38482e6af9aa371baeeb5445b39b9912e8f76a9c4af8dac9c"
    },
    {
      "key": "65",
      "title": "VHDL Processes",
      "chapter": "2",
      "pdfPage": 122,
      "endPdfPage": 123,
      "page": "103",
      "endPage": "104",
      "promptId": "marwedel-topic-65",
      "sourceTextCharacters": 1552,
      "sourceTextHash": "f3de88801fa531db193703567d6372c3b3f051f11985152aebf21c6a74921968"
    },
    {
      "key": "66",
      "title": "The VHDL Simulation Cycle",
      "chapter": "2",
      "pdfPage": 123,
      "endPdfPage": 126,
      "page": "104",
      "endPage": "107",
      "promptId": "marwedel-topic-66",
      "sourceTextCharacters": 7661,
      "sourceTextHash": "c9ed15e301d1534b112c0c449d93744f035f2b19798be556d52fbea1ef9cf0f3"
    },
    {
      "key": "67",
      "title": "IEEE 1164",
      "chapter": "2",
      "pdfPage": 126,
      "endPdfPage": 128,
      "page": "107",
      "endPage": "109",
      "promptId": "marwedel-topic-67",
      "sourceTextCharacters": 3098,
      "sourceTextHash": "cc0e8e2fc63465a01bcc22823a476027c543c900007737647ec2ff0edc64bddd"
    },
    {
      "key": "68",
      "title": "2.7.7 Verilog and SystemVerilog",
      "chapter": "2",
      "pdfPage": 128,
      "endPdfPage": 129,
      "page": "109",
      "endPage": "110",
      "promptId": "marwedel-topic-68",
      "sourceTextCharacters": 3149,
      "sourceTextHash": "2050e25d7bae0622c6a203b4506ad3715e9de4048f5cf2c186a8874bb2e99a1a"
    },
    {
      "key": "69",
      "title": "2.8 von Neumann Languages",
      "chapter": "2",
      "pdfPage": 129,
      "endPdfPage": 129,
      "page": "110",
      "endPage": "110",
      "promptId": "marwedel-topic-69",
      "sourceTextCharacters": 1062,
      "sourceTextHash": "f4c8f66ca16990add888345897c2cc1d332468c7327fe7732592e5ed4edd12eb"
    },
    {
      "key": "70",
      "title": "2.8.1 CSP",
      "chapter": "2",
      "pdfPage": 129,
      "endPdfPage": 130,
      "page": "110",
      "endPage": "111",
      "promptId": "marwedel-topic-70",
      "sourceTextCharacters": 1100,
      "sourceTextHash": "9c073d39e6241a6f68a9e45a938ac48fe1a40fdb3fa397be06ccaae0a2597c78"
    },
    {
      "key": "71",
      "title": "2.8.2 Ada",
      "chapter": "2",
      "pdfPage": 130,
      "endPdfPage": 132,
      "page": "111",
      "endPage": "113",
      "promptId": "marwedel-topic-71",
      "sourceTextCharacters": 3420,
      "sourceTextHash": "bb1a9878bad2cb5c68bb9756767d30b43a0f502ea0c0e879b783ad29cdac5f51"
    },
    {
      "key": "72",
      "title": "2.8.3 Communication Libraries",
      "chapter": "2",
      "pdfPage": 132,
      "endPdfPage": 132,
      "page": "113",
      "endPage": "113",
      "promptId": "marwedel-topic-72",
      "sourceTextCharacters": 347,
      "sourceTextHash": "d06a2d8a4a8eb81f3dcbdd1af66c20360f444bdedb5fe161b2897392f0a3eb05"
    },
    {
      "key": "73",
      "title": "MPI",
      "chapter": "2",
      "pdfPage": 132,
      "endPdfPage": 133,
      "page": "113",
      "endPage": "114",
      "promptId": "marwedel-topic-73",
      "sourceTextCharacters": 2395,
      "sourceTextHash": "f9d963f89653c701203ecbfcb3a577622a875c0bed86bd68c79b1c7fe82ebca4"
    },
    {
      "key": "74",
      "title": "OpenMP",
      "chapter": "2",
      "pdfPage": 133,
      "endPdfPage": 133,
      "page": "114",
      "endPage": "114",
      "promptId": "marwedel-topic-74",
      "sourceTextCharacters": 1067,
      "sourceTextHash": "bd8b3e3d9bcd8c2938cf4651df29682f6b313b67ee0031c03549104afb54d01d"
    },
    {
      "key": "75",
      "title": "2.8.4 Additional Languages",
      "chapter": "2",
      "pdfPage": 133,
      "endPdfPage": 134,
      "page": "114",
      "endPage": "115",
      "promptId": "marwedel-topic-75",
      "sourceTextCharacters": 1255,
      "sourceTextHash": "2b70f4afbf333199602d26a55c4a18dd70cd95b688c88fe8ee1ac8f429d4f754"
    },
    {
      "key": "76",
      "title": "2.9 Levels of Hardware Modeling",
      "chapter": "2",
      "pdfPage": 134,
      "endPdfPage": 136,
      "page": "115",
      "endPage": "117",
      "promptId": "marwedel-topic-76",
      "sourceTextCharacters": 7150,
      "sourceTextHash": "2bbb63897a478402e2872f174528df0ab65ce96b6a9dac4540288a0f06b3d5db"
    },
    {
      "key": "77",
      "title": "2.10 Comparison of Models of Computation",
      "chapter": "2",
      "pdfPage": 136,
      "endPdfPage": 136,
      "page": "117",
      "endPage": "117",
      "promptId": "marwedel-topic-77",
      "sourceTextCharacters": 41,
      "sourceTextHash": "04a9efccd5c99364897260026237990a09ea44a0a679ffdb4fd3638e8352a54a"
    },
    {
      "key": "78",
      "title": "2.10.1 Criteria",
      "chapter": "2",
      "pdfPage": 136,
      "endPdfPage": 139,
      "page": "117",
      "endPage": "120",
      "promptId": "marwedel-topic-78",
      "sourceTextCharacters": 6949,
      "sourceTextHash": "dcbb488bcf7aacb39f2ebdb0eca14d56074f52fe323fd4c874409d7fdf7725e0"
    },
    {
      "key": "79",
      "title": "2.10.2 Unified Modeling Language (UML)",
      "chapter": "2",
      "pdfPage": 139,
      "endPdfPage": 141,
      "page": "120",
      "endPage": "122",
      "promptId": "marwedel-topic-79",
      "sourceTextCharacters": 4373,
      "sourceTextHash": "434e95e7c5ff907d085da43ceff4d93662f572f98896932e3a0f69479cd4963e"
    },
    {
      "key": "80",
      "title": "2.10.3 Ptolemy II",
      "chapter": "2",
      "pdfPage": 141,
      "endPdfPage": 142,
      "page": "122",
      "endPage": "123",
      "promptId": "marwedel-topic-80",
      "sourceTextCharacters": 1943,
      "sourceTextHash": "cfe7267e78647bd7791bff843d65c70d730c8858f88f34c9128127e54e5ad1eb"
    },
    {
      "key": "81",
      "title": "2.11 Problems",
      "chapter": "2",
      "pdfPage": 142,
      "endPdfPage": 145,
      "page": "123",
      "endPage": "126",
      "promptId": "marwedel-topic-81",
      "sourceTextCharacters": 7190,
      "sourceTextHash": "88ee67fcd6a19b66bb1e91cacaa9d9ae0c290c2500e6303cdf744437dc074eff"
    },
    {
      "key": "82",
      "title": "3 Embedded System Hardware",
      "chapter": "3",
      "pdfPage": 146,
      "endPdfPage": 146,
      "page": "127",
      "endPage": "127",
      "promptId": "marwedel-topic-82",
      "sourceTextCharacters": 1482,
      "sourceTextHash": "1d9000a5cf61b3ee5bb5ac8cfc8f37a86574b3991ee8efb28e249cb06fdf1c64"
    },
    {
      "key": "83",
      "title": "3.1 Introduction",
      "chapter": "3",
      "pdfPage": 146,
      "endPdfPage": 148,
      "page": "127",
      "endPage": "129",
      "promptId": "marwedel-topic-83",
      "sourceTextCharacters": 3968,
      "sourceTextHash": "c89f99b848355c4d1b14159df554732983192ba27ea5f6c1a2ed4f4a6c7bfc72"
    },
    {
      "key": "84",
      "title": "3.2 Input: Interface Between Physical and Cyber-World",
      "chapter": "3",
      "pdfPage": 148,
      "endPdfPage": 148,
      "page": "129",
      "endPage": "129",
      "promptId": "marwedel-topic-84",
      "sourceTextCharacters": 54,
      "sourceTextHash": "8bbf9351bc32f81845255fce9cee17e694eeb62dc687f946b798bace933dbc18"
    },
    {
      "key": "85",
      "title": "3.2.1 Sensors",
      "chapter": "3",
      "pdfPage": 148,
      "endPdfPage": 150,
      "page": "129",
      "endPage": "131",
      "promptId": "marwedel-topic-85",
      "sourceTextCharacters": 5900,
      "sourceTextHash": "f4a0a79025e81ddbb205a858c2338f8be2c441e1ab2e569a16462733bf0818c9"
    },
    {
      "key": "86",
      "title": "3.2.2 Discretization of Time: Sample-and-Hold Circuits",
      "chapter": "3",
      "pdfPage": 150,
      "endPdfPage": 151,
      "page": "131",
      "endPage": "132",
      "promptId": "marwedel-topic-86",
      "sourceTextCharacters": 2545,
      "sourceTextHash": "7b51bbaae613ea6e3ce84a599c78ef1fb62c64dd71d3f95c7b9b52ee8538911f"
    },
    {
      "key": "87",
      "title": "3.2.3 Fourier Approximation of Signals",
      "chapter": "3",
      "pdfPage": 151,
      "endPdfPage": 154,
      "page": "132",
      "endPage": "135",
      "promptId": "marwedel-topic-87",
      "sourceTextCharacters": 7580,
      "sourceTextHash": "4c171613b67bebc45a00497ba17d0502d59cf53b765c05cbf2e1e7d77554517d"
    },
    {
      "key": "88",
      "title": "3.2.4 Discretization of Values: Analog-to-Digital Converters",
      "chapter": "3",
      "pdfPage": 154,
      "endPdfPage": 155,
      "page": "135",
      "endPage": "136",
      "promptId": "marwedel-topic-88",
      "sourceTextCharacters": 1182,
      "sourceTextHash": "4225308ba68738ecde13ff73793ad63fc018f2a4bd5bce7c9f7a3598d4a370c1"
    },
    {
      "key": "89",
      "title": "Flash ADC",
      "chapter": "3",
      "pdfPage": 155,
      "endPdfPage": 157,
      "page": "136",
      "endPage": "138",
      "promptId": "marwedel-topic-89",
      "sourceTextCharacters": 5143,
      "sourceTextHash": "c15b1e1ae0989c800840a149a8c0a27c08e5c4010a4ddacc7d17ce3946502f3b"
    },
    {
      "key": "90",
      "title": "Successive Approximation",
      "chapter": "3",
      "pdfPage": 157,
      "endPdfPage": 158,
      "page": "138",
      "endPage": "139",
      "promptId": "marwedel-topic-90",
      "sourceTextCharacters": 2486,
      "sourceTextHash": "06d38e8ac49d968ec019ec19c3d7d18da51d6250a6d22133a8fe8e49a9deaeda"
    },
    {
      "key": "91",
      "title": "Pipelined Converters",
      "chapter": "3",
      "pdfPage": 158,
      "endPdfPage": 158,
      "page": "139",
      "endPage": "139",
      "promptId": "marwedel-topic-91",
      "sourceTextCharacters": 827,
      "sourceTextHash": "9f6bd4ff8f75fd2a7e3ae6919cda3dfb01d330c305a2ae7ebe3b7755a9133041"
    },
    {
      "key": "92",
      "title": "Other Converters",
      "chapter": "3",
      "pdfPage": 158,
      "endPdfPage": 159,
      "page": "139",
      "endPage": "140",
      "promptId": "marwedel-topic-92",
      "sourceTextCharacters": 2009,
      "sourceTextHash": "b150a452c6eb3fb5f30282c68c74355594d6e07c99c92048e78e46cb5de3e262"
    },
    {
      "key": "93",
      "title": "Comparison of ADCs",
      "chapter": "3",
      "pdfPage": 159,
      "endPdfPage": 160,
      "page": "140",
      "endPage": "141",
      "promptId": "marwedel-topic-93",
      "sourceTextCharacters": 634,
      "sourceTextHash": "21d4f55ae5b8ac4eb8a3bb962e3857541505cfd35a55b89b9805adb71691cebd"
    },
    {
      "key": "94",
      "title": "Quantization Noise",
      "chapter": "3",
      "pdfPage": 160,
      "endPdfPage": 161,
      "page": "141",
      "endPage": "142",
      "promptId": "marwedel-topic-94",
      "sourceTextCharacters": 2498,
      "sourceTextHash": "7317e1e753e36ed87fa9a2a0a4676b6c8878f42ba79a8db57f3d2a8f284fde67"
    },
    {
      "key": "95",
      "title": "3.3 Processing Units",
      "chapter": "3",
      "pdfPage": 161,
      "endPdfPage": 161,
      "page": "142",
      "endPage": "142",
      "promptId": "marwedel-topic-95",
      "sourceTextCharacters": 343,
      "sourceTextHash": "793f6414ca99fad511497b1d4d0406e216b20f81d0a460fdab650244ef0a596d"
    },
    {
      "key": "96",
      "title": "3.3.1 Application-Specific Integrated Circuits (ASICs)",
      "chapter": "3",
      "pdfPage": 161,
      "endPdfPage": 162,
      "page": "142",
      "endPage": "143",
      "promptId": "marwedel-topic-96",
      "sourceTextCharacters": 1317,
      "sourceTextHash": "d9f36b0cba6adaca03b152f907729c2813dc0732982fe62c85452c606c7ee616"
    },
    {
      "key": "97",
      "title": "3.3.2 Processors",
      "chapter": "3",
      "pdfPage": 162,
      "endPdfPage": 162,
      "page": "143",
      "endPage": "143",
      "promptId": "marwedel-topic-97",
      "sourceTextCharacters": 921,
      "sourceTextHash": "21f06768d4d370cf613964fd4a1aa7e111779363a6d2781aab2c69ffdfaf4fda"
    },
    {
      "key": "98",
      "title": "Energy Efficiency",
      "chapter": "3",
      "pdfPage": 162,
      "endPdfPage": 166,
      "page": "143",
      "endPage": "147",
      "promptId": "marwedel-topic-98",
      "sourceTextCharacters": 10536,
      "sourceTextHash": "9aba39159455bb8fd87867c13edac65f9f5fcaa5dfbafd50f73df7fcccf74fb2"
    },
    {
      "key": "99",
      "title": "Code Size Efficiency",
      "chapter": "3",
      "pdfPage": 166,
      "endPdfPage": 169,
      "page": "147",
      "endPage": "150",
      "promptId": "marwedel-topic-99",
      "sourceTextCharacters": 8470,
      "sourceTextHash": "fd6e45267994cee34efe91a6f97254f1c3929b811bb6ed02bdc8193648105755"
    },
    {
      "key": "100",
      "title": "Execution Time Efficiency Using Digital Signal Processing as an Example",
      "chapter": "3",
      "pdfPage": 169,
      "endPdfPage": 173,
      "page": "150",
      "endPage": "154",
      "promptId": "marwedel-topic-100",
      "sourceTextCharacters": 9669,
      "sourceTextHash": "204b285db78a90b536f6146100ac0b8057f5c239d59d8164d0ec424f1e0bf1d7"
    },
    {
      "key": "101",
      "title": "Multimedia and Short Vector Instruction Sets",
      "chapter": "3",
      "pdfPage": 173,
      "endPdfPage": 174,
      "page": "154",
      "endPage": "155",
      "promptId": "marwedel-topic-101",
      "sourceTextCharacters": 2024,
      "sourceTextHash": "c5bbc7dbbf8077b2c9daf219f003d98e8cc1ac28f1cbe6c1dfa185164a51d97c"
    },
    {
      "key": "102",
      "title": "Very Long Instruction Word (VLIW) Processors",
      "chapter": "3",
      "pdfPage": 174,
      "endPdfPage": 175,
      "page": "155",
      "endPage": "156",
      "promptId": "marwedel-topic-102",
      "sourceTextCharacters": 3583,
      "sourceTextHash": "ae4f377c5a5e718b64b1ac350261eeeffe027b09144596543b5daa3220334044"
    },
    {
      "key": "103",
      "title": "VLIW Pipelines",
      "chapter": "3",
      "pdfPage": 175,
      "endPdfPage": 176,
      "page": "156",
      "endPage": "157",
      "promptId": "marwedel-topic-103",
      "sourceTextCharacters": 2538,
      "sourceTextHash": "78e201209845ff00d3c54d8a872b22759b07eafa1461b136db6f05ddbeeee2af"
    },
    {
      "key": "104",
      "title": "Multi-core Processors",
      "chapter": "3",
      "pdfPage": 176,
      "endPdfPage": 179,
      "page": "157",
      "endPage": "160",
      "promptId": "marwedel-topic-104",
      "sourceTextCharacters": 7136,
      "sourceTextHash": "f23fa79147888de23163b418c0193df9e753ce0b1a67bc724b541f46c7d9d140"
    },
    {
      "key": "105",
      "title": "Graphics Processing Units (GPUs)",
      "chapter": "3",
      "pdfPage": 179,
      "endPdfPage": 181,
      "page": "160",
      "endPage": "162",
      "promptId": "marwedel-topic-105",
      "sourceTextCharacters": 5731,
      "sourceTextHash": "56bee8b1f669f921aa3168fab466cbbb2c73b2bc21018c452da99c8b5eb04ae5"
    },
    {
      "key": "106",
      "title": "Multiprocessor Systems on a Chip (MPSoCs)",
      "chapter": "3",
      "pdfPage": 181,
      "endPdfPage": 184,
      "page": "162",
      "endPage": "165",
      "promptId": "marwedel-topic-106",
      "sourceTextCharacters": 6824,
      "sourceTextHash": "8a59a2c3b0700876f4b32215db8ed2610509c6551e9acc2f84703d5b757e4186"
    },
    {
      "key": "107",
      "title": "3.3.3 Reconfigurable Logic",
      "chapter": "3",
      "pdfPage": 184,
      "endPdfPage": 187,
      "page": "165",
      "endPage": "168",
      "promptId": "marwedel-topic-107",
      "sourceTextCharacters": 8848,
      "sourceTextHash": "fc876874eb85204487c1af337f80904b3de5afbfc8af4799ccb5bfd34d69b517"
    },
    {
      "key": "108",
      "title": "3.4 Memories",
      "chapter": "3",
      "pdfPage": 187,
      "endPdfPage": 187,
      "page": "168",
      "endPage": "168",
      "promptId": "marwedel-topic-108",
      "sourceTextCharacters": 13,
      "sourceTextHash": "c1e11c207a5d69c499c52e94a0b5320332aeb9b42566991de895c3ee9e4c5689"
    },
    {
      "key": "109",
      "title": "3.4.1 Conflicting Goals",
      "chapter": "3",
      "pdfPage": 187,
      "endPdfPage": 188,
      "page": "168",
      "endPage": "169",
      "promptId": "marwedel-topic-109",
      "sourceTextCharacters": 3559,
      "sourceTextHash": "c5f5a7b628207dac2e58363f79e6fa1f216d04098054c164236a87d3f1c679ef"
    },
    {
      "key": "110",
      "title": "3.4.2 Memory Hierarchies",
      "chapter": "3",
      "pdfPage": 188,
      "endPdfPage": 189,
      "page": "169",
      "endPage": "170",
      "promptId": "marwedel-topic-110",
      "sourceTextCharacters": 2908,
      "sourceTextHash": "0d4a0f3e33024cb78918c6fe8abb5e565e3a3d0d9f82ba3cd7d2e2b0999225de"
    },
    {
      "key": "111",
      "title": "3.4.3 Register Files",
      "chapter": "3",
      "pdfPage": 189,
      "endPdfPage": 189,
      "page": "170",
      "endPage": "170",
      "promptId": "marwedel-topic-111",
      "sourceTextCharacters": 392,
      "sourceTextHash": "4f0fde8c1673c00c7d392e2ea577fbd9b35ab5c71876758d71d230de611f2806"
    },
    {
      "key": "112",
      "title": "3.4.4 Caches",
      "chapter": "3",
      "pdfPage": 189,
      "endPdfPage": 191,
      "page": "170",
      "endPage": "172",
      "promptId": "marwedel-topic-112",
      "sourceTextCharacters": 5049,
      "sourceTextHash": "57d805ff8dc30867f92948896b4f550998ddeaad16f11379ef213a921b758d60"
    },
    {
      "key": "113",
      "title": "3.4.5 Scratchpad Memories",
      "chapter": "3",
      "pdfPage": 191,
      "endPdfPage": 192,
      "page": "172",
      "endPage": "173",
      "promptId": "marwedel-topic-113",
      "sourceTextCharacters": 2172,
      "sourceTextHash": "45214ad99533d85991a398850219ad4a9ba95b2c14ae461fc5262416f3ed7240"
    },
    {
      "key": "114",
      "title": "3.5 Communication",
      "chapter": "3",
      "pdfPage": 192,
      "endPdfPage": 192,
      "page": "173",
      "endPage": "173",
      "promptId": "marwedel-topic-114",
      "sourceTextCharacters": 914,
      "sourceTextHash": "6370fb16fb2929e217e3d9083e955294a860fc89c3ffce2a393be1418c290c13"
    },
    {
      "key": "115",
      "title": "3.5.1 Requirements",
      "chapter": "3",
      "pdfPage": 193,
      "endPdfPage": 194,
      "page": "174",
      "endPage": "175",
      "promptId": "marwedel-topic-115",
      "sourceTextCharacters": 3726,
      "sourceTextHash": "27208883df1d349720ae0e1b646b99ed57a68d976c67467319f7f831d21b632a"
    },
    {
      "key": "116",
      "title": "3.5.2 Electrical Robustness",
      "chapter": "3",
      "pdfPage": 194,
      "endPdfPage": 195,
      "page": "175",
      "endPage": "176",
      "promptId": "marwedel-topic-116",
      "sourceTextCharacters": 2957,
      "sourceTextHash": "14c321ae95e1708cdda972334afad6469035d38ed8666baf3c01b29b4af61716"
    },
    {
      "key": "117",
      "title": "3.5.3 Guaranteeing Real-Time Behavior",
      "chapter": "3",
      "pdfPage": 195,
      "endPdfPage": 196,
      "page": "176",
      "endPage": "177",
      "promptId": "marwedel-topic-117",
      "sourceTextCharacters": 3678,
      "sourceTextHash": "dbd6ec63f1091b4b0ee713e9e0efec13246e3a91ab21e476a1b99928e3e80449"
    },
    {
      "key": "118",
      "title": "3.5.4 Examples",
      "chapter": "3",
      "pdfPage": 196,
      "endPdfPage": 198,
      "page": "177",
      "endPage": "179",
      "promptId": "marwedel-topic-118",
      "sourceTextCharacters": 5107,
      "sourceTextHash": "c0ee4b32ec822c5ac819151966b195d9f7627669dc1a902469fbe62ed29dae85"
    },
    {
      "key": "119",
      "title": "3.6 Output: Interface Between Cyber and Physical World",
      "chapter": "3",
      "pdfPage": 198,
      "endPdfPage": 199,
      "page": "179",
      "endPage": "180",
      "promptId": "marwedel-topic-119",
      "sourceTextCharacters": 2479,
      "sourceTextHash": "713b056f4dae2823d542c7d1dd18706164466fa0b9609e6ee735f15aeafae84a"
    },
    {
      "key": "120",
      "title": "3.6.1 Digital-to-Analog Converters",
      "chapter": "3",
      "pdfPage": 199,
      "endPdfPage": 201,
      "page": "180",
      "endPage": "182",
      "promptId": "marwedel-topic-120",
      "sourceTextCharacters": 5122,
      "sourceTextHash": "175bf6255a68eb9cd7ffdb866548379cb3a9fb73e189d4226072c7df0064bcac"
    },
    {
      "key": "121",
      "title": "3.6.2 Sampling Theorem",
      "chapter": "3",
      "pdfPage": 201,
      "endPdfPage": 206,
      "page": "182",
      "endPage": "187",
      "promptId": "marwedel-topic-121",
      "sourceTextCharacters": 10315,
      "sourceTextHash": "fd1d2e7e42d2855422fcefedb216d66a8081a7da43a36f7c618806d6c07a6a05"
    },
    {
      "key": "122",
      "title": "3.6.3 Pulse-Width Modulation",
      "chapter": "3",
      "pdfPage": 206,
      "endPdfPage": 207,
      "page": "187",
      "endPage": "188",
      "promptId": "marwedel-topic-122",
      "sourceTextCharacters": 5518,
      "sourceTextHash": "e83303a5a7b26c57ac9cef260a0f5f048800f7ee1afcd6434c12a2269cb5a211"
    },
    {
      "key": "123",
      "title": "3.6.4 Actuators",
      "chapter": "3",
      "pdfPage": 207,
      "endPdfPage": 208,
      "page": "188",
      "endPage": "189",
      "promptId": "marwedel-topic-123",
      "sourceTextCharacters": 1073,
      "sourceTextHash": "8c567e0e949ea4c6518eba04d6d2e1b6eb3429d71fb3163489b78aa7c703ea30"
    },
    {
      "key": "124",
      "title": "3.7 Electrical Energy",
      "chapter": "3",
      "pdfPage": 208,
      "endPdfPage": 208,
      "page": "189",
      "endPage": "189",
      "promptId": "marwedel-topic-124",
      "sourceTextCharacters": 328,
      "sourceTextHash": "6f12876838d3e510f7ff42c270b079d3ba66e948c8edf96705eb85a7da0bd6f7"
    },
    {
      "key": "125",
      "title": "3.7.1 Energy Sources",
      "chapter": "3",
      "pdfPage": 208,
      "endPdfPage": 209,
      "page": "189",
      "endPage": "190",
      "promptId": "marwedel-topic-125",
      "sourceTextCharacters": 1645,
      "sourceTextHash": "882bb60ad035ed4fb3361c14dcee31022212a23665856287384b7f889c21cad2"
    },
    {
      "key": "126",
      "title": "3.7.2 Energy Storage",
      "chapter": "3",
      "pdfPage": 209,
      "endPdfPage": 212,
      "page": "190",
      "endPage": "193",
      "promptId": "marwedel-topic-126",
      "sourceTextCharacters": 7224,
      "sourceTextHash": "5bc29c9254515a5dfd39b9353501e9bed2ac1b48efa90a9b4381b3356f7af915"
    },
    {
      "key": "127",
      "title": "3.7.3 Energy Efficiency of Hardware Components",
      "chapter": "3",
      "pdfPage": 212,
      "endPdfPage": 213,
      "page": "193",
      "endPage": "194",
      "promptId": "marwedel-topic-127",
      "sourceTextCharacters": 5216,
      "sourceTextHash": "547494f414a290f7afec9faae0d52d8d477232b1896f083e698d03121263b2d8"
    },
    {
      "key": "128",
      "title": "The Case of Mobile Phones",
      "chapter": "3",
      "pdfPage": 214,
      "endPdfPage": 214,
      "page": "195",
      "endPage": "195",
      "promptId": "marwedel-topic-128",
      "sourceTextCharacters": 2709,
      "sourceTextHash": "4c6b1e9a9065138d1315c62374137c781c58d64a3a4bbf5117dff5b008a207ce"
    },
    {
      "key": "129",
      "title": "Sensor Networks",
      "chapter": "3",
      "pdfPage": 214,
      "endPdfPage": 214,
      "page": "195",
      "endPage": "195",
      "promptId": "marwedel-topic-129",
      "sourceTextCharacters": 288,
      "sourceTextHash": "be7b068503f05a3bf88bde196f1f6ef6d5c603d049618cc0d0cab570c8aee060"
    },
    {
      "key": "130",
      "title": "3.8 Secure Hardware",
      "chapter": "3",
      "pdfPage": 215,
      "endPdfPage": 217,
      "page": "196",
      "endPage": "198",
      "promptId": "marwedel-topic-130",
      "sourceTextCharacters": 6446,
      "sourceTextHash": "bb8fd8829a4f5e705fe05d508673ebc0a4c6ba49a6d2718c026653fefb90902b"
    },
    {
      "key": "131",
      "title": "3.9 Problems",
      "chapter": "3",
      "pdfPage": 217,
      "endPdfPage": 220,
      "page": "198",
      "endPage": "201",
      "promptId": "marwedel-topic-131",
      "sourceTextCharacters": 5889,
      "sourceTextHash": "ca326a9fd626491d82e8e6fcddb6edbc6ab961dc902430190f190aa65fe45131"
    },
    {
      "key": "132",
      "title": "4 System Software",
      "chapter": "4",
      "pdfPage": 221,
      "endPdfPage": 222,
      "page": "203",
      "endPage": "204",
      "promptId": "marwedel-topic-132",
      "sourceTextCharacters": 2317,
      "sourceTextHash": "5edaed38cbc18bd8dec720c8456ef512bf79956b90556d2d6a3d370253ea3c98"
    },
    {
      "key": "133",
      "title": "4.1 Embedded Operating Systems",
      "chapter": "4",
      "pdfPage": 222,
      "endPdfPage": 222,
      "page": "204",
      "endPage": "204",
      "promptId": "marwedel-topic-133",
      "sourceTextCharacters": 31,
      "sourceTextHash": "53ee4564c670dea73c8e6dc4672394aa601a84c8106ca43ac4e1844b9444ca66"
    },
    {
      "key": "134",
      "title": "4.1.1 General Requirements",
      "chapter": "4",
      "pdfPage": 222,
      "endPdfPage": 225,
      "page": "204",
      "endPage": "207",
      "promptId": "marwedel-topic-134",
      "sourceTextCharacters": 10745,
      "sourceTextHash": "c8e5bc4da484f046db4398e36e03644823b0e8d8098b887e43c4f368ee1bc7ff"
    },
    {
      "key": "135",
      "title": "4.1.2 Real-Time Operating Systems",
      "chapter": "4",
      "pdfPage": 225,
      "endPdfPage": 229,
      "page": "207",
      "endPage": "211",
      "promptId": "marwedel-topic-135",
      "sourceTextCharacters": 10341,
      "sourceTextHash": "b370aaa46cbe496e0079d633374e48a167a13adb85c1665fbbff193f893dce69"
    },
    {
      "key": "136",
      "title": "4.1.3 Virtual Machines",
      "chapter": "4",
      "pdfPage": 229,
      "endPdfPage": 229,
      "page": "211",
      "endPage": "211",
      "promptId": "marwedel-topic-136",
      "sourceTextCharacters": 1602,
      "sourceTextHash": "38e019a9942086d3af3dba64e5645b11cb7bc58b24a0f0467163a1a89dcaf31b"
    },
    {
      "key": "137",
      "title": "4.2 Resource Access Protocols",
      "chapter": "4",
      "pdfPage": 230,
      "endPdfPage": 230,
      "page": "212",
      "endPage": "212",
      "promptId": "marwedel-topic-137",
      "sourceTextCharacters": 466,
      "sourceTextHash": "4d3ba8392e3fb2b748ff82b2e700282a34473c67763d73af138c1f150a84e9fa"
    },
    {
      "key": "138",
      "title": "4.2.1 Priority Inversion",
      "chapter": "4",
      "pdfPage": 230,
      "endPdfPage": 232,
      "page": "212",
      "endPage": "214",
      "promptId": "marwedel-topic-138",
      "sourceTextCharacters": 5740,
      "sourceTextHash": "a8e57925d0a5bb4e1bb1fd314de58d3d9a4980431e6d56475ab9e2e781950afd"
    },
    {
      "key": "139",
      "title": "4.2.2 Priority Inheritance",
      "chapter": "4",
      "pdfPage": 232,
      "endPdfPage": 234,
      "page": "214",
      "endPage": "216",
      "promptId": "marwedel-topic-139",
      "sourceTextCharacters": 6238,
      "sourceTextHash": "716614b3f25548345bd3ba6eb6371bc470d01b014ace43be01813f083fae93a2"
    },
    {
      "key": "140",
      "title": "4.2.3 Priority Ceiling Protocol",
      "chapter": "4",
      "pdfPage": 234,
      "endPdfPage": 236,
      "page": "216",
      "endPage": "218",
      "promptId": "marwedel-topic-140",
      "sourceTextCharacters": 5868,
      "sourceTextHash": "15fdedfb74b048ae8e656733ad3048a8b05f4a56d0f4e7686a5a59e215d96f55"
    },
    {
      "key": "141",
      "title": "4.2.4 Stack Resource Policy",
      "chapter": "4",
      "pdfPage": 236,
      "endPdfPage": 237,
      "page": "218",
      "endPage": "219",
      "promptId": "marwedel-topic-141",
      "sourceTextCharacters": 4209,
      "sourceTextHash": "b29fd99e210185677d8a062ddde3ed42694db51a9e75b809bf2a8ebb87678cf4"
    },
    {
      "key": "142",
      "title": "4.3 ERIKA",
      "chapter": "4",
      "pdfPage": 237,
      "endPdfPage": 241,
      "page": "219",
      "endPage": "223",
      "promptId": "marwedel-topic-142",
      "sourceTextCharacters": 9627,
      "sourceTextHash": "a702e40bfe4e38a1eb672a5824c2b213db1b714884d451bba575255502a5fbb1"
    },
    {
      "key": "143",
      "title": "4.4 Embedded Linux",
      "chapter": "4",
      "pdfPage": 241,
      "endPdfPage": 241,
      "page": "223",
      "endPage": "223",
      "promptId": "marwedel-topic-143",
      "sourceTextCharacters": 1683,
      "sourceTextHash": "f0d47a389fc2df4f79ccf182210b4d4f9d646a656a7c00e4633a9da2dbe8150f"
    },
    {
      "key": "144",
      "title": "4.4.1 Embedded Linux Structure and Size",
      "chapter": "4",
      "pdfPage": 241,
      "endPdfPage": 243,
      "page": "223",
      "endPage": "225",
      "promptId": "marwedel-topic-144",
      "sourceTextCharacters": 4848,
      "sourceTextHash": "2ef7beca0b0120f5b6be3326c6d8b2a5fdbf3f1fc2bb63152a586b5ceb79d905"
    },
    {
      "key": "145",
      "title": "4.4.2 Real-Time Properties",
      "chapter": "4",
      "pdfPage": 243,
      "endPdfPage": 245,
      "page": "225",
      "endPage": "227",
      "promptId": "marwedel-topic-145",
      "sourceTextCharacters": 4682,
      "sourceTextHash": "a39697f40c06a703908b4d44cb3e9e2164a020a163be5fa6405a33d49fa9ca7d"
    },
    {
      "key": "146",
      "title": "4.4.3 Flash Memory File Systems",
      "chapter": "4",
      "pdfPage": 245,
      "endPdfPage": 246,
      "page": "227",
      "endPage": "228",
      "promptId": "marwedel-topic-146",
      "sourceTextCharacters": 3463,
      "sourceTextHash": "5465ae248f270159adfd14cc5437ceca2e7ba935a052abe8bc4190c28c6095f4"
    },
    {
      "key": "147",
      "title": "4.4.4 Reducing RAM Usage",
      "chapter": "4",
      "pdfPage": 246,
      "endPdfPage": 247,
      "page": "228",
      "endPage": "229",
      "promptId": "marwedel-topic-147",
      "sourceTextCharacters": 2434,
      "sourceTextHash": "11f11fd7c737a17091e1796a0f7fc3494ca110176703c54ea049a48ef8d2a7e0"
    },
    {
      "key": "148",
      "title": "4.4.5 uClinux: Linux for MMU-Less Systems",
      "chapter": "4",
      "pdfPage": 247,
      "endPdfPage": 248,
      "page": "229",
      "endPage": "230",
      "promptId": "marwedel-topic-148",
      "sourceTextCharacters": 3888,
      "sourceTextHash": "71a7d9451e7992a724134686a38963094201cd14799eb1ffe3c7a2f5b82a8ea0"
    },
    {
      "key": "149",
      "title": "4.4.6 Evaluating the Use of Linux in Embedded Systems",
      "chapter": "4",
      "pdfPage": 248,
      "endPdfPage": 249,
      "page": "230",
      "endPage": "231",
      "promptId": "marwedel-topic-149",
      "sourceTextCharacters": 2992,
      "sourceTextHash": "a0744a3b0091ba3db54d31d00354b810f89e87cf535047c021cf27c42b04346b"
    },
    {
      "key": "150",
      "title": "4.5 Hardware Abstraction Layer",
      "chapter": "4",
      "pdfPage": 250,
      "endPdfPage": 250,
      "page": "232",
      "endPage": "232",
      "promptId": "marwedel-topic-150",
      "sourceTextCharacters": 635,
      "sourceTextHash": "8072609635ec7a0731b706d487d58cdabfab50f5f2710d3ed3cc6f33df6e7e7c"
    },
    {
      "key": "151",
      "title": "4.6 Middleware",
      "chapter": "4",
      "pdfPage": 250,
      "endPdfPage": 250,
      "page": "232",
      "endPage": "232",
      "promptId": "marwedel-topic-151",
      "sourceTextCharacters": 852,
      "sourceTextHash": "2526f9cf91a33096cab11f7825ff125c912181560fb1727ebb3e11da725ef9d4"
    },
    {
      "key": "152",
      "title": "4.6.1 OSEK/VDX COM",
      "chapter": "4",
      "pdfPage": 250,
      "endPdfPage": 251,
      "page": "232",
      "endPage": "233",
      "promptId": "marwedel-topic-152",
      "sourceTextCharacters": 1418,
      "sourceTextHash": "70c2adecb57a0ddfe5d20af380158f97e1a9fab35bbe3c971a767df5ed632111"
    },
    {
      "key": "153",
      "title": "4.6.2 CORBA",
      "chapter": "4",
      "pdfPage": 251,
      "endPdfPage": 251,
      "page": "233",
      "endPage": "233",
      "promptId": "marwedel-topic-153",
      "sourceTextCharacters": 2199,
      "sourceTextHash": "93b5a0df771557242ee7b696abec73a4d0839cc5e297833bb5765d7d2e556db8"
    },
    {
      "key": "154",
      "title": "4.6.3 POSIX Threads (Pthreads)",
      "chapter": "4",
      "pdfPage": 252,
      "endPdfPage": 252,
      "page": "234",
      "endPage": "234",
      "promptId": "marwedel-topic-154",
      "sourceTextCharacters": 875,
      "sourceTextHash": "52497e3e893e24dd91e47a89769d43be4d37b77c3713e04ba1b8dd8008cf4c52"
    },
    {
      "key": "155",
      "title": "4.6.4 UPnP and DPWS",
      "chapter": "4",
      "pdfPage": 252,
      "endPdfPage": 252,
      "page": "234",
      "endPage": "234",
      "promptId": "marwedel-topic-155",
      "sourceTextCharacters": 1891,
      "sourceTextHash": "1c6d2d3aa18093fff061ade8e76a70480d32479533f232c6f9222909b41a6504"
    },
    {
      "key": "156",
      "title": "4.7 Real-Time Databases",
      "chapter": "4",
      "pdfPage": 253,
      "endPdfPage": 254,
      "page": "235",
      "endPage": "236",
      "promptId": "marwedel-topic-156",
      "sourceTextCharacters": 3110,
      "sourceTextHash": "bbc341561f190f7ecdd94e6e93275740d5bb26f7276eec50d775b21251afe9da"
    },
    {
      "key": "157",
      "title": "4.8 Problems",
      "chapter": "4",
      "pdfPage": 254,
      "endPdfPage": 255,
      "page": "236",
      "endPage": "237",
      "promptId": "marwedel-topic-157",
      "sourceTextCharacters": 2094,
      "sourceTextHash": "6b334415f89743e17448668228f9a760fa23b5adc3ccea98c8d94c3d80147346"
    },
    {
      "key": "158",
      "title": "5 Evaluation and Validation",
      "chapter": "5",
      "pdfPage": 256,
      "endPdfPage": 256,
      "page": "239",
      "endPage": "239",
      "promptId": "marwedel-topic-158",
      "sourceTextCharacters": 1305,
      "sourceTextHash": "bda413bb45c253b42f8f45456ac6ed669ed423ceb14e842931d972e1ce695385"
    },
    {
      "key": "159",
      "title": "5.1 Introduction",
      "chapter": "5",
      "pdfPage": 256,
      "endPdfPage": 256,
      "page": "239",
      "endPage": "239",
      "promptId": "marwedel-topic-159",
      "sourceTextCharacters": 17,
      "sourceTextHash": "959466e6aaa356204fdc8376917dce0417cbc41e657dc72715bf3ca2ec47e475"
    },
    {
      "key": "160",
      "title": "5.1.1 Scope",
      "chapter": "5",
      "pdfPage": 256,
      "endPdfPage": 257,
      "page": "239",
      "endPage": "240",
      "promptId": "marwedel-topic-160",
      "sourceTextCharacters": 2019,
      "sourceTextHash": "558affd9698efea796eb90c52a53be559d3726a75757441d5f52bda95b6084f9"
    },
    {
      "key": "161",
      "title": "5.1.2 Multi-Objective Optimization",
      "chapter": "5",
      "pdfPage": 257,
      "endPdfPage": 259,
      "page": "240",
      "endPage": "242",
      "promptId": "marwedel-topic-161",
      "sourceTextCharacters": 5197,
      "sourceTextHash": "0b22a2e0739e5ff3fa867bf6c19235cead6e8c8eac75b9c5a8854e7b5ad05a09"
    },
    {
      "key": "162",
      "title": "5.1.3 Relevant Objectives",
      "chapter": "5",
      "pdfPage": 259,
      "endPdfPage": 260,
      "page": "242",
      "endPage": "243",
      "promptId": "marwedel-topic-162",
      "sourceTextCharacters": 2144,
      "sourceTextHash": "b2c22ccf758636ead9ee9ed636ec00ad4f2096ed8a035bbc8ed181eb42ab3ace"
    },
    {
      "key": "163",
      "title": "5.2 Performance Evaluation",
      "chapter": "5",
      "pdfPage": 260,
      "endPdfPage": 260,
      "page": "243",
      "endPage": "243",
      "promptId": "marwedel-topic-163",
      "sourceTextCharacters": 326,
      "sourceTextHash": "37c5a71df37af73c5fb36911b5e87c439a58acfde01726648fd18ad32df09566"
    },
    {
      "key": "164",
      "title": "5.2.1 Early Phases",
      "chapter": "5",
      "pdfPage": 260,
      "endPdfPage": 261,
      "page": "243",
      "endPage": "244",
      "promptId": "marwedel-topic-164",
      "sourceTextCharacters": 1892,
      "sourceTextHash": "fc44bf2f83ccf5f98d220b4a15bd4861bb1b4f36686390829b9104ace75e6fee"
    },
    {
      "key": "165",
      "title": "5.2.2 WCET Estimation",
      "chapter": "5",
      "pdfPage": 261,
      "endPdfPage": 267,
      "page": "244",
      "endPage": "250",
      "promptId": "marwedel-topic-165",
      "sourceTextCharacters": 14868,
      "sourceTextHash": "52e7980e61337ab4ac97b04ff4682233401aa05a3115b4c16527a29ca4e9ca24"
    },
    {
      "key": "166",
      "title": "5.2.3 Real-Time Calculus",
      "chapter": "5",
      "pdfPage": 267,
      "endPdfPage": 271,
      "page": "250",
      "endPage": "254",
      "promptId": "marwedel-topic-166",
      "sourceTextCharacters": 8117,
      "sourceTextHash": "36ff0777e52fecca7287a4ef44916ef221110f67087577c63da7878fe63b3556"
    },
    {
      "key": "167",
      "title": "5.3 Quality Metrics",
      "chapter": "5",
      "pdfPage": 271,
      "endPdfPage": 271,
      "page": "254",
      "endPage": "254",
      "promptId": "marwedel-topic-167",
      "sourceTextCharacters": 20,
      "sourceTextHash": "10014baf9d0e2511e113ce3ea9f57ea9797d7e9f15705b4b5ab65f8ee0d5f253"
    },
    {
      "key": "168",
      "title": "5.3.1 Approximate Computing",
      "chapter": "5",
      "pdfPage": 271,
      "endPdfPage": 271,
      "page": "254",
      "endPage": "254",
      "promptId": "marwedel-topic-168",
      "sourceTextCharacters": 1077,
      "sourceTextHash": "d079cc886b951d68395d8b0751ccabb3519d08887ebb7555e9feda610c82ff3f"
    },
    {
      "key": "169",
      "title": "5.3.2 Simple Criteria of Quality",
      "chapter": "5",
      "pdfPage": 271,
      "endPdfPage": 274,
      "page": "254",
      "endPage": "257",
      "promptId": "marwedel-topic-169",
      "sourceTextCharacters": 6757,
      "sourceTextHash": "29e52bd774b13af06b325ae312c217e71d82ca77c1fdbecf415bc78dbcc356d4"
    },
    {
      "key": "170",
      "title": "5.3.3 Criteria for Data Analysis",
      "chapter": "5",
      "pdfPage": 274,
      "endPdfPage": 276,
      "page": "257",
      "endPage": "259",
      "promptId": "marwedel-topic-170",
      "sourceTextCharacters": 3905,
      "sourceTextHash": "3798bb04e46ec42d6b5be750e87cd6746cdda1daa20b40576655cf5b3ff7d9d6"
    },
    {
      "key": "171",
      "title": "5.4 Energy and Power Models",
      "chapter": "5",
      "pdfPage": 276,
      "endPdfPage": 276,
      "page": "259",
      "endPage": "259",
      "promptId": "marwedel-topic-171",
      "sourceTextCharacters": 28,
      "sourceTextHash": "9ecb0393a71a4889f2c8a49f36ccc7736396c3e7beec634c25277776aca26cd2"
    },
    {
      "key": "172",
      "title": "5.4.1 General Properties",
      "chapter": "5",
      "pdfPage": 276,
      "endPdfPage": 277,
      "page": "259",
      "endPage": "260",
      "promptId": "marwedel-topic-172",
      "sourceTextCharacters": 5246,
      "sourceTextHash": "35d416cc935a00bac2ff3bb95e745dda0d31959b4aa55726b206759e2bd18ffe"
    },
    {
      "key": "173",
      "title": "5.4.2 Energy Model for Memories",
      "chapter": "5",
      "pdfPage": 278,
      "endPdfPage": 278,
      "page": "261",
      "endPage": "261",
      "promptId": "marwedel-topic-173",
      "sourceTextCharacters": 891,
      "sourceTextHash": "3a7454eeff13cc2b39efee934bfe35fc54bb49fce160069b373fc14df4ab51b4"
    },
    {
      "key": "174",
      "title": "5.4.3 Energy Model for Instructions",
      "chapter": "5",
      "pdfPage": 278,
      "endPdfPage": 278,
      "page": "261",
      "endPage": "261",
      "promptId": "marwedel-topic-174",
      "sourceTextCharacters": 1916,
      "sourceTextHash": "2033254b93014aed07c95f3f0376ce5fecd64b2495a8bdc786307743ca19f901"
    },
    {
      "key": "175",
      "title": "5.4.4 Energy Model for Functional Processor Units",
      "chapter": "5",
      "pdfPage": 279,
      "endPdfPage": 279,
      "page": "262",
      "endPage": "262",
      "promptId": "marwedel-topic-175",
      "sourceTextCharacters": 1146,
      "sourceTextHash": "7fa0799cacd68e7cc8a365b681a974913d193e408af371220fc4687f118b4bf6"
    },
    {
      "key": "176",
      "title": "5.4.5 Energy Model for Processor and Memory",
      "chapter": "5",
      "pdfPage": 279,
      "endPdfPage": 281,
      "page": "262",
      "endPage": "264",
      "promptId": "marwedel-topic-176",
      "sourceTextCharacters": 4041,
      "sourceTextHash": "45933e8a3930fd7f2756b12190e57bb2e8055097a3f1b36b1644a36a7bb1aace"
    },
    {
      "key": "177",
      "title": "5.4.6 Energy Model for an Application",
      "chapter": "5",
      "pdfPage": 281,
      "endPdfPage": 282,
      "page": "264",
      "endPage": "265",
      "promptId": "marwedel-topic-177",
      "sourceTextCharacters": 1839,
      "sourceTextHash": "7f6350eb9d0524dcc7fa7566e8063d2d480de405dd9391a13529a546cf1501d9"
    },
    {
      "key": "178",
      "title": "5.4.7 Energy Model for Multiple Applications with Hardware Multithreading",
      "chapter": "5",
      "pdfPage": 282,
      "endPdfPage": 284,
      "page": "265",
      "endPage": "267",
      "promptId": "marwedel-topic-178",
      "sourceTextCharacters": 4252,
      "sourceTextHash": "5368352ff2c9f253494faec953968b501148d9b67f03972df18514a8e170a306"
    },
    {
      "key": "179",
      "title": "5.4.8 Energy Model for an Android Mobile Phone",
      "chapter": "5",
      "pdfPage": 284,
      "endPdfPage": 285,
      "page": "267",
      "endPage": "268",
      "promptId": "marwedel-topic-179",
      "sourceTextCharacters": 2495,
      "sourceTextHash": "0e9390530e064f22b166ffa6f842c0a37b0b6839a35c575cf491fdbee7f07306"
    },
    {
      "key": "180",
      "title": "5.4.9 Worst Case Energy Consumption",
      "chapter": "5",
      "pdfPage": 285,
      "endPdfPage": 286,
      "page": "268",
      "endPage": "269",
      "promptId": "marwedel-topic-180",
      "sourceTextCharacters": 1306,
      "sourceTextHash": "d6ba4c779f5216e0aa1a36b556ae08d9c9417e37ffb20438acdb7833316b1292"
    },
    {
      "key": "181",
      "title": "5.5 Thermal Models",
      "chapter": "5",
      "pdfPage": 286,
      "endPdfPage": 287,
      "page": "269",
      "endPage": "270",
      "promptId": "marwedel-topic-181",
      "sourceTextCharacters": 1695,
      "sourceTextHash": "b2834f029fb33fd2bb3bee3d43315a47057e10a68b844f7c87dd765dd129b3af"
    },
    {
      "key": "182",
      "title": "5.5.1 Steady-State Behavior",
      "chapter": "5",
      "pdfPage": 287,
      "endPdfPage": 289,
      "page": "270",
      "endPage": "272",
      "promptId": "marwedel-topic-182",
      "sourceTextCharacters": 3843,
      "sourceTextHash": "c07c6002e1974ad0a35cfc23352fdfc42300f4490d3d2da10be476d5676b30ff"
    },
    {
      "key": "183",
      "title": "5.5.2 Transient State Behavior",
      "chapter": "5",
      "pdfPage": 289,
      "endPdfPage": 292,
      "page": "272",
      "endPage": "275",
      "promptId": "marwedel-topic-183",
      "sourceTextCharacters": 7784,
      "sourceTextHash": "1a53b08dfaa51551f2d5d69324e796f0f9781ee1a1633dc5fb69aaa32ae0c190"
    },
    {
      "key": "184",
      "title": "5.6 Dependability and Risk Analysis",
      "chapter": "5",
      "pdfPage": 292,
      "endPdfPage": 292,
      "page": "275",
      "endPage": "275",
      "promptId": "marwedel-topic-184",
      "sourceTextCharacters": 101,
      "sourceTextHash": "3ba40051873813c18ec3ef7e327549f4484c342c899d973b8c162ce7fb96f1ca"
    },
    {
      "key": "185",
      "title": "5.6.1 Aspects of Dependability",
      "chapter": "5",
      "pdfPage": 292,
      "endPdfPage": 293,
      "page": "275",
      "endPage": "276",
      "promptId": "marwedel-topic-185",
      "sourceTextCharacters": 1000,
      "sourceTextHash": "eb17a053c78e2dff8a1815b526cceb3ec5e39b31583ca152ec5014b8d005c687"
    },
    {
      "key": "186",
      "title": "5.6.2 Security Analysis",
      "chapter": "5",
      "pdfPage": 293,
      "endPdfPage": 294,
      "page": "276",
      "endPage": "277",
      "promptId": "marwedel-topic-186",
      "sourceTextCharacters": 962,
      "sourceTextHash": "39485cff46e33e89ac6f786a056432c6f1892167d9d7563f20fd6ba5c5b87660"
    },
    {
      "key": "187",
      "title": "5.6.3 Safety Analysis",
      "chapter": "5",
      "pdfPage": 294,
      "endPdfPage": 296,
      "page": "277",
      "endPage": "279",
      "promptId": "marwedel-topic-187",
      "sourceTextCharacters": 6964,
      "sourceTextHash": "8ced95e8fa658a19549d957a4035bc98823db486920eed4019ad84a7bd16f0ac"
    },
    {
      "key": "188",
      "title": "5.6.4 Reliability Analysis",
      "chapter": "5",
      "pdfPage": 296,
      "endPdfPage": 303,
      "page": "279",
      "endPage": "286",
      "promptId": "marwedel-topic-188",
      "sourceTextCharacters": 13859,
      "sourceTextHash": "56c61ab445dd1dd5ac1eddb2a690d23ed21b46a31161f7cbf4db942ea2eb2337"
    },
    {
      "key": "189",
      "title": "5.6.5 Fault Tree Analysis, Failure Mode, and Effect Analysis",
      "chapter": "5",
      "pdfPage": 303,
      "endPdfPage": 304,
      "page": "286",
      "endPage": "287",
      "promptId": "marwedel-topic-189",
      "sourceTextCharacters": 4013,
      "sourceTextHash": "f6edbddeb914d402b4cd288ce580f92f84fbbe577426d980fa48885383db603f"
    },
    {
      "key": "190",
      "title": "5.7 Simulation",
      "chapter": "5",
      "pdfPage": 304,
      "endPdfPage": 305,
      "page": "287",
      "endPage": "288",
      "promptId": "marwedel-topic-190",
      "sourceTextCharacters": 3289,
      "sourceTextHash": "eb4eac01c3c4fd116d114fea0c40a83c7c6bf7593a17a75db1fd3395d53ec101"
    },
    {
      "key": "191",
      "title": "5.8 Rapid Prototyping and Emulation",
      "chapter": "5",
      "pdfPage": 305,
      "endPdfPage": 307,
      "page": "288",
      "endPage": "290",
      "promptId": "marwedel-topic-191",
      "sourceTextCharacters": 3651,
      "sourceTextHash": "a1626263c912b1ecb5ab804314f01f61189ce6c2fce1eed6cc5ebdc937c9aedd"
    },
    {
      "key": "192",
      "title": "5.9 Formal Verification",
      "chapter": "5",
      "pdfPage": 307,
      "endPdfPage": 308,
      "page": "290",
      "endPage": "291",
      "promptId": "marwedel-topic-192",
      "sourceTextCharacters": 3938,
      "sourceTextHash": "79921831dec5f125773c16079f4afd54a97713c799ddf6557cd1c2306ded33ff"
    },
    {
      "key": "193",
      "title": "5.10 Problems",
      "chapter": "5",
      "pdfPage": 308,
      "endPdfPage": 310,
      "page": "291",
      "endPage": "293",
      "promptId": "marwedel-topic-193",
      "sourceTextCharacters": 5035,
      "sourceTextHash": "bb6373fbbeabd182b080fcd86279baf9462d56f244412ee5bf68132c115bfa2a"
    },
    {
      "key": "194",
      "title": "6 Application Mapping",
      "chapter": "6",
      "pdfPage": 311,
      "endPdfPage": 311,
      "page": "295",
      "endPage": "295",
      "promptId": "marwedel-topic-194",
      "sourceTextCharacters": 1204,
      "sourceTextHash": "fe18266d9efed10dbf3e374ad181062cf19e7b0b288b3aba02740d95ba15ce8b"
    },
    {
      "key": "195",
      "title": "6.1 Definition of Scheduling Problems",
      "chapter": "6",
      "pdfPage": 311,
      "endPdfPage": 311,
      "page": "295",
      "endPage": "295",
      "promptId": "marwedel-topic-195",
      "sourceTextCharacters": 37,
      "sourceTextHash": "e19801549bdac876fc9054470d2c82a97d09ac160c9f71301a7b77853b9522c2"
    },
    {
      "key": "196",
      "title": "6.1.1 Elaboration on the Design Problem",
      "chapter": "6",
      "pdfPage": 311,
      "endPdfPage": 314,
      "page": "295",
      "endPage": "298",
      "promptId": "marwedel-topic-196",
      "sourceTextCharacters": 7396,
      "sourceTextHash": "0f661ba63931ffdc76515a3d5a8d4f7e23799f47c6be281212c3877edc2a7dda"
    },
    {
      "key": "197",
      "title": "6.1.2 Types of Scheduling Problems",
      "chapter": "6",
      "pdfPage": 314,
      "endPdfPage": 315,
      "page": "298",
      "endPage": "299",
      "promptId": "marwedel-topic-197",
      "sourceTextCharacters": 1316,
      "sourceTextHash": "484034ff8d2322200061a8313cbb1bc9f02a99ba7cdc4ef79d0215bc5ef54329"
    },
    {
      "key": "198",
      "title": "The α Field",
      "chapter": "6",
      "pdfPage": 315,
      "endPdfPage": 315,
      "page": "299",
      "endPage": "299",
      "promptId": "marwedel-topic-198",
      "sourceTextCharacters": 1612,
      "sourceTextHash": "629bb7b63f3d4aeb2e60086bcb3c2690835d026f59619bec6fad769f5d805f75"
    },
    {
      "key": "199",
      "title": "The β Field",
      "chapter": "6",
      "pdfPage": 315,
      "endPdfPage": 317,
      "page": "299",
      "endPage": "301",
      "promptId": "marwedel-topic-199",
      "sourceTextCharacters": 5084,
      "sourceTextHash": "bc6bf564320f36e17c1374cf0677c8f38fabd5b95cb53198c22e8f0bd1b9422f"
    },
    {
      "key": "200",
      "title": "The γ Field",
      "chapter": "6",
      "pdfPage": 317,
      "endPdfPage": 320,
      "page": "301",
      "endPage": "304",
      "promptId": "marwedel-topic-200",
      "sourceTextCharacters": 11613,
      "sourceTextHash": "11fdcd7964455d86229677dfa5e9755f8d9534b062b5b07dfe68d2a070da2b5b"
    },
    {
      "key": "201",
      "title": "6.2 Scheduling for Uniprocessors",
      "chapter": "6",
      "pdfPage": 320,
      "endPdfPage": 320,
      "page": "304",
      "endPage": "304",
      "promptId": "marwedel-topic-201",
      "sourceTextCharacters": 293,
      "sourceTextHash": "e74c4df3852868b1512fc554b75ffcd8c1dce57a698320e5169bcfbbae455489"
    },
    {
      "key": "202",
      "title": "6.2.1 Scheduling for Independent Jobs",
      "chapter": "6",
      "pdfPage": 320,
      "endPdfPage": 320,
      "page": "304",
      "endPage": "304",
      "promptId": "marwedel-topic-202",
      "sourceTextCharacters": 173,
      "sourceTextHash": "12fd3a254ad6a48a072e702270c1deae2f2ab8d8691776813591fc3d4b5cdfc2"
    },
    {
      "key": "203",
      "title": "Earliest Due Date (EDD) Algorithm",
      "chapter": "6",
      "pdfPage": 320,
      "endPdfPage": 321,
      "page": "304",
      "endPage": "305",
      "promptId": "marwedel-topic-203",
      "sourceTextCharacters": 2456,
      "sourceTextHash": "43c81fb2b9144305b2a27ce3e1ef7927112934c9c0b738ae8f4ed2ca39f4a4a1"
    },
    {
      "key": "204",
      "title": "Earliest Deadline First (EDF) Algorithm",
      "chapter": "6",
      "pdfPage": 322,
      "endPdfPage": 323,
      "page": "306",
      "endPage": "307",
      "promptId": "marwedel-topic-204",
      "sourceTextCharacters": 3810,
      "sourceTextHash": "3bbc0119f4e80e18c52bbda287340f092780696b81da2e6afd2ea98828ecaa9f"
    },
    {
      "key": "205",
      "title": "Least Laxity (LL) Algorithm",
      "chapter": "6",
      "pdfPage": 323,
      "endPdfPage": 324,
      "page": "307",
      "endPage": "308",
      "promptId": "marwedel-topic-205",
      "sourceTextCharacters": 1625,
      "sourceTextHash": "45380143ae8beaa2ba75157318f0923ae019a47124415898a79000f449460df4"
    },
    {
      "key": "206",
      "title": "Scheduling Without Preemption",
      "chapter": "6",
      "pdfPage": 324,
      "endPdfPage": 325,
      "page": "308",
      "endPage": "309",
      "promptId": "marwedel-topic-206",
      "sourceTextCharacters": 2146,
      "sourceTextHash": "f43b56e118fc058f0627aa528ba58341f041af7e36cef99c6e24f6c37d407fe8"
    },
    {
      "key": "207",
      "title": "6.2.2 Scheduling with Precedence Constraints",
      "chapter": "6",
      "pdfPage": 325,
      "endPdfPage": 325,
      "page": "309",
      "endPage": "309",
      "promptId": "marwedel-topic-207",
      "sourceTextCharacters": 167,
      "sourceTextHash": "b018f7546ceb039050203aad5332051b44cfad868fb7280e34cd95a1de75d136"
    },
    {
      "key": "208",
      "title": "Task Graphs",
      "chapter": "6",
      "pdfPage": 325,
      "endPdfPage": 326,
      "page": "309",
      "endPage": "310",
      "promptId": "marwedel-topic-208",
      "sourceTextCharacters": 2048,
      "sourceTextHash": "840397ade0c7384ca5de7f0262a599ddc73f84c266e40bf31356ebce0edb7ab2"
    },
    {
      "key": "209",
      "title": "Latest Deadline First (LDF) Algorithm",
      "chapter": "6",
      "pdfPage": 327,
      "endPdfPage": 327,
      "page": "311",
      "endPage": "311",
      "promptId": "marwedel-topic-209",
      "sourceTextCharacters": 1539,
      "sourceTextHash": "38559ab5ef21dce66ed8cbc8bcdf591af5e676b90f8025af81aa0855b9a74bfd"
    },
    {
      "key": "210",
      "title": "6.2.3 Periodic Scheduling Without Precedence Constraints",
      "chapter": "6",
      "pdfPage": 327,
      "endPdfPage": 327,
      "page": "311",
      "endPage": "311",
      "promptId": "marwedel-topic-210",
      "sourceTextCharacters": 370,
      "sourceTextHash": "bab65fdf80d33495cf69ae7158a7e2a429c806b115e9fbe47fea96e94a45d57c"
    },
    {
      "key": "211",
      "title": "Notation",
      "chapter": "6",
      "pdfPage": 327,
      "endPdfPage": 328,
      "page": "311",
      "endPage": "312",
      "promptId": "marwedel-topic-211",
      "sourceTextCharacters": 1399,
      "sourceTextHash": "6ec1a679eb4cc64b5214685d9cd1f3df1f611343fb83258e56175e159c1bf66d"
    },
    {
      "key": "212",
      "title": "Rate Monotonic Scheduling",
      "chapter": "6",
      "pdfPage": 328,
      "endPdfPage": 332,
      "page": "312",
      "endPage": "316",
      "promptId": "marwedel-topic-212",
      "sourceTextCharacters": 8512,
      "sourceTextHash": "7f70501fcd97f3ae9cf5863fd82d41c00b05602f8953c273edded2644a084d37"
    },
    {
      "key": "213",
      "title": "Earliest Deadline First Scheduling",
      "chapter": "6",
      "pdfPage": 332,
      "endPdfPage": 332,
      "page": "316",
      "endPage": "316",
      "promptId": "marwedel-topic-213",
      "sourceTextCharacters": 822,
      "sourceTextHash": "c355507e216a17fd899367d59be480e90aac8c648655480e8fe420b738cd1a8e"
    },
    {
      "key": "214",
      "title": "Explicit-Deadline Tasks",
      "chapter": "6",
      "pdfPage": 332,
      "endPdfPage": 334,
      "page": "316",
      "endPage": "318",
      "promptId": "marwedel-topic-214",
      "sourceTextCharacters": 3472,
      "sourceTextHash": "bec3e406aeb17b7176acd4bef1fece02a3fcd7886c105f5208c31e01ce283247"
    },
    {
      "key": "215",
      "title": "Deadline Monotonic Scheduling",
      "chapter": "6",
      "pdfPage": 334,
      "endPdfPage": 334,
      "page": "318",
      "endPage": "318",
      "promptId": "marwedel-topic-215",
      "sourceTextCharacters": 623,
      "sourceTextHash": "09304eceaeb5691bc4f9ce52bd52b19248b423a5df301e16f125369a11a82699"
    },
    {
      "key": "216",
      "title": "6.2.4 Periodic Scheduling with Precedence Constraints",
      "chapter": "6",
      "pdfPage": 334,
      "endPdfPage": 334,
      "page": "318",
      "endPage": "318",
      "promptId": "marwedel-topic-216",
      "sourceTextCharacters": 722,
      "sourceTextHash": "71c6a7644c50db272f952c16c3b2ad2e7f31c4b0449ba5b12df4db231efa548b"
    },
    {
      "key": "217",
      "title": "6.2.5 Sporadic Events",
      "chapter": "6",
      "pdfPage": 334,
      "endPdfPage": 335,
      "page": "318",
      "endPage": "319",
      "promptId": "marwedel-topic-217",
      "sourceTextCharacters": 521,
      "sourceTextHash": "34391b2430036d564e995edab772090b22fce4a9c48d84ca03409f055cf62987"
    },
    {
      "key": "218",
      "title": "6.3 Scheduling for Independent Jobs on Identical Multiprocessors",
      "chapter": "6",
      "pdfPage": 335,
      "endPdfPage": 335,
      "page": "319",
      "endPage": "319",
      "promptId": "marwedel-topic-218",
      "sourceTextCharacters": 1264,
      "sourceTextHash": "b474f4ff4d1099694959ff65bf9a62591f012113a8df4103e0f83eecb5f4cca1"
    },
    {
      "key": "219",
      "title": "6.3.1 Partitioned Scheduling",
      "chapter": "6",
      "pdfPage": 335,
      "endPdfPage": 339,
      "page": "319",
      "endPage": "323",
      "promptId": "marwedel-topic-219",
      "sourceTextCharacters": 8933,
      "sourceTextHash": "952880bc6de664c2e0547919a8038dd407d3df26a0d99ed7fd9c0ee2d3301c9e"
    },
    {
      "key": "220",
      "title": "6.3.2 Global Dynamic-Priority Scheduling",
      "chapter": "6",
      "pdfPage": 339,
      "endPdfPage": 339,
      "page": "323",
      "endPage": "323",
      "promptId": "marwedel-topic-220",
      "sourceTextCharacters": 695,
      "sourceTextHash": "7dc4b27fa077a66fcf7728d0eb2ef6e2fbe84dc8060db0943412b50d27c71562"
    },
    {
      "key": "221",
      "title": "Proportional Fair (Pfair) Scheduling",
      "chapter": "6",
      "pdfPage": 339,
      "endPdfPage": 341,
      "page": "323",
      "endPage": "325",
      "promptId": "marwedel-topic-221",
      "sourceTextCharacters": 4089,
      "sourceTextHash": "9854a02b9e63a5af575d73d0345b28eb5d58b0de624e806f3f35df71533dccba"
    },
    {
      "key": "222",
      "title": "6.3.3 Global Fixed-Job-Priority Scheduling",
      "chapter": "6",
      "pdfPage": 341,
      "endPdfPage": 341,
      "page": "325",
      "endPage": "325",
      "promptId": "marwedel-topic-222",
      "sourceTextCharacters": 43,
      "sourceTextHash": "39ec57d9113d37de44c44f5a50739348a92e923e10c0df11adaf3337540f274a"
    },
    {
      "key": "223",
      "title": "G-EDF Scheduling",
      "chapter": "6",
      "pdfPage": 341,
      "endPdfPage": 343,
      "page": "325",
      "endPage": "327",
      "promptId": "marwedel-topic-223",
      "sourceTextCharacters": 4413,
      "sourceTextHash": "42e42765e27aefc81ec91114fa9d6376c2fd31eee7d162467639a4792990fcf1"
    },
    {
      "key": "224",
      "title": "EDZL Scheduling",
      "chapter": "6",
      "pdfPage": 343,
      "endPdfPage": 344,
      "page": "327",
      "endPage": "328",
      "promptId": "marwedel-topic-224",
      "sourceTextCharacters": 1676,
      "sourceTextHash": "cbed15ea6448b2460f8739ed4310e24b8cd17ea2afc226d9e04c34acb1666a55"
    },
    {
      "key": "225",
      "title": "6.3.4 Global Fixed-Task-Priority Scheduling",
      "chapter": "6",
      "pdfPage": 344,
      "endPdfPage": 344,
      "page": "328",
      "endPage": "328",
      "promptId": "marwedel-topic-225",
      "sourceTextCharacters": 44,
      "sourceTextHash": "75f7254360f26cc8179c0b40e1960f8c3a7b84ac2f613c32132ee5e64f223d30"
    },
    {
      "key": "226",
      "title": "Global Rate Monotonic Scheduling",
      "chapter": "6",
      "pdfPage": 344,
      "endPdfPage": 345,
      "page": "328",
      "endPage": "329",
      "promptId": "marwedel-topic-226",
      "sourceTextCharacters": 2518,
      "sourceTextHash": "fb1b5c9b2ef4defd0a17b1749c49fb08954594bb06853fa661b609286beaf6d8"
    },
    {
      "key": "227",
      "title": "RMZL Scheduling",
      "chapter": "6",
      "pdfPage": 346,
      "endPdfPage": 346,
      "page": "330",
      "endPage": "330",
      "promptId": "marwedel-topic-227",
      "sourceTextCharacters": 480,
      "sourceTextHash": "c31d3dc147fab08f49894854c25d9b701cb626b7339394d338f1a9af76dd1f9d"
    },
    {
      "key": "228",
      "title": "Partitioned Scheduling for Explicit Deadlines",
      "chapter": "6",
      "pdfPage": 346,
      "endPdfPage": 346,
      "page": "330",
      "endPage": "330",
      "promptId": "marwedel-topic-228",
      "sourceTextCharacters": 411,
      "sourceTextHash": "baf1c95779801ad890f677cb0836270ce766ce96df7af969009e677348c199b9"
    },
    {
      "key": "229",
      "title": "6.4 Dependent Jobs on Homogeneous Multiprocessors",
      "chapter": "6",
      "pdfPage": 346,
      "endPdfPage": 346,
      "page": "330",
      "endPage": "330",
      "promptId": "marwedel-topic-229",
      "sourceTextCharacters": 722,
      "sourceTextHash": "4b84acacba7682336a38ca29118b882636f4078033b2c60ac7b646dfdc6e81d3"
    },
    {
      "key": "230",
      "title": "6.4.1 As-Soon-as-Possible Scheduling",
      "chapter": "6",
      "pdfPage": 346,
      "endPdfPage": 348,
      "page": "330",
      "endPage": "332",
      "promptId": "marwedel-topic-230",
      "sourceTextCharacters": 2285,
      "sourceTextHash": "e816468196d99c64b34b4010beaf014b9b0d937eb4a0d40181b7ebcf9ca961f8"
    },
    {
      "key": "231",
      "title": "6.4.2 As-Late-as-Possible Scheduling",
      "chapter": "6",
      "pdfPage": 348,
      "endPdfPage": 349,
      "page": "332",
      "endPage": "333",
      "promptId": "marwedel-topic-231",
      "sourceTextCharacters": 2082,
      "sourceTextHash": "e533e788877ea1317a1720de201fc713497fdb4d3cd64804b262066d9b494d31"
    },
    {
      "key": "232",
      "title": "6.4.3 List Scheduling",
      "chapter": "6",
      "pdfPage": 349,
      "endPdfPage": 351,
      "page": "333",
      "endPage": "335",
      "promptId": "marwedel-topic-232",
      "sourceTextCharacters": 3820,
      "sourceTextHash": "856ad6f07a5d43116c33fc7aad6bcc591b75bdbbd0d513b6a786a7e40c70c64e"
    },
    {
      "key": "233",
      "title": "6.4.4 Optimal Scheduling with Integer Linear Programming",
      "chapter": "6",
      "pdfPage": 351,
      "endPdfPage": 352,
      "page": "335",
      "endPage": "336",
      "promptId": "marwedel-topic-233",
      "sourceTextCharacters": 3044,
      "sourceTextHash": "09acce37624fdc74632729b035fd95ad736f2a60a30eb79f7c39164e36b31bc0"
    },
    {
      "key": "234",
      "title": "6.5 Dependent Jobs on Heterogeneous Multiprocessors",
      "chapter": "6",
      "pdfPage": 352,
      "endPdfPage": 352,
      "page": "336",
      "endPage": "336",
      "promptId": "marwedel-topic-234",
      "sourceTextCharacters": 52,
      "sourceTextHash": "423239fde8f0f17db3c0a9232f65eee93db2d239e077fc7768c1825199c4233e"
    },
    {
      "key": "235",
      "title": "6.5.1 Problem Description",
      "chapter": "6",
      "pdfPage": 352,
      "endPdfPage": 352,
      "page": "336",
      "endPage": "336",
      "promptId": "marwedel-topic-235",
      "sourceTextCharacters": 1051,
      "sourceTextHash": "08485b8a657d10a5543af29bb6714aac7caa1dec764243b67f8a86ba462b44e4"
    },
    {
      "key": "236",
      "title": "6.5.2 Static Scheduling with Local Heuristics",
      "chapter": "6",
      "pdfPage": 353,
      "endPdfPage": 356,
      "page": "337",
      "endPage": "340",
      "promptId": "marwedel-topic-236",
      "sourceTextCharacters": 7614,
      "sourceTextHash": "8142a349859b0248d5a7d0874bb83641173c1d6bfbbb55ae54af3c9c98717c83"
    },
    {
      "key": "237",
      "title": "6.5.3 Static Scheduling with Integer Linear Programming",
      "chapter": "6",
      "pdfPage": 356,
      "endPdfPage": 356,
      "page": "340",
      "endPage": "340",
      "promptId": "marwedel-topic-237",
      "sourceTextCharacters": 751,
      "sourceTextHash": "7a37c4a4f0339e4b6699147e7a799027292660fc4161044762d707da4193f82d"
    },
    {
      "key": "238",
      "title": "6.5.4 Static Scheduling with Evolutionary Algorithms",
      "chapter": "6",
      "pdfPage": 357,
      "endPdfPage": 361,
      "page": "341",
      "endPage": "345",
      "promptId": "marwedel-topic-238",
      "sourceTextCharacters": 8167,
      "sourceTextHash": "423b9a4479c650435f67ef67986bdbdbe9014b8426c9a7226246f087de961ed0"
    },
    {
      "key": "239",
      "title": "6.5.5 Dynamic and Hybrid Scheduling",
      "chapter": "6",
      "pdfPage": 361,
      "endPdfPage": 362,
      "page": "345",
      "endPage": "346",
      "promptId": "marwedel-topic-239",
      "sourceTextCharacters": 2720,
      "sourceTextHash": "df0a2bef351b1f4620960e08771670fe94e14140266915d753e29b2ae3a23db6"
    },
    {
      "key": "240",
      "title": "6.6 Problems",
      "chapter": "6",
      "pdfPage": 362,
      "endPdfPage": 364,
      "page": "346",
      "endPage": "348",
      "promptId": "marwedel-topic-240",
      "sourceTextCharacters": 1998,
      "sourceTextHash": "d1191cba2501b7cd22c5ca1d3502d5fe5090295c9450aa1575b38d175f53a12b"
    },
    {
      "key": "241",
      "title": "7 Optimization",
      "chapter": "7",
      "pdfPage": 365,
      "endPdfPage": 365,
      "page": "349",
      "endPage": "349",
      "promptId": "marwedel-topic-241",
      "sourceTextCharacters": 1358,
      "sourceTextHash": "c415b7239b9dabcdb4b3aef43ed5d75f70fed28947e44b1171b82f550d6afd3d"
    },
    {
      "key": "242",
      "title": "7.1 High-Level Optimizations",
      "chapter": "7",
      "pdfPage": 365,
      "endPdfPage": 366,
      "page": "349",
      "endPage": "350",
      "promptId": "marwedel-topic-242",
      "sourceTextCharacters": 1601,
      "sourceTextHash": "346a85934e1779f33709ec8a53009cf814ebbb94fdbf244d127aeaa925cdc156"
    },
    {
      "key": "243",
      "title": "7.1.1 Simple Loop Transformations",
      "chapter": "7",
      "pdfPage": 366,
      "endPdfPage": 368,
      "page": "350",
      "endPage": "352",
      "promptId": "marwedel-topic-243",
      "sourceTextCharacters": 4005,
      "sourceTextHash": "f12e02d6e7e65798d13d9a645efd518a999f902e2921e01135de80a61f261c2b"
    },
    {
      "key": "244",
      "title": "7.1.2 Loop Tiling/Blocking",
      "chapter": "7",
      "pdfPage": 368,
      "endPdfPage": 370,
      "page": "352",
      "endPage": "354",
      "promptId": "marwedel-topic-244",
      "sourceTextCharacters": 3443,
      "sourceTextHash": "4ca19e7db4a98221884995975fd18c59aea68a564c1370065a3e43c74fc9f8c2"
    },
    {
      "key": "245",
      "title": "7.1.3 Loop Splitting",
      "chapter": "7",
      "pdfPage": 370,
      "endPdfPage": 371,
      "page": "354",
      "endPage": "355",
      "promptId": "marwedel-topic-245",
      "sourceTextCharacters": 3739,
      "sourceTextHash": "3326adbfea65b64417d771519a8b2f12f16801d611db19ccf59e50687e24cc36"
    },
    {
      "key": "246",
      "title": "7.1.4 Array Folding",
      "chapter": "7",
      "pdfPage": 371,
      "endPdfPage": 373,
      "page": "355",
      "endPage": "357",
      "promptId": "marwedel-topic-246",
      "sourceTextCharacters": 3232,
      "sourceTextHash": "5739b5cd175dc392a328cddb1ae1f9e9f2a922d7cd2f9cbea3a46c9fc39f42e0"
    },
    {
      "key": "247",
      "title": "7.1.5 Floating-Point to Fixed-Point Conversion",
      "chapter": "7",
      "pdfPage": 373,
      "endPdfPage": 373,
      "page": "357",
      "endPage": "357",
      "promptId": "marwedel-topic-247",
      "sourceTextCharacters": 1785,
      "sourceTextHash": "d1c810f7d71dd4f908e49ced2f4a240f9733fd1ececc36843c8810933a90f2cc"
    },
    {
      "key": "248",
      "title": "7.2 Task-Level Concurrency Management",
      "chapter": "7",
      "pdfPage": 373,
      "endPdfPage": 377,
      "page": "357",
      "endPage": "361",
      "promptId": "marwedel-topic-248",
      "sourceTextCharacters": 6975,
      "sourceTextHash": "1c16625715a83aa8dfd5b9154e3db74d329fa0ad64f6f425936ab874ecedbb2a"
    },
    {
      "key": "249",
      "title": "7.3 Compilers for Embedded Systems",
      "chapter": "7",
      "pdfPage": 377,
      "endPdfPage": 377,
      "page": "361",
      "endPage": "361",
      "promptId": "marwedel-topic-249",
      "sourceTextCharacters": 35,
      "sourceTextHash": "9e8c06dc40d01f772cecc11ebdb517e802a87aeec18369f559ad8409f248dd2a"
    },
    {
      "key": "250",
      "title": "7.3.1 Introduction",
      "chapter": "7",
      "pdfPage": 377,
      "endPdfPage": 378,
      "page": "361",
      "endPage": "362",
      "promptId": "marwedel-topic-250",
      "sourceTextCharacters": 2215,
      "sourceTextHash": "e689711ed08178704c3bf8d07ef36c28afea12a0d999b9e86542e9a87061a8ec"
    },
    {
      "key": "251",
      "title": "7.3.2 Energy-Aware Compilation",
      "chapter": "7",
      "pdfPage": 378,
      "endPdfPage": 379,
      "page": "362",
      "endPage": "363",
      "promptId": "marwedel-topic-251",
      "sourceTextCharacters": 3016,
      "sourceTextHash": "02f39ebe1e69122f12c44a0e405a57c489de983a239174e7069d791fd7301d15"
    },
    {
      "key": "252",
      "title": "7.3.3 Memory-Architecture Aware Compilation",
      "chapter": "7",
      "pdfPage": 379,
      "endPdfPage": 379,
      "page": "363",
      "endPage": "363",
      "promptId": "marwedel-topic-252",
      "sourceTextCharacters": 44,
      "sourceTextHash": "8a3e0f2ae9fcec729c636aec396b52aa13ce3cd8685197d0d8dd8a91dce7d3ff"
    },
    {
      "key": "253",
      "title": "Compilation Techniques for Scratchpads",
      "chapter": "7",
      "pdfPage": 379,
      "endPdfPage": 380,
      "page": "363",
      "endPage": "364",
      "promptId": "marwedel-topic-253",
      "sourceTextCharacters": 1731,
      "sourceTextHash": "0ec1226d0c2b2d1045f9e9dad1fbe0a9857f546f626bf07d832fcfcf03f180cf"
    },
    {
      "key": "254",
      "title": "Non-overlaying Allocation",
      "chapter": "7",
      "pdfPage": 380,
      "endPdfPage": 384,
      "page": "364",
      "endPage": "368",
      "promptId": "marwedel-topic-254",
      "sourceTextCharacters": 9565,
      "sourceTextHash": "87798f524138a3c810487809a9d2f9fb5ea13380778ca0e664eb258783259dec"
    },
    {
      "key": "255",
      "title": "Overlaying Allocation",
      "chapter": "7",
      "pdfPage": 384,
      "endPdfPage": 386,
      "page": "368",
      "endPage": "370",
      "promptId": "marwedel-topic-255",
      "sourceTextCharacters": 5046,
      "sourceTextHash": "2e5c85914c5ed797ea71ec01ca99e8d61d8fd6a8d4824f4f16ab5d324e9d6c2d"
    },
    {
      "key": "256",
      "title": "Multiple Threads/Processes",
      "chapter": "7",
      "pdfPage": 386,
      "endPdfPage": 387,
      "page": "370",
      "endPage": "371",
      "promptId": "marwedel-topic-256",
      "sourceTextCharacters": 2791,
      "sourceTextHash": "b63316435d2d02814f1e9642ef36066dbffeb0dccd33a8a4932f850a3d3487c2"
    },
    {
      "key": "257",
      "title": "Supporting Different Architectures and Objectives",
      "chapter": "7",
      "pdfPage": 387,
      "endPdfPage": 387,
      "page": "371",
      "endPage": "371",
      "promptId": "marwedel-topic-257",
      "sourceTextCharacters": 1455,
      "sourceTextHash": "645eff54247aa59437496d87058ab797ed2e6558704e52b8d57e60ec0c7b08ee"
    },
    {
      "key": "258",
      "title": "7.3.4 Reconciling Compilers and Timing Analysis",
      "chapter": "7",
      "pdfPage": 388,
      "endPdfPage": 389,
      "page": "372",
      "endPage": "373",
      "promptId": "marwedel-topic-258",
      "sourceTextCharacters": 4949,
      "sourceTextHash": "3bb9457755bad6e9c43edf85944ccf64e095b4ff3ffffa0d9c0ea52fe6c160dd"
    },
    {
      "key": "259",
      "title": "7.4 Power and Thermal Management",
      "chapter": "7",
      "pdfPage": 389,
      "endPdfPage": 389,
      "page": "373",
      "endPage": "373",
      "promptId": "marwedel-topic-259",
      "sourceTextCharacters": 33,
      "sourceTextHash": "9cb851e5a6e9acac8f9d73fe909974a263313e6b2851b5ff7bb11cb9c02a0f6b"
    },
    {
      "key": "260",
      "title": "7.4.1 Dynamic Voltage and Frequency Scaling (DVFS)",
      "chapter": "7",
      "pdfPage": 389,
      "endPdfPage": 392,
      "page": "373",
      "endPage": "376",
      "promptId": "marwedel-topic-260",
      "sourceTextCharacters": 6586,
      "sourceTextHash": "f5df72fd59348560961b705319df7648f4572feb33e7501e54077fbb68b8bc14"
    },
    {
      "key": "261",
      "title": "7.4.2 Dynamic Power Management (DPM)",
      "chapter": "7",
      "pdfPage": 392,
      "endPdfPage": 393,
      "page": "376",
      "endPage": "377",
      "promptId": "marwedel-topic-261",
      "sourceTextCharacters": 1030,
      "sourceTextHash": "a40a6ac18c5d647789d954224a3c1317747b6c252035a278c639a4fbe83f474c"
    },
    {
      "key": "262",
      "title": "7.4.3 Thermal Management",
      "chapter": "7",
      "pdfPage": 393,
      "endPdfPage": 393,
      "page": "377",
      "endPage": "377",
      "promptId": "marwedel-topic-262",
      "sourceTextCharacters": 1996,
      "sourceTextHash": "8722d717f10a95528a029b28bfc758467fb44b25ebc689c7a8eb9aaa3bf61a2a"
    },
    {
      "key": "263",
      "title": "7.5 Problems",
      "chapter": "7",
      "pdfPage": 394,
      "endPdfPage": 395,
      "page": "378",
      "endPage": "379",
      "promptId": "marwedel-topic-263",
      "sourceTextCharacters": 2820,
      "sourceTextHash": "2eb72e6d4f0da0825c1b57deda70e69b1de5837cc5fc35416176b4bf3deba824"
    },
    {
      "key": "264",
      "title": "8 Test",
      "chapter": "8",
      "pdfPage": 396,
      "endPdfPage": 396,
      "page": "381",
      "endPage": "381",
      "promptId": "marwedel-topic-264",
      "sourceTextCharacters": 951,
      "sourceTextHash": "10fd3728191b845886e23de4ebf6bffd30a4054622cd0b162b647f1976ce3f9b"
    },
    {
      "key": "265",
      "title": "8.1 Scope",
      "chapter": "8",
      "pdfPage": 396,
      "endPdfPage": 397,
      "page": "381",
      "endPage": "382",
      "promptId": "marwedel-topic-265",
      "sourceTextCharacters": 3076,
      "sourceTextHash": "15ed6d89c7eaa848a139773f80cef06b740ed54f954ab7e0f78aa98167031373"
    },
    {
      "key": "266",
      "title": "8.2 Test Procedures",
      "chapter": "8",
      "pdfPage": 397,
      "endPdfPage": 397,
      "page": "382",
      "endPage": "382",
      "promptId": "marwedel-topic-266",
      "sourceTextCharacters": 20,
      "sourceTextHash": "527be9b973dafa30d03c0ef304cdadf87d89001e9eb8120aed99a1523ada4769"
    },
    {
      "key": "267",
      "title": "8.2.1 Test Pattern Generation for Gate-Level Models",
      "chapter": "8",
      "pdfPage": 397,
      "endPdfPage": 399,
      "page": "382",
      "endPage": "384",
      "promptId": "marwedel-topic-267",
      "sourceTextCharacters": 2520,
      "sourceTextHash": "120d1933167c9a14b76a824cadf7c7f919bc1af8dff1a0f0ef2df97070645eb5"
    },
    {
      "key": "268",
      "title": "8.2.2 Self-Test Programs",
      "chapter": "8",
      "pdfPage": 399,
      "endPdfPage": 399,
      "page": "384",
      "endPage": "384",
      "promptId": "marwedel-topic-268",
      "sourceTextCharacters": 1256,
      "sourceTextHash": "7c3f426a4ec99c384fc67a1fcf6079e27544fba49d6dbf4b52d688757936e950"
    },
    {
      "key": "269",
      "title": "8.3 Evaluation of Test Pattern Sets and System Robustness",
      "chapter": "8",
      "pdfPage": 399,
      "endPdfPage": 399,
      "page": "384",
      "endPage": "384",
      "promptId": "marwedel-topic-269",
      "sourceTextCharacters": 58,
      "sourceTextHash": "b8c4e554a4108ec586cdaeb33b8b65b191a8813df145324072e52db58ecae25d"
    },
    {
      "key": "270",
      "title": "8.3.1 Fault Coverage",
      "chapter": "8",
      "pdfPage": 399,
      "endPdfPage": 400,
      "page": "384",
      "endPage": "385",
      "promptId": "marwedel-topic-270",
      "sourceTextCharacters": 1372,
      "sourceTextHash": "863c5190e5eab27c6825669f34420742763da2a53015975d83958b57345696a9"
    },
    {
      "key": "271",
      "title": "8.3.2 Fault Simulation",
      "chapter": "8",
      "pdfPage": 400,
      "endPdfPage": 401,
      "page": "385",
      "endPage": "386",
      "promptId": "marwedel-topic-271",
      "sourceTextCharacters": 2089,
      "sourceTextHash": "fe59f1aef6b59ee589d6cbc043e48cdee9044855efa836abf6f0aa6c8fe55164"
    },
    {
      "key": "272",
      "title": "8.3.3 Fault Injection",
      "chapter": "8",
      "pdfPage": 401,
      "endPdfPage": 401,
      "page": "386",
      "endPage": "386",
      "promptId": "marwedel-topic-272",
      "sourceTextCharacters": 1494,
      "sourceTextHash": "ac6e1aaed2e3aad05ac114c4f65d6acab94ba73d07ab49c33d87d4822ab1aebb"
    },
    {
      "key": "273",
      "title": "8.4 Design for Testability",
      "chapter": "8",
      "pdfPage": 402,
      "endPdfPage": 402,
      "page": "387",
      "endPage": "387",
      "promptId": "marwedel-topic-273",
      "sourceTextCharacters": 27,
      "sourceTextHash": "5628b13c866b9f6d41071a52baf14cf5f7738bb297e6d6d40e163b6a87941a56"
    },
    {
      "key": "274",
      "title": "8.4.1 Motivation",
      "chapter": "8",
      "pdfPage": 402,
      "endPdfPage": 402,
      "page": "387",
      "endPage": "387",
      "promptId": "marwedel-topic-274",
      "sourceTextCharacters": 1776,
      "sourceTextHash": "1a46b2cbf931fa8ad9569398f5d4732936be57385057393b14e95204ac7a2032"
    },
    {
      "key": "275",
      "title": "8.4.2 Scan Design",
      "chapter": "8",
      "pdfPage": 402,
      "endPdfPage": 404,
      "page": "387",
      "endPage": "389",
      "promptId": "marwedel-topic-275",
      "sourceTextCharacters": 2361,
      "sourceTextHash": "90ccd1bada9c384c0c1eaa5c10423992d4b92a60b4305949bfc93c4b6c4165e3"
    },
    {
      "key": "276",
      "title": "8.4.3 Signature Analysis",
      "chapter": "8",
      "pdfPage": 404,
      "endPdfPage": 405,
      "page": "389",
      "endPage": "390",
      "promptId": "marwedel-topic-276",
      "sourceTextCharacters": 2731,
      "sourceTextHash": "6df36aaf6f661d883efbda76ebbe6afc5c4e45eff18a388b00cc0140d37bfa24"
    },
    {
      "key": "277",
      "title": "8.4.4 Pseudo-random Test Pattern Generation",
      "chapter": "8",
      "pdfPage": 405,
      "endPdfPage": 406,
      "page": "390",
      "endPage": "391",
      "promptId": "marwedel-topic-277",
      "sourceTextCharacters": 1308,
      "sourceTextHash": "e2d89696391d2de5a137fbc465008f6ee9b262acd2586944380217e3a4f1fa89"
    },
    {
      "key": "278",
      "title": "8.5 Problems",
      "chapter": "8",
      "pdfPage": 406,
      "endPdfPage": 406,
      "page": "391",
      "endPage": "391",
      "promptId": "marwedel-topic-278",
      "sourceTextCharacters": 598,
      "sourceTextHash": "4563f392e3bce16dea8c34e43a23644a5ff7112b54fe988d410c9fa2022cffc7"
    },
    {
      "key": "279",
      "title": "Correction to: Evaluation and Validation",
      "chapter": "correction",
      "pdfPage": 407,
      "endPdfPage": 407,
      "page": "C1",
      "endPage": "C1",
      "promptId": "marwedel-topic-279",
      "sourceTextCharacters": 632,
      "sourceTextHash": "3b5c70085b3c3a7741e424c6053af4dbece3a7af49662ffca8007acdb30dd895"
    },
    {
      "key": "280",
      "title": "A Integer Linear Programming",
      "chapter": "appendices",
      "pdfPage": 408,
      "endPdfPage": 409,
      "page": "393",
      "endPage": "394",
      "promptId": "marwedel-topic-280",
      "sourceTextCharacters": 4469,
      "sourceTextHash": "d134915035f29e0eba7ef5bbae71b8e4228e618e314cac929c3ffdf72b7a2383"
    },
    {
      "key": "281",
      "title": "B Kirchhoff's Laws and Operational Amplifiers",
      "chapter": "appendices",
      "pdfPage": 410,
      "endPdfPage": 410,
      "page": "395",
      "endPage": "395",
      "promptId": "marwedel-topic-281",
      "sourceTextCharacters": 423,
      "sourceTextHash": "c13267813236a7fae85890ceff2158974f0d2d11caebb20243569d42bb111ff0"
    },
    {
      "key": "282",
      "title": "B.1 Kirchhoff's Laws",
      "chapter": "appendices",
      "pdfPage": 410,
      "endPdfPage": 412,
      "page": "395",
      "endPage": "397",
      "promptId": "marwedel-topic-282",
      "sourceTextCharacters": 4442,
      "sourceTextHash": "d10739251aaf5cb532858d9eeea68157d64dd93b7831ca4082f2d3de47a2d5a1"
    },
    {
      "key": "283",
      "title": "B.2 Operational Amplifiers",
      "chapter": "appendices",
      "pdfPage": 412,
      "endPdfPage": 414,
      "page": "397",
      "endPage": "399",
      "promptId": "marwedel-topic-283",
      "sourceTextCharacters": 5306,
      "sourceTextHash": "72f22017e519837ce21ff674307006de8027b41e5e4b6a33cf76df24a022071e"
    },
    {
      "key": "284",
      "title": "C Paging and Memory Management Units",
      "chapter": "appendices",
      "pdfPage": 415,
      "endPdfPage": 416,
      "page": "401",
      "endPage": "402",
      "promptId": "marwedel-topic-284",
      "sourceTextCharacters": 4724,
      "sourceTextHash": "c4b79007b38d0c9aca4461763f4d3aaa77632243efc010071e5a023b868c6fc6"
    }
  ],
  "exercises": [
    {
      "number": "1.1",
      "promptId": "marwedel-exercise-1-1",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.2",
      "promptId": "marwedel-exercise-1-2",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.3",
      "promptId": "marwedel-exercise-1-3",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.4",
      "promptId": "marwedel-exercise-1-4",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.5",
      "promptId": "marwedel-exercise-1-5",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.6",
      "promptId": "marwedel-exercise-1-6",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.7",
      "promptId": "marwedel-exercise-1-7",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.8",
      "promptId": "marwedel-exercise-1-8",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.9",
      "promptId": "marwedel-exercise-1-9",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.10",
      "promptId": "marwedel-exercise-1-10",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.11",
      "promptId": "marwedel-exercise-1-11",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.12",
      "promptId": "marwedel-exercise-1-12",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.13",
      "promptId": "marwedel-exercise-1-13",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.14",
      "promptId": "marwedel-exercise-1-14",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.15",
      "promptId": "marwedel-exercise-1-15",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.16",
      "promptId": "marwedel-exercise-1-16",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.17",
      "promptId": "marwedel-exercise-1-17",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.18",
      "promptId": "marwedel-exercise-1-18",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.19",
      "promptId": "marwedel-exercise-1-19",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.20",
      "promptId": "marwedel-exercise-1-20",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "1.21",
      "promptId": "marwedel-exercise-1-21",
      "chapter": "1",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.1",
      "promptId": "marwedel-exercise-2-1",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.2",
      "promptId": "marwedel-exercise-2-2",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.3",
      "promptId": "marwedel-exercise-2-3",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.4",
      "promptId": "marwedel-exercise-2-4",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.5",
      "promptId": "marwedel-exercise-2-5",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.6",
      "promptId": "marwedel-exercise-2-6",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.7",
      "promptId": "marwedel-exercise-2-7",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.8",
      "promptId": "marwedel-exercise-2-8",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.9",
      "promptId": "marwedel-exercise-2-9",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.10",
      "promptId": "marwedel-exercise-2-10",
      "chapter": "2",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "2.11",
      "promptId": "marwedel-exercise-2-11",
      "chapter": "2",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "2.12",
      "promptId": "marwedel-exercise-2-12",
      "chapter": "2",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "2.13",
      "promptId": "marwedel-exercise-2-13",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.14",
      "promptId": "marwedel-exercise-2-14",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.15",
      "promptId": "marwedel-exercise-2-15",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.16",
      "promptId": "marwedel-exercise-2-16",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.17",
      "promptId": "marwedel-exercise-2-17",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.18",
      "promptId": "marwedel-exercise-2-18",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.19",
      "promptId": "marwedel-exercise-2-19",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.20",
      "promptId": "marwedel-exercise-2-20",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.21",
      "promptId": "marwedel-exercise-2-21",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.22",
      "promptId": "marwedel-exercise-2-22",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.23",
      "promptId": "marwedel-exercise-2-23",
      "chapter": "2",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "2.24",
      "promptId": "marwedel-exercise-2-24",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.25",
      "promptId": "marwedel-exercise-2-25",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "2.26",
      "promptId": "marwedel-exercise-2-26",
      "chapter": "2",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "2.27",
      "promptId": "marwedel-exercise-2-27",
      "chapter": "2",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.1",
      "promptId": "marwedel-exercise-3-1",
      "chapter": "3",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "3.2",
      "promptId": "marwedel-exercise-3-2",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.3",
      "promptId": "marwedel-exercise-3-3",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.4",
      "promptId": "marwedel-exercise-3-4",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.5",
      "promptId": "marwedel-exercise-3-5",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.6",
      "promptId": "marwedel-exercise-3-6",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.7",
      "promptId": "marwedel-exercise-3-7",
      "chapter": "3",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "3.8",
      "promptId": "marwedel-exercise-3-8",
      "chapter": "3",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "3.9",
      "promptId": "marwedel-exercise-3-9",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.10",
      "promptId": "marwedel-exercise-3-10",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.11",
      "promptId": "marwedel-exercise-3-11",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.12",
      "promptId": "marwedel-exercise-3-12",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.13",
      "promptId": "marwedel-exercise-3-13",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.14",
      "promptId": "marwedel-exercise-3-14",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.15",
      "promptId": "marwedel-exercise-3-15",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.16",
      "promptId": "marwedel-exercise-3-16",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.17",
      "promptId": "marwedel-exercise-3-17",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.18",
      "promptId": "marwedel-exercise-3-18",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.19",
      "promptId": "marwedel-exercise-3-19",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.20",
      "promptId": "marwedel-exercise-3-20",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.21",
      "promptId": "marwedel-exercise-3-21",
      "chapter": "3",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "3.22",
      "promptId": "marwedel-exercise-3-22",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.23",
      "promptId": "marwedel-exercise-3-23",
      "chapter": "3",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "3.24",
      "promptId": "marwedel-exercise-3-24",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.25",
      "promptId": "marwedel-exercise-3-25",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.26",
      "promptId": "marwedel-exercise-3-26",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "3.27",
      "promptId": "marwedel-exercise-3-27",
      "chapter": "3",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "4.1",
      "promptId": "marwedel-exercise-4-1",
      "chapter": "4",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "4.2",
      "promptId": "marwedel-exercise-4-2",
      "chapter": "4",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "4.3",
      "promptId": "marwedel-exercise-4-3",
      "chapter": "4",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "4.4",
      "promptId": "marwedel-exercise-4-4",
      "chapter": "4",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "4.5",
      "promptId": "marwedel-exercise-4-5",
      "chapter": "4",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "4.6",
      "promptId": "marwedel-exercise-4-6",
      "chapter": "4",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "4.7",
      "promptId": "marwedel-exercise-4-7",
      "chapter": "4",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "4.8",
      "promptId": "marwedel-exercise-4-8",
      "chapter": "4",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "4.9",
      "promptId": "marwedel-exercise-4-9",
      "chapter": "4",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "4.10",
      "promptId": "marwedel-exercise-4-10",
      "chapter": "4",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "4.11",
      "promptId": "marwedel-exercise-4-11",
      "chapter": "4",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "4.12",
      "promptId": "marwedel-exercise-4-12",
      "chapter": "4",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "4.13",
      "promptId": "marwedel-exercise-4-13",
      "chapter": "4",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "5.1",
      "promptId": "marwedel-exercise-5-1",
      "chapter": "5",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "5.2",
      "promptId": "marwedel-exercise-5-2",
      "chapter": "5",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "5.3",
      "promptId": "marwedel-exercise-5-3",
      "chapter": "5",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "5.4",
      "promptId": "marwedel-exercise-5-4",
      "chapter": "5",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "5.5",
      "promptId": "marwedel-exercise-5-5",
      "chapter": "5",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "5.6",
      "promptId": "marwedel-exercise-5-6",
      "chapter": "5",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "5.7",
      "promptId": "marwedel-exercise-5-7",
      "chapter": "5",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "5.8",
      "promptId": "marwedel-exercise-5-8",
      "chapter": "5",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "5.9",
      "promptId": "marwedel-exercise-5-9",
      "chapter": "5",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "6.1",
      "promptId": "marwedel-exercise-6-1",
      "chapter": "6",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "6.2",
      "promptId": "marwedel-exercise-6-2",
      "chapter": "6",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "6.3",
      "promptId": "marwedel-exercise-6-3",
      "chapter": "6",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "6.4",
      "promptId": "marwedel-exercise-6-4",
      "chapter": "6",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "7.1",
      "promptId": "marwedel-exercise-7-1",
      "chapter": "7",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "7.2",
      "promptId": "marwedel-exercise-7-2",
      "chapter": "7",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "7.3",
      "promptId": "marwedel-exercise-7-3",
      "chapter": "7",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "7.4",
      "promptId": "marwedel-exercise-7-4",
      "chapter": "7",
      "requiresSourceFigureOrTable": false
    },
    {
      "number": "7.5",
      "promptId": "marwedel-exercise-7-5",
      "chapter": "7",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "7.6",
      "promptId": "marwedel-exercise-7-6",
      "chapter": "7",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "8.1",
      "promptId": "marwedel-exercise-8-1",
      "chapter": "8",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "8.2",
      "promptId": "marwedel-exercise-8-2",
      "chapter": "8",
      "requiresSourceFigureOrTable": true
    },
    {
      "number": "8.3",
      "promptId": "marwedel-exercise-8-3",
      "chapter": "8",
      "requiresSourceFigureOrTable": true
    }
  ],
  "excluded": "Önsöz, teşekkür, yazar tanıtımı, sembol listesi, kaynakça ve dizin ayrı görev değildir; atıf ve gezinme amaçlıdır. Üçüncü taraf görselleri yeniden yayımlanmadı.",
  "extractionLimit": "Matematik, kod, şekil ve tablo anlamı özgün PDF ile doğrulanmalıdır. Bu koleksiyon ders içeriğini görevlere böler; çıktıların mühendislik doğruluğunu kendiliğinden garanti etmez."
}