Projekt (PDF)




File information


Author: Krzysiek

This PDF 1.5 document has been generated by Microsoft® Word 2010, and has been sent on pdf-archive.com on 19/11/2015 at 18:19, from IP address 178.36.x.x. The current document download page has been viewed 387 times.
File size: 384.68 KB (2 pages).
Privacy: public file










File preview


Projekt: Zarządzanie procesami / Wzajemne wykluczanie
Napisad program sterujący w czasie rzeczywistym systemem technologicznym przedstawionym na rysunku 1.
Celem algorytmu sterującego jest nalewanie płynu do butelek o odpowiednich parametrach (PH = 7 0,3,
temp=30
2 , pojemnośd L=5 0,25 kg).
Celem projektu jest zarządzanie procesami sterującymi czterema zaworami oraz regulacją temperatury za pomocą
oddzielnych procesów pracujących współbieżnie.
W programie pr4a.c utworzono odpowiednią liczbę wątków symulujących poziom, PH oraz temperaturę cieczy w
zbiorniku, poziom cieczy w butelce oraz informację o prawidłowym położeniu butelki pod zaworem napełniania
butelek.
Dostęp do tych informacji możliwy jest poprzez pamięd współdzieloną w postaci struktury:
typedef struct {
// stan czynnika:
float Temp, Poziom, PH, m;
// stan regulatorow:
bool Zawor1, Zawor2, Zawor3;
float Grzejnik;
// stan beczek:
bool Beczka_OK, NowaBeczka;
// sterowanie programem:
pthread_mutex_t mutex;
bool KONIEC_PROG;

} bufor_t;

gdzie:
float Poziom, PH, Temp
bool Zawor1, Zawor2, Zawor3

-

poziom, PH oraz temperatura cieczy w zbiorniku,

-

float Grzejnik
float m
bool Beczka_OK

-

bool NowaBeczka

-

pthread_mutex_t mutex

-

bool KONIEC_PROG

-

sterowanie zaworami rurociągu A, rurociągu B oraz zawór
butelkowania
regulacja mocy grzejnika (wartośd z zakresu 0 – 1)
poziom cieczy w butelce,
czujnik prawidłowego położenia butelki pod zaworem
napełniania butelek
uruchomienie procesu przesunięcia butelek (nowa butelka
jest gotowa do napełniania dopiero, gdy zmienna
Beczka_OK przyjmie wartośd TRUE)
mutex wyłączności odczytu i zapisu zmiennych w pamięci
współdzielonej
zmienna sygnalizująca koniec programu

Program powinien realizowad następujące zadania:
1. Program powinien składad się z czterech osobnych procesów sterujących zmiennymi: Zawor1, Zawor2, Grzejnik
oraz Zawor3 wraz NowaBeczka
2. Procesy mogą pobierad informacje o stanie czynnika i ustawiad stan zaworów rurociągów (zmienne Poziom, PH,
Temp, Zawor1, Zawor2, Zawor3, Grzejnik, m, Beczka_OK, NowaBeczka) pod warunkiem wyłączności tej operacji
(należy zająd mutex na czas tej operacji).
3. Procesy sterowania powinny zakooczyd swoje działanie po ustawieniu zmiennej KONIEC_PROG (zmienna
ustawiana jest po naciśnięciu klawisza ‘q’ w oknie symulatora).

Program należy napisad w postaci 2 osobnych programów: symulator (pr4a.c) oraz sterownik uruchamiający 4
procesy: (w nawiasie podane są funkcje, jakie należy wykorzystad do pisania poszczególnych programów)
Zawór Z1: (fork, szeregowanie karuzelowe, priorytet dobrad)
Zawór Z2: (fork, szeregowanie FIFO, priorytet dobrad)
Grzejnik: (exec, szeregowanie sporadyczne, priorytet N= dobrad, L= dobrad, B/T = 20%)
Zawór Z3: (spawn, szeregowanie karuzelowe, priorytet dobrad)
Każdy proces po wykonaniu odczytu i ustaleniu stanu zaworów powinien zwolnid procesor (funkcja int
sched_yield(void);)

Rys 1- model procesu

Kompilację programu pr4a.c ze względu na wykorzystane biblioteki należy wykonad następującą instrukcją:
gcc pr4a.c -lncurses -lm -o pr4a






Download Projekt



Projekt.pdf (PDF, 384.68 KB)


Download PDF







Share this file on social networks



     





Link to this page



Permanent link

Use the permanent link to the download page to share your document on Facebook, Twitter, LinkedIn, or directly with a contact by e-Mail, Messenger, Whatsapp, Line..




Short link

Use the short link to share your document on Twitter or by text message (SMS)




HTML Code

Copy the following HTML code to share your document on a Website or Blog




QR Code to this page


QR Code link to PDF file Projekt.pdf






This file has been shared publicly by a user of PDF Archive.
Document ID: 0000316023.
Report illicit content