Giáo trinh Hệ thống nhúng - Hoàng Quốc Việt (Phần 1)
Tóm tắt Giáo trinh Hệ thống nhúng - Hoàng Quốc Việt (Phần 1): ...i phát triển hệ thống có thể sử dụng phần mềm workbench như MathCad hoặc Mathematica để mô phỏng các phép toán. • Các trình biên dịch và trình liên kết (linker) chuyên dụng được sử dụng để tối ưu hóa một thiết bị phần cứng. • Một hệ thống nhúng có thể có ngôn ngữ lập trình và công cụ thiết kế r...RAM với VXL Ngoại vi Bộ định thời/Bộ đếm: Hầu hết các chip vi điều khiển ngày nay đều có ít nhất một bộ định thời gian/bộ đếm có thể cấu hình hoạt động linh hoạt theo các mode phục vụ nhiều mục đích trong các ứng dụng xử lý, điều khiển. Các bộ định thời gian cho phép tạo ra các chuỗi xung và ng... phát triển của các Chip xử lý ứng dụng cho máy tính. Vì đối tượng ứng dụng là các thiết bị nhúng nên cấu trúc cũng được thay đổi theo để đáp ứng các ứng dụng. Hiện nay chúng ta có thể thấy các họ vi xử lý điều khiển của rất nhiều các nhà chế tạo cung cấp như, Intel, Atmel, Motorola, Infineon. Về...
ng dự án lớn nhằm phát triển công nghệ phần mềm nhúng như các thiết bị gia dụng nối mạng Internet, hệ thống phần mềm nhúng cho phát triển thành phố thông minh, dự án phát triển ngành công nghiệp phần mềm nhúng, trung tâm hỗ trợ các ngành công nghiệp hậu PC.... Thụy Điển coi phát triển các hệ nhúng có tầm quan trọng chiến lược cho sự phát triển của đất nước. Phần Lan có những chính sách quốc gia tích cực cho nghiên cứu phát triển các hệ nhúng đặc biệt là các phần mềm nhúng. Những quốc gia này còn thành lập nhiều viện nghiên cứu và trung tâm phát triển các hệ nhúng. Đặc điểm của phần mềm nhúng Hiện nay phần mềm nhúng có một số đặc điểm sau nổi bật: • Phần mềm nhúng phát triển theo hướng chức năng hóa đặc thù. • Hạn chế về tài nguyên bộ nhớ. • Yêu cầu thời gian thực. Quy trình phát triển của phần mềm nhúng Quá trình biên dịch và phát triển phần mềm nhúng • Quá trình biên dịch (Computing): 47/99 Nhiệm vụ chính của bộ biên dịch là chuyển đổi chương trình được viết bằng ngôn ngữ thân thiện với con người ví dụ như C, C++,thành tập mã lệnh tương đương có thể đọc và hiểu bởi bộ vi xử lý đích. Theo cách hiểu này thì bản chất một bộ hợp ngữ cũng là một bộ biên dịch để chuyển đổi một - một từ một dòng lệnh hợp ngữ thành một dạng mã lệnh tương đương cho bộ vi xử lý có thể hiểu và thực thi. Chính vì vậy đôi khi người ta vẫn nhầm hiểu giữa khái niệm bộ hợp ngữ và bộ biên dịch. Tuy nhiên việc biên dịch của bộ hợp ngữ sẽ được thực thi đơn giản hơn rất nhiều so với các bộ biên dịch cho các mã nguồn viết bằng ngôn ngữ bậc cao khác. Mỗi một bộ xử lý thường có riêng ngôn ngữ máy vì vậy cần phải chọn lựa một bộ biên dịch phù hợp để có thể chuyển đổi chính xác thành dạng mã máy tương ứng với bộ xử lý đích. Đối với các hệ thống nhúng, bộ biên dịch là một chương trình ứng dụng luôn được thực thi trên máy chủ (môi trường phát triển chương trình) và còn có tên gọi là bộ biên dịch chéo (cross - compiler). Vì bộ biên dịch chạy trên một nền phần cứng để tạo ra mã chương trình chạy trên môi trường phần cứng khác. Việc sử dụng bộ biên dịch chéo này là một thành phần không thể thiếu trong quá trình phát triển phần mềm cho hệ nhúng. Các bộ biên dịch chéo thường có thể cấu hình để thực thi việc chuyển đổi cho nhiều nền phần cứng khác nhau một cách linh hoạt. Và việc lựa chọn cấu hình biên dịch tương ứng với các nền phần cứng đôi khi cũng khá độc lập với chương trình ứng dụng của bộ biên dịch. Kết quả đầu tiên của quá trình biên dịch nhận được là một dạng mã lệnh được biết tới với tên gọi là tệp đối tượng (object file). Nội dung của tệp đối tượng này có thể được xem như là một cấu trúc dữ liệu trung gian và thường được định nghĩa như một định dạng chuẩn COFF (Common Object File Format) hay định dạng của bộ liên kết mở rộng ELF (Extended Linker Format) Nếu sử dụng nhiều bộ biên dịch cho các modul mã nguồn của một chương trình lớn thì cần phải đảm bảo rằng các tệp đối tượng được tạo ra phải có chung một kiểu định dạng. Hầu hết nội dung của các tệp đối tượng đều bắt đầu bởi một phần header để mô tả các phần theo sau. Mỗi một phần sẽ chứa một hoặc nhiều khối mã hoặc dữ liệu như được sử dụng trong tệp mã nguồn. Tuy nhiên các khối đó được nhóm lại bởi bộ biên dịch vào trong các phần liên quan. Ví dụ như tất cả các khối mã được nhóm lại vào trong một phần được gọi là text, các biến toàn cục đã được khởi tạo (cùng các giá trị khởi tạo của chúng) vào trong phần dữ liệu, và các biến toàn cục chưa được khởi tạo vào trong phần bss. Cũng khá phổ biến thường có một bảng biểu tượng chứa trong nội dung của tệp đối tượng. Nó chứa tên và địa chỉ của tất cả các biến và hàm được tham chiếu trong tệp mã nguồn. Các phần chứa trong bảng này không phải lúc nào cũng đầy đủ vì có một số biến và hàm được định nghĩa và chứa trong các tệp mã nguồn khác. Chính vì vậy cần phải có bộ liên kết để thực thi xử lý vấn đề này. 48/99 • Quá trình liên kết (Linking): Tất cả các tệp đối tượng nhận được sau bước thực hiện biên dịch đầu tiên đều phải được tổ hợp lại theo một cách đặc biệt trước khi nó được nạp và chạy ở trên môi trường phần cứng đích. Như đã thấy ở trên, bản thân các tệp đối tượng cũng có thể là chưa hoàn thiện vì vậy bộ liên kết phải xử lý để tổ hợp các tệp đối tượng đó với nhau và hoàn thiện nốt phần còn khuyết cho các biến hoặc hàm tham chiếu liên thông giữa các tệp mã nguồn được biên dịch độc lập. Kết quả đầu ra của bộ liên kết là một tệp đối tượng mới có chứa tất cả mã và dữ liệu trong tệp mã nguồn và cùng kiểu định dạng tệp. Nó thực thi được điều này bằng cách tổ hợp một cách tương ứng các phần text, dữ liệu và phần bss từ các tệp đầu vào và tạo ra một tệp đối tượng theo định dạng mã máy thống nhất. Trong qúa trình bộ liên kết thực hiện tổ hợp các phần nội dung tương ứng nó còn thực hiện thêm cả vấn đề hoàn chỉnh các địa chỉ tham chiếu của các biến và hàm chưa được đầy đủ trong bước thực hiện biên dịch. Các bộ liên kết có thể được kích hoạt thực hiện độc lập với bộ biên dịch và các tệp đối tượng được tạo ra bởi bộ biên dịch được coi như các tham biến vào. Đối với các ứng dụng nhúng nó thường chứa phần mã khởi tạo đã được biên dịch cũng phải được gộp ở trong danh sách tham biến vào này. Nếu cùng một biểu tượng được khai báo hơn một lần nằm trong một tệp đối tượng thì bộ liên kết sẽ không thể xử lý. Nó sẽ kích hoạt cơ chế báo lỗi để người phát triển chương trình xem xét lại. Hoặc khi một biểu tượng không thể tìm được địa chỉ tham chiếu thực trong toàn bộ các tệp đối tượng thì bộ liên kết sẽ cố gắng tự giải quyết theo khả năng cho phép dựa vào các thông tin ví dụ như chứa trong phần mô tả của thư viện chuẩn. Điều này cũng thường hoặc có thể gặp với trường hợp các hàm tham chiếu trong chương trình. Rất đáng tiếc là các hàm thư viện chuẩn thường yêu cầu một vài thay đổi trước khi nó có thể được sử dụng trong chương trình ứng dụng nhúng. Vấn đề ở đây là các thư viện chuẩn cung cấp cho các bộ công cụ phát triển chỉ dừng đến khả năng định dạng và tạo ra tệp đối tượng. Hơn nữa chúng ta cũng rất ít khi có thể truy nhập được vào mã nguồn của các thư viện chuẩn để có thể tự thay đổi. Hiện nay cũng có một số nhà cung cấp dịch vụ phần mềm hỗ trợ công cụ chuyển đổi hay thay đổi thư viện C chuẩn để ứng dụng cho các ứng dụng nhúng, ví dụ như Cygnus. Gói phần mềm này được gọi là newlib và được cung cấp miễn phí. Chúng ta có thể tải về trang web của Cygnus. Nó sẽ hỗ trợ chúng ta giải quyết vấn đề mà bộ liên kết có thể gặp phải khi chương trình sử dụng các hàm thuộc thư viện C chuẩn. Sau khi đã hợp nhất thành công tất cả các thành phần mã và phần dữ liệu tương ứng cũng như các vấn đề về tham chiếu tới các biểu tượng chưa được thực thi trong quá trình 49/99 biên dịch đơn lẻ, bộ liên kết sẽ tạo ra một bản sao đặc biệt của chương trình có khả năng định vị lại (relocatable). Hay nói cách khác, chương trình được hoàn thiện ngoại trừ một điều: Không có địa chỉ bộ nhớ nào chưa được gán bên trong các phần mã và dữ liệu. Nếu chúng ta không phải là đang phát triển phần mềm cho hệ nhúng thì quá trình biên dịch có thể kết thúc tại đây. Tuy nhiên, với hệ nhúng ngay cả hệ thống nhúng đã bao gồm cả hệ điều hành chúng ta vẫn cần phải có một mã chương trình (image) nhị phân được định vị tuyệt đối. Thực tế nếu có một hệ điều hành thì phần mã và dữ liệu cũng thường gộp cả vào bên trong chương trình có khả năng định vị lại. Toàn bộ ứng dụng nhúng bao gồm cả hệ điều hành thường liên kết tĩnh với nhau và thực hiện như một mã chương trình nhị phân thống nhất. • Quá trình định vị (Locating) Công cụ thực hiện việc chuyển đổi một chương trình có khả năng định vị lại thành một dạng mã chương trình nhị phân có thể thực thi được gọi là bộ định vị. Nó sẽ đảm nhiệm vai trò của bước đơn giản nhất trong các bước thực thi biên dịch nói chung. Thực tế chúng ta phải tự làm hầu hết công việc của bước này bằng cách cung cấp thông tin về bộ nhớ đã được cấu hình trên nền phần cứng mà chúng ta đang phát triển và đó chính là tham số đầu vào cho việc thực thi của bộ định vị. Bộ định vị sẽ sử dụng thông tin này để gán các địa chỉ vật lý cho mỗi phần mã lệnh và dữ liệu bên trong chương trình được thực thi mà có thể định vị lại. Tiếp theo nó sẽ tạo ra một tệp có chứa chương trình bộ nhớ nhị phân để có thể nạp trực tiếp vào bộ nhớ chương trình trên nền phần cứng thực thi. Trong nhiều trường hợp bộ định vị là một chương trình khá độc lập với các phần công cụ khác trong hệ thống phần mềm phát triển. Tuy nhiên trong các bộ công cụ phát triển GNU chức năng này được tích hợp luôn trong bộ liên kết. Tuy nhiên không nên nhầm lẫn về chức năng của chúng trong quá trình thực thi biên dịch. Thông thường chương trình chạy trên các máy tính mục đích chung thì hệ điều hành sẽ thực hiện việc chuyển đổi và gán chính xác địa chỉ thực cho các phần mã và dữ liệu trong chương trình ứng dụng, còn với chương trình phát triển chạy trên hệ nhúng thì việc này phải được thực hiện bởi bộ định vị. Đây cũng chính là điểm khác biệt cơ bản khi thực hiện biên dịch một chương trình ứng dụng cho hệ nhúng. Thông tin về bộ nhớ vật lý của hệ thống phần cứng phát triển mà cần phải cung cấp cho bộ định vị GNU phải được định dạng theo kiểu biểu diễn của bộ liên kết. Thông tin này đôi khi được sử dụng để điều khiển một cách chính xác thứ tự trong các phần mã chương trình và dữ liệu bên trong chương trình có thể định vị lại. Nhưng ở đây chúng ta cần phải thực hiện nhiều hơn thế, tức là phải thiết lập chính xác khu vực của mỗi phần trong bộ nhớ. 50/99 Hệ điều hành cho các hệ thống nhúng (HĐH thời gian thực) Đặc điểm chung của Hệ điều hành Nguồn gốc ra đời của hệ điều hành là để đảm nhiệm vai trò trung gian để tương tác trực tiếp với phần cứng của máy tính, phục vụ cho nhiều ứng dụng đa dạng. Các hệ điều hành cung cấp một tập các chức năng cần thiết để cho phép các gói phần mềm điều khiển phần cứng máy tính mà không cần phải can thiệp trực tiếp sâu. Hệ điều hành của máy tính có thể thấy nó bao gồm các drivers cho các ngoại vi tích hợp với máy tính như card màn hình, card âm thanh... Các công cụ để quản lý tài nguyên như bộ nhớ và các thiết bị ngoại vi nói chung. Điều này tạo ra một giao diện rất thuận lợi cho các ứng dụng và người sử dụng phát triển phần mềm trên các nền phần cứng đã có. Đồng thời tránh được yêu cầu và hiểu biết sâu sắc về phần cứng và có thể phát triển dựa trên các ngôn ngữ bậc cao. Hệ thống điều hành bản chất cũng là một loại phần mềm nhưng nó khác với các loại phần mềm thông thường. Sự khác biệt điển hình là hệ thống điều hành được nạp và thực thi đầu tiên khi hệ thống bắt đầu khởi động và được thực hiện trực tiếp bởi bộ xử lý của hệ thống. Hệ thống điều hành được viết để phục vụ điều khiển bộ xử lý cũng như các tài nguyên khác trong hệ thống bởi vì nó sẽ đảm nhiệm chức năng quản lý và lập lịch các quá trình sử dụng CPU và cùng chia sẻ tài nguyên. Kiến trúc Hệ điều hành 51/99 Hệ điều hành cho các hệ thống nhúng - hệ điều hành thời gian thực Thời gian thực (Real - Time) là gì? Thời gian thực rất khó định nghĩa. Ý tưởng cơ bản của thời gian thực thể hiện ở chỗ: một hệ thống phải có những phản ứng thích hợp, đúng thời điểm với môi trường của nó. Nhiều người luôn nghĩ rằng, thời gian thực có nghĩa là thực sự nhanh, càng nhanh càng tốt, điều này là sai lầm. Thời gian thực có nghĩa “đủ nhanh” (fast enough) trong một ngữ cảnh, một môi trường mà hệ thống đang hoạt động. Khi chúng ta đề cập đến máy tính điều khiển động cơ ô tô, chúng ta cần nó chạy càng nhanh càng tốt. Một ví dụ khác, khi chúng ta đề cập đến một nhà máy lọc dầu hoá học chẳng hạn, nhà máy được điều khiển bởi một hoặc một hệ thống máy tính. Các máy tính này có trách nhiệm điều khiển quá trình hoá học đồng thời phải phát hiện ra được các sự cố có thể xảy ra. Tuy nhiên, các phản ứng hay các quá trình hoá học thường có hằng số thời gian khá lớn từ hàng giây cho tới hàng phút là ít. Chính vì thế mày chúng ta có thể giả thiết rằng máy tính hoàn toàn có khả năng phản ứng lại các sự cố nghiêm trọng. Tuy nhiên, đặt vấn đề là nếu hệ thống máy tính đó đang trong quá trình in một bản báo cáo dài về các thông số sản lượng của tuần trước thì đột nhiên trục trặc xảy ra. Vậy thì nó mất bao nhiêu thời gian để có thể phản ứng lại các sự cố như thế? Thực chất của việc tính toán thời gian thực không chỉ ở việc phản ứng đủ nhanh mà còn phải đáng tin cậy và chính xác. Máy tính điều khiển động cơ trong ô tô của bạn phải có thể điều chỉnh luồng nhiên liệu và thời gian đánh lửa một cách hợp lý trong mỗi vòng quay. Nếu không, động cơ sẽ không làm việc theo mong muốn. Máy tính trong nhà máy lọc dầu phải có thể phát hiện và phản ứng lại các điều kiện bất thường trong thời gian cho phép để có thể tránh được các thảm hoạ có thể xảy ra. Như vậy, nghệ thuật của lập trình thời gian thực chính là việc thiết kế hệ thống sao cho nó có thể tiếp nhận một cách chính xác các ràng buộc về mặt thời gian trong suốt quá trình các sự kiện ngẫu nhiên và không đồng bộ xảy ra. Các dạng thời gian thực Về cơ bản, chương trình có tính thời gian thực phải có khả năng phản ứng lại các sự kiện trong môi trường mà hệ thống làm việc trong khoảng thời gian nhất định cho trước. Những hệ thống như vậy được gọi là hệ thống “điều khiển sự kiện” (hay hệ thống lái sự kiện – event-driven) và có thể được mô tả bằng thời gian trễ từ khi mà sự kiện xảy ra cho tới khi hệ thống có hoạt động phản ứng lại với sự kiện đó. Thời gian thực, mặt khác, đòi hỏi một giới hạn cao hơn về thời gian trễ, được gọi là “thời hạn lập danh mục” (scheduling deadline). Một hệ thống thời gian thực có thể được chia làm 2 loại: “thời gian thực cứng” (hard real-time) và “thờigian thực mềm” (soft 52/99 real-time). Trong hệ thống hard real-time, hệ thống phải tiếp nhận và nắm bắt được scheduling deadline của nó tại mỗi và mọi thời điểm. Sự sai sót trong việc tiếp nhận deadline có thể dẫn đến hậu quả nghiêm trọng thậm chí chết người. Lấy ví dụ: máy hỗ trợ nhịp tim cho bệnh nhân khi phẫu thuật. Thuật toán điều khiển phụ thuộc vào thời gian nhịp tim của người bệnh, nếu thời gian này bị trễ, tính mạng của người bệnh sẽ bị ảnh hưởng. Đối với khái niệm soft real-time, scheduling deadline có dễ thở hơn chút ít. Chúng ta mong muốn hệ thống phản ứng lại các sự kiện trong thời gian cho phép nhưng không có gì thực sự nghiêm trọng xảy ra nếu hệ thống thỉnh thoảng bị trễ. Lỗi về mặt thời gian có thể chỉ đơn giản là dẫn đến hậu quả giảm độ tin cậy của đối tượng đối với hệ thống mà không có hậu quả thê thảm nào khác xảy ra. Mạng lưới thu ngân tự động của ngân hàng là ví dụ rõ nhất cho soft real-time. Mạng rút tiền tự động ATM là hệ thống thời gian thực? Chẳng ai dám đặt cược cả. Khi bạn đưa thẻ ATM vào máy, bạn mong là máy sẽ phản ứng lại trong vòng 1 hay 2 giây. Nhưng nếu nó lâu hơn thế, điều tồi tệ nhất có thể xảy ra là bạn sốt ruột và thấy khó chịu đối với cái máy đó. Trên thực tế có rất nhiều hệ thống phối hợp cả 2 loại trên, trong đó, một phần nào đó của hệ thống làm việc dựa trên hard real-time, một số phần khác lại dựa trên soft real-time. Hệ điều hành thời gian thực. Hệ điều hành thời gian thực – RealTime Operating Systems(RTOS), là phần mềm điều khiển chuyên dụng thường được dùng trong những ứng dụng điện toán nhúng có tài nguyên bộ nhớ hạn chế và yêu cầu ngặt nghèo về thời gian đáp ứng tức thời, tính sẵn sàng cao và khả năng tự kiểm soát một cách chính xác. Có thể tìm thấy RTOS bất kỳ nơi nào. Chúng cũng phổ biến như những hệ điều hành mà bạn đã quen thuộc như Windows, Mac OS và Unix. RTOS âm thầm làm việc bên trong các bộ định tuyến và chuyển mạch trên mạng, động cơ xe, máy nhắn tin, điện thoại di động, thiết bị y tế, thiết bị đo lường và điều khiển công nghiệp và các vô số ứng dụng khác. Một thuộc tính quan trọng của RTOS là khả năng tách biệt với ứng dụng, vì vậy nếu có một chương trình bị "chết" hay hoạt động không hợp lệ, RTOS có thể nhanh chóng cô lập chương trình này, kích hoạt cơ chế phục hồi và bảo vệ các chương trình khác hay chính bản thân hệ điều hành khỏi các hậu quả của các lệnh sai. Cơ chế bảo vệ tương tự cũng được áp dụng để tránh tình trạng tràn bộ nhớ do bất kỳ chương trình nào gây ra. RTOS xuất hiện ở hai dạng: cứng và mềm. Nếu tính năng xử lý ứng với một sự kiện nào đó không xảy ra hay xảy ra không đủ nhanh, RTOS cứng sẽ chấm dứt hoạt động này và giữ không gây ảnh hưởng đến độ tin cậy và tính sẵn sàng của phần còn lại của hệ thống. 53/99 Vì RTOS và máy tính nhúng trở nên phổ biến trong các ứng dụng quan trọng, các nhà phát triển thương mại đang tạo nên những RTOS mới với tính sẵn sàng cao. Những sản phẩm này có một thành phần phần mềm chuyên dụng làm chức năng cảnh báo, chạy các chương trình chẩn đoán hệ thống để giúp xác định chính xác vấn đề trục trặc hay tự động chuyển đổi sang hệ thống dự phòng. Hiện thời RTOS sẵn sàng cao hỗ trợ bus Compact PCI của tổ chức PCI Industrial Computer Manufacturers Group, bus này dùng cho phần cứng có thể trao đổi nóng. RTOS có rất nhiều dạng. Sản phẩm thương mại như VxWorks và VxWorks AE, đều của Wind River Systems Inc; VxWorks AE được thiết kế với tính sẵn sàng cao, hỗ trợ khả năng gửi thông điệp phân tán và có thể chịu lỗi. RTOS cho phép lập trình viên tách biệt thư viện dùng chung, dữ liệu và phần mềm hệ thống cũng như ứng dụng. LynxOS là loại RTOS cứng, làm việc với Unix và Java. QNX chạy trên bộ xử lý Intel x86 với nhân chỉ có 10 KB. RTOS của giới nghiên cứu gồm có Chimera của Đại học Carnegie Mellon. Đây là hệ thống đa nhiệm, đa bộ xử lý thời gian thực, được thiết kế để tạo sự dễ dàng cho các nhà lập trình trong việc tái cấu hình và tái sử dụng mã. Chimera nhắm vào các hệ thống rô bô và tự động. RTOS của Đại học Maryland, có tên là Maruti, hỗ trợ cho cả ứng dụng thời gian thực cứng và mềm. Trong nhiều năm, ứng dụng dựa trên RTOS chủ yếu là trong các hệ thống nhúng và mới gần đây thì chúng đã có mặt khắp nơi, từ thiết bị y tế được điều khiển bằng máy ảnh cho đến máy pha cà phê, những ứng dụng tính toán phân tán đang thúc đẩy các nhà phát triển hệ điều hành thực hiện nghiên cứu và phát triển chuẩn. Chính phủ Mỹ cũng có một số chương trình về lĩnh vực này như công nghệ quản lý tài nguyên thời gian thực, mạng, quản lý dữ liệu và phần mềm điều khiển trung gian. Mục đích của chương trình là làm cho các hệ thống cộng tác, phân tán có thể giao tiếp và chia sẻ tài nguyên với nhau. Một uỷ ban chuyên trách đang đẩy mạnh việc tạo ra khung công nghệ cho tính toán phân tán thời gian thực, áp dụng cho cả ứng dụng quân sự và thương mại. Khung công nghệ này sẽ hỗ trợ các giao tiếp và thành phần liên tác chuẩn. Cho dù ai là người tạo ra môi trường tính toán phân tán thời gian thực, phổ dụng thì RTOS vẫn sẽ là một trong những công nghệ quan trọng nhất mà người dùng cuối chưa từng nghe đến. 54/99 So sánh kiến trúc RTOS và OS chuẩn Hệ thống điều hành với phần lõi là hạt nhân phải đảm nhiệm các tác vụ chính như sau: • Xử lý ngắt • Lưu trữ ngữ cảnh chương trình tại thời điểm xuất hiện ngắt • Nhận dạng và lựa chọn đúng bộ xử lý và phục vụ dịch vụ ngắt • Điều khiển quá trình • Tạo và kết thúc quá trình/tác vụ • Lập lịch và điều phối hoạt động hệ thống • Định thời • Điều khiển ngoại vi • Xử lý ngắt • Khởi tạo giao tiếp vào ra Cấu trúc Hệ điều hành thời gian thực Tùy theo cơ chế thực hiện và xây dựng hoạt động của hạt nhân người ta phân loại một số loại hình: • Hệ thống thời gian thực nhỏ: Với loại này các phần mềm được phát triển mà không cần có hệ điều hành, người lập trình phải tự quản lý và xử lý các vấn đề về điều khiển hệ thống bao gồm: • Xử lý ngắt • Điều khiển quá trình/ tác vụ • Quản lý bộ nhớ • Công nghệ đa nhiệm • Mỗi quá trình có một không gian bộ nhớ riêng • Các quá trình phải được chia nhỏ thành các Thread cùng chia sẻ không gian bộ nhớ. • Các dịch vụ cung cấp bởi hạt nhân • Tạo và kết thúc quá trình/ tác vụ • Truyền thống giữa các quá trình • Các dịch vụ về định thời gian 55/99 • Một số các dịch vụ cung cấp hỗ trợ việc thực thi liên quan đến điều khiển hệ thống 56/99
File đính kèm:
- giao_trinh_he_thong_nhung_hoang_quoc_viet_phan_1.pdf