MỤC LỤC
Khái niệm 1: Hệ điều hành là hệ thống ch−ơng trình với các chức năng giám sát điều khiển việc thực hiện các ch−ơng trình của ng−ời sử dụng quản lý và phân chia tài nguyên cho nhiều chương trình người sử dụng đồng thời sao cho việc khai thác chức năng của hệ thống máy tính của ng−ời sử dụng là thuận lợi và hiệu quả nhất. Nh− chúng ta biết, một hệ thống khả trình (ví dụ nh− máy tính) gồm các bộ phận chính nh−: Processor, Memory, I/O Device, Bus, vv, do đó để đối thoại hoặc khai thác máy tính người sử dụng phải hiểu được cơ chế hoạt động của các bộ phận này và phải tác động trực tiếp vào nó tất nhiên là bằng những con số 0,1 (ngôn ngữ máy).
Nhận xét: Tại vị trí trên, sau thời điểm t3, tiến trình P1 rơi vào trạng thái chờ tài nguyên r2 đang đ−ợc P2 sử dụng; Sau thời điểm t4, tiến trình P2 rơi vào trạng thái chờ tài nguyên r1 đang đ−ợc tiến trình P1 sử dụng và bắt đầu từ đây, cả. Nh− vậy bế tắc là trạng thái khi hai hoặc nhiều tiến trình cùng chờ đợi một số sự kiện nào đó và nếu không có tác động đặc biệt từ bên ngoài thì sự chờ đợi.
Để điều khiển tiến trình ở nhiều trạng thái khác, hệ thống th−ờng tổ chức các từ trạng thái (thực chất là các khối điều khiển tiến trình) để ghi nhận tình trạng sử dụng tài nguyên và trạng thái tiến trình. Nếu chọn giá trị time quantum lớn thì việc bổ sung tiến trình mới hoặc kích hoạt tiến trình bị ngắt sẽ làm tăng thời gian chờ đợi trung bình nh−ng ng−ợc lại nếu chọn giá trị time quantum nhỏ thì nó sẽ làm cho các tiến trình phải liên tục chuyển trạng thái dẫn đến giảm hệ số hữu ích của CPU.
-AT89S52 là một bộ vi điều khiển, trên bộ vi điều khiển này đã tích hợp sẵn bộ nhớ ROM, bộ nhớ RAM, các bộ định thời, bộ xử lý ngắt, khối điều khiển vào/ra, đây là những tài nguyên cơ bản dùng để viết một hệ điều hành. -Giá thành của AT89S52 là khả rẻ so với các bộ vi điều khiển có cùng tính năng hơn nữa bộ vi điều khiển này có tích hợp sắn mạch nạp ROM trên chip nên có thể thí nghiệm mà không cần tốn chi phí để mua sắm một bộ nạp ROM. Trên một thiết bị dạy học thì không thể đ−a các thiết bị máy móc kồng kềnh vào đ−ợc, hơn nữa tiêu chí chính của thiết bị dạy học này là hệ nhúng và hệ điều hành trên bộ vi điều khiển vì vậy có thể chọn hệ thống các LED để mô phỏng là đảm bảo đ−ợc tính trực quan và kinh tế nhất.
Với cả hai cách vừa nêu nếu cần điều khiển một số l−ợng lớn các LED 7 đoạn thì t−ơng ứng sẽ cần một số l−ợng lớn các đ−ờng điều khiển trong khi số l−ợng các đ−ờng điều khiển trên bộ vi điều khiển là có hạn. Trên thực tế hiện nay có khá nhiều phần mềm thiết kế mạch nh− Protel, Orcad, Circuit Maker..mỗi phần mềm này đều có những điểm mạnh riêng, tuy nhiên để thiết kế hệ thống này thì Protel tỏ ra có −u thể hơn cả vì th− viện phần mềm này có đủ các linh kiện cần cho hệ thống, đối với mạch 2 lớp trở lên thì phần mềm này tỏ ra tối −u hoá các đ−ờng mạch tốt hơn.
Trong ví dụ 3, đầu tiên vi điều khiển sẽ thực thi ở tác vụ có tên là job0, tác vụ này khởi tạo cho 2 tác vụ job1 và job2 đồng thời là nhiệm vụ của chính nó là tăng biến counter0. Trên thực tế nếu tổ chức các tác vụ một cách hợp lý và phân chia thời gian của CPU một các hợp lý cho các tác vụ sao cho khi đang thực thi ở tác vụ này, các tác vụ khác không bị ảnh h−ởng thì cảm giác d−ờng nh− tất cả các tác vụ đang đ−ợc thực hiện đồng thời (hình 4.1). Với các hệ thống này thì các chương trình điều khiển viết theo cấu trúc tuần tự đơn giản (ví dụ 1, ví dụ 2) tỏ ra không thể đáp ứng đ−ợc.
Trường Đại học Công nghiệp là một trong những cơ sở đào tạo có sự gắn kết giữa hoạt động đào tạo và thực tiễn xã hội cao. Việc đ−a vào giảng dạy môn “thiết kế hệ điều hành trên vi điều khiển” là một việc hết sức cần thiết vào thời điểm khi mà công nghệ tự động hoá đang phát triển mạnh nh− hiện nay.
Vấn đề đó chỉ có thể đ−ợc giải quyết nếu hệ thống có một hệ điều hành. Khi có tác động của người sử dụng trên các phím nhấn, hệ thống phải có đáp ứng tức thì bằng việc thông báo lên LCD và thay đổi các thông tin theo phím nhấn trên các LED.
Trong khoảng thời gian 30ms này, giả thiết CPU chuyển sang thực hiện tác vụ 5 và tác vụ này cũng làm công việc là xuất giá trị lên Port 1 để quét LED 7 đoạn. Nh− vậy Port 1 chính là tài nguyên găng trong bài toán này và đoạn ch−ơng trình sử dụng Port 1 chính là đoạn ch−ơng trình tới hạn. Như đã trình bày ở chương 1, có khá nhiều phương pháp để giải quyết tuy nhiên hầu hết các phương pháp đều đưa ra giải pháp là giải quyết cho từng tiến trình đi vào đoạn tới hạn của nó, tiến trình còn lại phải chờ.
Các giải pháp này không phù hợp với bài toán này vì cả hai tiến trình có tài nguyên găng đều là các tiến trình làm nhiệm vụ hiển thị bằng kỹ thuật quét. Hiện tại thời gian sử dụng Port 1 của cả hai tiến trình đều là 30 ms tuy nhiên thời gian tác động đến Port 1 của mỗi tiến trình chỉ là vài micro giây (thời gan thực hiện một lệnh).
Điều này có thể khắc phục bằng cách không chờ đến hết 100ms mới chuyển quyền chiếm thời gian của CPU sang tiến trình khác mà một tiến trình chỉ cần thực hiện hết phần việc của mình là có thể gửi tín hiệu (signal) cho tiến trình khác thực hiện ngay. Tr−ờng hợp ng−ợc lại nếu ng−ời sử dụng ra lệnh vào đúng thời điểm mà thời gian của CPU đang đ−ợc phân phối cho một tiến trình khác không phải là tiến trình 1(tình huống 1) thì lệnh đó không thể đ−ợc đáp ứng kịp thời hoặc có thể không đ−ợc đáp ứng (hình 4.8). Khi mỗi tiến trình hoạt động nó đều sử dụng các tài nguyên nh− CPU, bộ nhớ RAM, các thanh ghi..Mỗi tiến trình đều sử dụng các tài nguyên đó theo cách khác nhau và khi bị dừng chúng cũng làm thay đổi các tài nguyên đó khác nhau, ví dụ nh− trạng thái của CPU, giá trị của các thanh ghi, giá trị của các ô nhớ trong RAM.
Để thực hiện đ−ợc điều này thì hệ điều hành cần phải lưu lại được trạng thái của các tài nguyên mà tiến trình đang sử dụng khi nó bị dừng bởi hệ điều hành và lấy lại đ−ợc trạng thái của các tài nguyên này khi tiến trình được bắt đầu lại. Như đã trình bày trong chương 1, có khá nhiều thuật toán để lập lịch cho CPU tuy nhiên do đặc thù của hệ thống có 6 tác vụ và các tiến trình cũng đ−ợc xác định trước nên có thể chọn thuật toán RR kết hợp với xử lý ngắt khi có sự tác động của người sử dụng lên các phím nhấn.
Màn hình tinh thể lỏng, các thanh ghi cho phép ngắt, các thnh ghi của các bộ định thời..là các đối tượng cần được khởi tạo trước khi chúng được các tiến trình sử dụng nh− một tài nguyên hệ thống. Tiến trình này là một tiến trình khá đặc biệt, do thao tác khởi tạo chỉ cần một lần nên tiến trình này cũng chỉ cần chạy một lần duy nhất. Để khắc phục vấn đề này, chương trình con phục vụ ngắt có thể đặt ở vị trí khác trong bộ nhớ và ở vị trí của các véc tơ ngắt có thể đặt câu lệnh để nhảy tới các điểm đặt ch−ơng trình con phục vụ ngắt (hình 4.17).
Ngoài các vùng dùng để chứa các chương trình con phục vụ ngắt ra, vùng nhớ còn lại sẽ thuộc về mã của các ch−ơng trình t−ơng ứng với các tiến trình. Cũng t−ơng tự nh− bộ nhớ ch−ơng trình, bộ nhớ dữ liệu cũng phải đ−ợc tổ chức thành các vùng khác nhau để tránh việc chồng chéo lên nhau khi thực hiện.