Embedded Systems Programming
|
|
- Halina Marciniak
- 6 lat temu
- Przeglądów:
Transkrypt
1 Embedded Systems Programming Device drivers - interrupts and timers Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG April 7, 2019
2 Przerwania Przerwanie - sygnał powodujacy zmianę przepływu sterowania, niezależnie od aktualnie wykonywanego programu. Pojawienie się przerwania powoduje wstrzymanie aktualnie wykonywanego programu i wykonanie przez procesor kodu procedury obsługi przerwania (ang. interrupt handler). procedura ta wykonuje czynności zwiazane z obsługa przerwania i na końcu wydaje instrukcję powrotu z przerwania, która powoduje powrót do programu realizowanego przed przerwaniem. Przerwania a odpytywanie (polling) podczas odpytywania procesor sprawdza wszystkie dostępne urzadzenia w przypadku przerwania procesor zajmuje się sprzętem tylko wtedy, gdy sprzęt żada jakiejś usługi GUT Intel 2015/16 2/30
3 Przerwania Przerwanie przekazywane jest jako sygnał elektroniczny od urzadzenia połaczonego z systemem komputerowym Po otrzymaniu przerwania kontroler przerwań wysyła sygnał do procesora. Procesor wykrywa ten sygnał i przerywa wykonywanie bieżacego zadania, aby obsłużyć przerwanie. Procesor może następnie powiadomić system operacyjny, że wystapiło przerwanie, a system operacyjny może odpowiednio obsłużyć przerwanie. GUT Intel 2015/16 3/30
4 Przerwania Obsługa przerwań jest jednym z najbardziej wrażliwych zadań wykonywanych przez jadro i musi spełniać następujace wymagania: Urzadzenia sprzętowe generuja przerwania asynchronicznie (w odniesieniu do zegara procesora). Przerwania moga nadejść w dowolnym momencie. Przerwanie może nadejść w momencie, gdy jadro obsługuje inne przerwanie. Kod jadra może zawierać krytyczne regiony, których wykonywanie nie może być przerwane. Takie krytyczne regiony musza być jak najbardziej ograniczone. GUT Intel 2015/16 4/30
5 Przerwania a wyjatki Przerwanie (Interrupts): asynchroniczne, generowane przez sprzęt Wyjatki (Exceptions): synchroniczne, generowane przez procesor wyjatki występuja synchronicznie w stosunku do zegara procesora; często nazywane sa przerwami synchronicznymi wyjatki sa wytwarzane przez procesor podczas wykonywania instrukcji albo w odpowiedzi na bład programistyczny (np. dzielenie przez zero) wiele architektur procesorów obsługuje wyjatki w sposób podobny do przerwań, dlatego infrastruktura jadra do obsługi tych dwóch rodzajów zdarzeń jest podobna. Wywołania systemowe (System calls) - rodzaj wyjatkowów w architekturze x86. przerwanie programowe (software interrupt), które powoduje uruchomienie specjalnej części kodu jadra (system call handler) GUT Intel 2015/16 5/30
6 Przerwania maskowalne / niemaskowalne Przerwania maskowalne wszystkie przerwania (Interrupt Requests, IRQs) zgłaszane przez urzadzenia wejścia/wyjścia moga się znajdować w dwóch możliwych stanach: maskowane i niemaskowane przerwanie maskowane jest ignorowane przez CPU Przerwania niemaskowalne maksymalnie kilka krytycznych w całym systemie komputerowym sa zawsze rozpoznawane i obsługiwane przez CPU GUT Intel 2015/16 6/30
7 Wyjatki Falts np. Divide by zero, Page Fault, Segmentation Fault. Traps zgłoszone natychmiast po wykonaniu instrukcji powodujacej wyjatek (jak breakpoint) Aborts do zgłaszania poważnych błędów, takich jak awarie sprzętu i nieprawidłowe lub niespójne wartości w tabelach systemowych. GUT Intel 2015/16 7/30
8 Obsługa przerwań Każdy sterownik powinien zarejestrować w systemie operaccyjnym swoje procedury obsługi przerwań Interrupt handler lub interrupt service routine (ISR) - funkcja uruchamiana przez jadro systemu w odpowiedzi na wystapienie konkretnego przerwania każde urzadzenie generujace przerwanie ma przypisana funkcję obsługi przerwania funkcja obsługi przerwania to część sterownika urzadzenia W Linuksie procedury obsługi przerwań sa normalnymi funkcjami C, które posiadajac konkretne prototypy, dzięki czemu jadro może przekazać informacje o programie obsługi w standardowy sposób Jadro wywołuje procedury obsługi przerwań w odpowiedzi na przerwania i działa w specjalnym kontekście przerwań (kontekst atomowy). GUT Intel 2015/16 8/30
9 Obsługa przerwań Przerwanie może wystapić w dowolnym momencie -> obsługa przerwania może być wykonana w dowolnym momencie. Konieczne jest, aby program obsługi działał szybko, aby jak najszybciej wznowić wykonywanie przerwanego kodu. Jest to istotne z punktu widzenia: sprzętu: system operacyjny powinien obsłużyć przerwanie z jak najmniejszym opóźnieniem reszty systemu: program obsługi przerwań powinien wykonywać się w jak najkrótszym czasie. minimalne zadanie obsługi przerwań polega na potwierdzeniu odbioru przerwania przez system komputerowy. GUT Intel 2015/16 9/30
10 Kontekst procesu a kontekst przerywania Kontekst procesu (Process context) - kod jadra obługujacy wywołania systemowe spowodowane aplikacja użytkownika Kontekst przerwania (Interrupt context) - obsługa przerwań (asynchroniczna) Kontekst procesu nie jest zwiazany z kontekstem przerwania Kod jadra uruchomiony w kontekście procesu może zostać wywłaszczony Kontekst przerwania nie może zostań wywłaszczony GUT Intel 2015/16 10/30
11 Kontekst procesu a kontekst przerywania Kod wykonywany w kontekście przerwania nie może: zostać uśpiony przejać mutex wykonywać czasochłonne zadania uzyskać dostęp do pamięci wirtualnej przestrzeni użytkownika Obsługa przerwania powinna być wykonywana bardzo szybko Podczas uruchomienia obsługi przerwania inne przerwania nie sa obsługiwane (chyba że o wyższym priorytecie). Przerwanie o niższym priorytecie może zostać pominięte. Aby wyeliminować ten problem, przetwarzanie przerwań jest podzielone na dwie części: połowa górna i połowa dolna (top halves and bottom halves). GUT Intel 2015/16 11/30
12 Kontekst procesu a kontekst przerywania Połowa górna (Top half) funkcja obsługi przerwania uruchamiana natychmiast po wystapieniu przerwania wykonuje tylko krytyczne zadania (jak np. przyjęcie zgłoszenia o przerwaniu czy restart systemu) Połowa dolna (Bottom half) przetwarzanie danych powiadamia połowę górna kodu o nowych przerwaniach GUT Intel 2015/16 12/30
13 Pisanie funkcji obsługi przerwania - podstawowe zasady 1. Obsługa przerwań nie może wejść w stan uśpienia 2. Nie używaj muteksów w obsłudze przerwań. Zamiast tego używaj blokady z aktywnym oczekiwaniem (spinlock lock) 3. Funkcja obsługi przerwanianie może wymieniać danych z przestrzenia użytkownika 4. Funkcja obsługi przerwania powinna być wykonana tak szybko, jak to możliwe. Podziel implementację na połowę górna i dolna. 5. Gdy program obsługi przerwania już działa, odpowiadajace mu przerwanie musi być wyłaczone, dopóki program obsługi nie zostanie zakończony. 6. Procedury obsługi przerwań mog a zostać przerwane przez funkcje obsługi przerwań o wyższym priorytecie. GUT Intel 2015/16 13/30
14 Przerwania - API request_irq() - rejestracja IRQ prototyp: request_irq ( unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev_id) parametry: irq: numer IRQ handler: funkcja obsługi przerwania. Zwraca typ danych irq_handler_t. Wartość zwracana IRQ_HANDLED = przerwarzanie zakończone poprawnie. Wartość zwracana IRQ_NONE = przetarzanie zakończone błędem. flagi: 0 lub jedna z masek bitowych zdefiniowanych w linux/interrupt.h. name: nazwa urzadzenia zwiazanego z IRQ GUT Intel 2015/16 14/30
15 Przerwania - API Parametry request_irq - c.d. dev_id: IRQ współdzielone przez wiele urzadzeń Gdy program obsługi przerwań zostanie zwolniony, dev zapewnia unikalny plik cookie, aby umożliwić usunięcie tylko żadanego programu obsługi przerwań z linii przerwań. Bez tego parametru jadro nie wiedziałoby, który program obsługi usunać dla danej linii przerwań. NULL jeśli przerwanie nie jest współdzielone request_irq() nie może być wołana w konkteście przerwań, bo jest funkcja blokujac a! GUT Intel 2015/16 15/30
16 Przerwania - API Flagi w linux/interrupt.h: IRQF_DISABLED jeśli ustawiona - jadro wyłacza wszystkie przerwania podczas wykonywania tego programu obsługi przerwań większość procedur obsługi przerwań nie ustawia tej flagi, ponieważ wyłaczenie wszystkich przerwań jest zła praktyka. Jego użycie jest zarezerwowane dla przerwań wrażliwych na wydajność, które wykonuja się szybko. IRQF_SAMPLE_RANDOM określa, że przerwania generowane przez to urzadzenie powinny przyczyniać się tzw. entropii jadra (entropia jadra zapewnia prawdziwie losowe liczby pochodzace z różnych zdarzeń losowych) nie powinna być ustawiona dla urzadzen geenrujacych przerwania w sposób przewidywalny (jak zegar systemowy ) GUT Intel 2015/16 16/30
17 Przerwania - API Flagi w linux/interrupt.h: IRQF_TIMER - obsługa przerwania dla zegara systemowego IRQF_SHARED określa, że linia przerwania może być współdzielona przez wiele procedur obsługi przerwań każda funkcja obłsługi tego samego przerwania musi określić tę flagę GUT Intel 2015/16 17/30
18 Przerwania - API free_irq() - zwalnia IRQ zarejestrowane przez request_irq() prototyp: free_irq( unsigned int irq, void *dev_id) parametery: irq: numer IRQ dev_id: ostatni parametr request_irq. Jeśli podana linia przerwania nie jest współdzielona, funkcja usuwa moduł obsługi i wyłacza linię. Jeśli linia przerwania jest współdzielona, procedura obsługi zidentyfikowana przez dev_id jest usuwana, ale linia przerwania jest wyłaczona tylko wtedy, gdy ostatni program obsługi zostanie usunięty. Wywołanie free_irq () musi być wykonane z kontekstu procesu. GUT Intel 2015/16 18/30
19 Functions related to interrupt disable_irq(unsigned int irq) - uniemożliwia obługę IRQ enable_irq(unsigned int irq) - wznawia możliwość obsługi IRQ in_irq() - zwraca TRUE jeśli trwa obsługa przerwania in_interrupt() zwraca TRUE jeśli trwa obsługa przerwania lub procedura obsługi dolnej połowy GUT Intel 2015/16 19/30
20 Timers Timer - specjalny typ zegara odmierzajacy interwały czasowe Dwa typy timer-ów: stopwatch - timer który odmierza czas od zera timer - timer, który odmierza czas w dół od zadanej wartości W Linuksie jadro śledzi przepływ czasu za pomoca przerwań czasowych Przerwania czasowe sa generowane w regularnych odstępach czasowych za pomoca zegara systemowego Za każdym razem, gdy wystapi przerwanie timera, wartość wewnętrznego licznika jadra jest zwiększana Licznik jest inicjowany na 0 przy starcie systemu, więc reprezentuje liczbę taktów zegara od ostatniego rozruchu. GUT Intel 2015/16 20/30
21 Timers Zastosowania timer-ów: odpytywanie urzadzenia poprzez sprawdzanie jego stanu w regularnych odstępach czasu, gdy sprzęt nie może uruchomić przerwania użytkownik chce wysłać pewna wiadomość do innego urzadzenia w regularnych odstępach czasu wyślij bład, gdy w danym okresie nie doszło do pewnych działań GUT Intel 2015/16 21/30
22 Kernel Timer API nagłówek: <linux/timer.h> Timer opisany jest przez strukturę timer_list zdefiniowana w <linux/timer.h>: struct timer_list { /*... */ unsigned long expires ; void (* function )( unsigned long ); unsigned long data ; }; expires - czas wygaśnięcia timera (w jiffies) function() jest wołana w momencie okreslonym przez expires jiffy - zdefiniowany przez stała HZ. Różne platformy sprzętowa maja różna HZ. HZ - ile razy jiffy będzie zwiększone podczas 1 sekundy historycznie jadro Linuxa miało HZ=100 (jiffy było zwiększane raz na 10 ms) od wersji jadra 2.4: HZ = 1000 dla platformy i386 od wersji jadra : HZ = 250 dla i386 GUT Intel 2015/16 22/30
23 Kernel Timer API Uruchomienie timer-a: init_timer void fastcall init_timer ( struct timer_list * timer ); init_timer musi być wywołana przed wywołaniem każdej innej funkcji zegara wcześniej należy zdefiniować callback function w strukturze timer_list GUT Intel 2015/16 23/30
24 Kernel Timer API Uruchomienie timer-a: setup_timer void setup_timer ( timer, function, data ); ustawia dane w strukturze timer_list i inicjalizuje timer zalecana w większości przypadków GUT Intel 2015/16 24/30
25 Kernel Timer API Uruchomienie timer-a: DEFINE_TIMER DEFINE_TIMER ( _name, _function, _expires, _data ) nie wymaga struktury timer_list. Jadro samo utworzy ta strukturę o nazwie _name GUT Intel 2015/16 25/30
26 Kernel Timer API - start a timer add_timer - rozpoczyna działanie timer-a void add_timer ( struct timer_list * timer ); GUT Intel 2015/16 26/30
27 Modifying Kernel Timer s timeout mod_timer - zmienia czas timer-a int mod_timer ( struct timer_list * timer, unsigned long expires ); Zwraca 0, jeśli zmieniany timer jest nieaktywny, 1 - jeśli jest aktywny. Działanie identyczne do: del_timer ( timer ); timer - > expires = expires ; add_timer ( timer ); GUT Intel 2015/16 27/30
28 Kernel Timer API - zatrzymanie timer-a del_timer int del_timer ( struct timer_list * timer ); zwraca 0, jeśli timer był nieaktywny, 1 - jeśli był aktywny del_timer_sync int del_timer_sync ( struct timer_list * timer ); zatrzymuje timer, ale czeka, aż funkcja obsługi zakończy działanie zwraca 0, jeśli timer był nieaktywny, 1 - jeśli był aktywny GUT Intel 2015/16 28/30
29 Kernel Timer API - sprawdzenie stanu timer-a timer_pending - sprawdza, czy timer aktualnie działa int timer_pending ( const struct timer_list * timer ); Zwraca 0, jeśli timer nie działa, 1 - jeśli działa. GUT Intel 2015/16 29/30
30 Bibliography GUT Intel 2015/16 30/30
Przerwania, polling, timery - wykład 9
SWB - Przerwania, polling, timery - wykład 9 asz 1 Przerwania, polling, timery - wykład 9 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Przerwania, polling, timery - wykład 9 asz 2 Metody obsługi zdarzeń
Metody obsługi zdarzeń
SWB - Przerwania, polling, timery - wykład 10 asz 1 Metody obsługi zdarzeń Przerwanie (ang. Interrupt) - zmiana sterowania, niezależnie od aktualnie wykonywanego programu, spowodowana pojawieniem się sygnału
PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.
PRZERWANIA 1. Obsługa zdarzeń, odpytywanie i Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego. Istnieją dwie metody pozyskania informacji o zdarzeniach: 1. Cykliczne
Mechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Współpraca z układami peryferyjnymi i urządzeniami zewnętrznymi Testowanie programowe (odpytywanie, przeglądanie) System przerwań Testowanie programowe
Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.2
Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.2 Architektura - Procesy Proces program załadowany do pamięci; identyfikowany przez id procesu, zwykle nazywany
PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1
PRZERWANIA 1. Obsługa zdarzeń poprzez Obsługa polega na przerwaniu aktualnie wykonywanego procesu i wykonaniu procedury przypisanej danemu zdarzeniu gdy takie zdarzenie zajdzie. Procedura nazywa się procedurą
Jedrzej Ułasiewicz Komputerowe systemy sterowania 1
Jedrzej Ułasiewicz Komputerowe systemy sterowania 1 1 Przerwania 1.1 Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.
Działanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania
Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:
Współpraca mikroprocesora z urządzeniami zewnętrznymi Urządzenia wejścia-wyjścia, urządzenia których zadaniem jest komunikacja komputera z otoczeniem (zwykle bezpośrednio z użytkownikiem). Do najczęściej
Prezentacja systemu RTLinux
Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach
Przerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia
Przerwania w systemie mikroprocesorowym 1 Obsługa urządzeo wejścia/wyjścia W każdym systemie mikroprocesorowym oprócz pamięci programu i pamięci danych znajduje się szereg układów lub urządzeo wejścia/wyjścia,
Laboratorium 7: Liczniki czasu (jedne zajęcia) dr inż. Arkadiusz Chrobot
Laboratorium 7: Liczniki czasu (jedne zajęcia) dr inż. Arkadiusz Chrobot 22 kwietnia 2017 Spis treści Wprowadzenie 1 1. Liczniki czasu niskiej rozdzielczości 1 1.1. Opis API.............................................
Działanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć
Działanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie
Działanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej
Architektura i administracja systemów operacyjnych
Architektura i administracja systemów operacyjnych Wykład 1 Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Informacje wstępne Prowadzący
Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)
Struktury systemów komputerowych Architektura systemu komputerowego Działanie systemu komputerowego Struktura we/wy Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Architektura 2.1 2.2 Działanie
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: QNX Neutrino Interrupts Mariusz Rudnicki 2016 Wstęp W QNX Neutrino wszystkie przerwania sprzętowe przechwytywane są przez jądro systemu. Obsługę
Wykład 5 Przerwania i wywołania systemowe. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB
Wykład 5 Przerwania i wywołania systemowe Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Porty wejścia-wyjścia Intel x86 posiada 65536 portów wejścia-wyjścia, do których dostęp możliwy
Wątki jądra. Maciej Szwaja
Wątki jądra Maciej Szwaja Czym są wątki jądra? Lekkie procesy, działające asynchronicznie w przestrzeni jądra (podobnie jak zwykłe wątki w przestrzeni użytkownika), niezwiązane z żadnym procesem użytkownika
Część I - Sterownik przerwań 8259A i zegar/licznik 8253
Programowanie na poziome sprzętu opracowanie pytań Część I - Sterownik przerwań 8259A i zegar/licznik 8253 Autor opracowania: Marcin Skiba cines91@gmail.com 1. Jakie są dwie podstawowe metody obsługi urządzeń
Inżynieria Wytwarzania Systemów Wbudowanych
GUT Intel 2015/16 1/30 Inżynieria Wytwarzania Systemów Wbudowanych Wykład 3 Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG October 18, 2018 Dobre praktyki GUT Intel 2015/16 2/30 Przenośność
Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.
Procesy Proces (zwany też zadaniem) jest jednostką aktywną, kontrolowaną przez system operacyjny i związaną z wykonywanym programem. Proces ma przydzielone zasoby typu pamięć (segment kodu, segment danych,
Systemy operacyjne system przerwań
system przerwań przerwanie: procesor zawiesza wykonanie bieżącego zadania i przechodzi do obsługi przerwania przerwania: maskowalne i niemaskowalne wektor przerwań adres (tablica adresów) kodu obsługi
Systemy Operacyjne sprzęt
Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 6 października 2015 Plan wykładu 1 Scenariusze obsługi wejścia-wyjścia 2 Sposób działania 3 Dualny tryb pracy procesora Ochrona pamięci
Wybrane zagadnienia elektroniki współczesnej
Wybrane zagadnienia elektroniki współczesnej y pracy, Marika Kuczyńska Fizyka Techniczna IV rok 20-03-2013, AGH prezentacji y pracy 1 2 y pracy 3 4 5 6 Jednostka wykonawcza, instrukcje (Marika) Rodzina
Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych
Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów
Budowa systemów komputerowych
Budowa systemów komputerowych Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Współczesny system komputerowy System komputerowy składa
Architektura komputerów. Układy wejścia-wyjścia komputera
Architektura komputerów Układy wejścia-wyjścia komputera Wspópraca komputera z urządzeniami zewnętrznymi Integracja urządzeń w systemach: sprzętowa - interfejs programowa - protokół sterujący Interfejs
Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego
Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować
Architektura systemu komputerowego
Architektura systemu komputerowego Klawiatura 1 2 Drukarka Mysz Monitor CPU Sterownik dysku Sterownik USB Sterownik PS/2 lub USB Sterownik portu szeregowego Sterownik wideo Pamięć operacyjna Działanie
Wykład 3: Implementacja programów wbudowanych
Systemy wbudowane Wykład 3: Implementacja programów wbudowanych Problemy implementacji oprogramowania wbudowanego Szeregowanie zadań System operacyjny Obsługa przerwań 10/16/2010 S.Deniziak:Systemy wbudowane
SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)
(opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie
Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin
Podstawy techniki cyfrowej Układy wejścia-wyjścia mgr inż. Bogdan Pietrzak ZSR CKP Świdwin 1 Układem wejścia-wyjścia nazywamy układ elektroniczny pośredniczący w wymianie informacji pomiędzy procesorem
Futex (Fast Userspace Mutex) Łukasz Białek
Futex (Fast Userspace Mutex) Łukasz Białek Futex informacje podstawowe Stworzony w 2002 roku przez Hubertusa Franke, Matthew Kirkwooda, Ingo Molnára i Rustiego Russella. Jest mechanizmem w Linuxie, który
Linux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013
Linux: Procesy Systemy Operacyjne Mateusz Hołenko 26 marca 2013 Plan zajęć Co to jest sygnał? Polecenia systemowe Sygnały Zadania Mateusz Hołenko Linux: Procesy [2/18] Co to jest proces? Co to jest proces?
Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska
Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów Iwona Kochańska Mechanizm synchronizacji wątków/procesów Wykorzystanie semaforów zapobiega niedozwolonemu wykonaniu
MIKROPROCESORY architektura i programowanie
SYSTEM PRZERWAŃ (dla µ-kontrolerów rodziny 51) pomysł przerwań zewnętrznych i programowych to kolejny, genialny fundament konstrukcji procesorów cyfrowych Naturalnie sekwencyjne wykonywanie programu może
Budowa Mikrokomputera
Budowa Mikrokomputera Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Podstawowe elementy komputera Procesor Pamięć Magistrala (2/16) Płyta główna (ang. mainboard, motherboard) płyta drukowana komputera,
4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
XMEGA. Warsztaty CHIP Rok akademicki 2014/2015
XMEGA Warsztaty CHIP Rok akademicki 2014/2015 Plan warsztatów: Wprowadzenie do Atmel Studio (20/11/2014) Porty I/O (20/11/2014) Przerwania (27/11/2014) Wykorzystana literatura: [1] Dokumentacja ATMEL(www.atmel.com):
Wykład 13. Linux 2.0.x na maszynach SMP. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB
Wykład 13 Linux 2.0.x na maszynach SMP Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Architektura SMP Skrót od słów Symmetric Multiprocessing (Symetryczne Przetwarzenie Wieloprocesorowe)
Architektura komputerów
Architektura komputerów Tydzień 11 Wejście - wyjście Urządzenia zewnętrzne Wyjściowe monitor drukarka Wejściowe klawiatura, mysz dyski, skanery Komunikacyjne karta sieciowa, modem Urządzenie zewnętrzne
Podstawy Informatyki Układ przerwań
maszyny W Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu maszyny W 1 Wprowadzenie Przerwania we współczesnych procesorach Rodzaje systemów przerwań Cykl rozkazowy
Wprowadzenie do systemów operacyjnych
SOE - Systemy Operacyjne Wykład 1 Wprowadzenie do systemów operacyjnych dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW System komputerowy Podstawowe pojęcia System operacyjny
Układy czasowo-licznikowe w systemach 80x86
Układy czasowo-licznikowe w systemach 80x86 Semestr zimowy 2014/2015, WIEiK-PK 1 Układy czasowo-licznikowe w systemach 80x86 W komputerach osobistych oprogramowanie w szczególności, jądro systemu musi
5. Model komunikujących się procesów, komunikaty
Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć
Struktury systemów operacyjnych
Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS
Inżynieria Wytwarzania Systemów Wbudowanych
GUT Intel 2015/16 1/40 Inżynieria Wytwarzania Systemów Wbudowanych Wykład 1 Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG October 5, 2018 Potrzeba standaryzacji Tworzenie kodu źródłowego
Kernel Kompilacja jądra
Kernel Kompilacja jądra systemu Co to jest jądro systemu operacyjnego Jądro systemu operacyjnego jest rozpowszechniane na licencji GNU General Public License (GPL) określonej przez konsorcjum Free Software
Mariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.2
Mariusz Rudnicki mariusz.rudnicki@eti.pg.edu.pl PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.2 Architektura SCR - Procesy Proces program załadowany do pamięci; identyfikowany przez id procesu,
Linux Kernel III. Character devices
Linux Kernel III Character devices Urządzenia systemu Linux (I) Character device Block device Network device Do urządzenia piszemy jak do pliku, Dozwolone działania: open, close, read, write, Np. /dev/tty1.
Urządzenia wejścia-wyjścia
Urządzenia wejścia-wyjścia Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Klasyfikacja urządzeń wejścia-wyjścia Struktura mechanizmu wejścia-wyjścia (sprzętu i oprogramowania) Interakcja
Hardware mikrokontrolera X51
Hardware mikrokontrolera X51 Ryszard J. Barczyński, 2016 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Hardware mikrokontrolera X51 (zegar)
Kompilator języka C na procesor 8051 RC51 implementacja
Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub
Architektura Systemów Komputerowych
Architektura Systemów Komputerowych Wykład 12: Zarządzanie zasobami komputera. Sytuacje wyjątkowe. Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Zarządzanie
Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj
Systemy operacyjne wykład dr Marcin Czarnota laboratorium mgr Radosław Maj Plan wykładów 1. Wprowadzenie, 2. Procesy, wątki i zasoby, 3. Planowanie przydziału procesora, 4. Zarządzanie pamięcią operacyjną,
Współbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++
Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
1. Timery i zdarzenia
Sygnały 1 1. Timery i zdarzenia 1.1 Funkcje i programowanie timerów Jedną z najczęściej spotykanych funkcji systemu jest generowanie zdarzeń które w ustalonym czasie uruchomić mają określone akcje systemu.
Wykład 12. Zarządzanie pamięcią (część III) oraz urządzenia sieciowe. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB
Wykład 12 Zarządzanie pamięcią (część III) oraz urządzenia sieciowe Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Funkcja mmap na pliku specjalnym Funkcje systemową mmap możemy również
Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów
Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście
PhysX Visual Debugger. Tomasz Gańko
PhysX Visual Debugger Tomasz Gańko Co to jest Nvidia PhysX? NVIDIA PhysX to wydajny silnik fizyczny, zoptymalizowany m.in. do działania na równoległych procesorach kart graficznych. Jego głównym przeznaczeniem
Systemy wbudowane. Systemy operacyjne czasu rzeczywistego
Systemy wbudowane Systemy operacyjne czasu rzeczywistego Definicje System czasu rzeczywistego to taki, w którym wynik przetwarzania nie zależy tylko i wyłącznie od jego logicznej poprawności, ale również
Przerwania w systemie mikroprocesorowym
Przerwania w systemie mikroprocesorowym 1 Obsługa urządzeń wejścia/wyjścia W każdym systemie mikroprocesorowym oprócz pamięci programu i pamięci danych znajduje się szereg układów lub urządzeń wejścia/wyjścia,
Mikroprocesor Operacje wejścia / wyjścia
Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych
Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces
Procesy pojęcia podstawowe 1 1.1 Jak kod źródłowy przekształca się w proces W języku wysokiego poziomu tworzy się tak zwany kod źródłowy który po zapisaniu będzie plikiem z programem źródłowym. Plik źródłowy
1.1 Definicja procesu
1 Procesy pojęcia podstawowe 1 1.1 Definicja procesu Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
DOS COMMAND.COM. Rys. 2. Główne moduły programowe systemu operacyjnego DOS. Interpreter poleceń. Rys. 3. Warstwowa struktura systemu DOS
System Operacyjny DOS DOS (ang. Disc Operating System) jest to 16-bitowy jednozadaniowy system operacyjny. Głównym zadaniem systemu jest obsługa plików w systemie FAT (ang. File Allocation Table) i wsparcie
Architektura mikroprocesorów z rdzeniem ColdFire
Architektura mikroprocesorów z rdzeniem ColdFire 1 Obsługa sytuacji wyjątkowych (Exception Processing) 2 Wyjątki Wyjątek (ang. exception) mechanizm kontroli przepływu danych występujący w mikroprocesorach
Struktura systemów komputerowych
Struktura systemów komputerowych Działanie systemu komputerowego Struktury WE/WY Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Ogólna architektura systemu Wykład 6, Systemy operacyjne (studia
Architektury systemów czasu rzeczywistego RTOS. Wykonał: Bartłomiej Bugański
Architektury systemów czasu rzeczywistego RTOS Wykonał: Bartłomiej Bugański System operacyjny czasu rzeczywistego ( ang. Real-Time Operating System - RTOS) to komputerowy system operacyjny, który został
Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie drugie (jedne zajęcia) Temat: Procesy i sygnały w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Budowa procesu
Systemy operacyjne i sieci komputerowe Szymon Wilk System operacyjny 1
i sieci komputerowe Szymon Wilk System operacyjny 1 1. System operacyjny (ang. OS Operating System) to oprogramowanie nadzorujące pracę komputera. Programy, które uruchamia użytkownik na komputerze z systemem
4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Inżynieria Wytwarzania Systemów Wbudowanych
GUT Intel 2015/16 1/19 Inżynieria Wytwarzania Systemów Wbudowanych Wykład 4b Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG October 18, 2018 Wzorce projektowe Wzorzec projektowy - ogólne
INSTRUKCJA OBSŁUGI. Przekaźnik czasowy ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie
INSTRUKCJA OBSŁUGI 1. Zastosowanie Przekaźnik czasowy ETM jest zadajnikiem czasowym przystosowanym jest do współpracy z prostownikami galwanizerskimi. Pozwala on załączyć prostownik w stan pracy na zadany
CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)
PCI Industrial Computers Manufacturers Group (PICMG) nowy standard; nowa jakość komputerów realizujących krytyczne zadania w systemach pracujących w trudnych warunkach; Baza specyfikacji: format kaset
Wykład 6 Planista procesora funkcja schedule. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB
Wykład 6 Planista procesora funkcja schedule Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Typowe punkty wywołania planisty Procedura sleep_on (usypanie procesu). Powrót z wywołania
Metody optymalizacji soft-procesorów NIOS
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011
Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1
Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego
Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14
Jadro Linux 2.6 a zadania czasu rzeczywistego Artur Lewandowski al167167@students.mimuw.edu.pl Jądro Linux 2.6 p.1/14 1 Wprowadzenie Linux 2.6 wprowadza dużo nowych cech polepszajacych wydajność zadań
Instrukcja programowania sterownika temperatury Piec APE 800
25-551 Kielce; ul. Warszawska 229 tel. (+48 41) 368-59-59, 331-62-89 www.argenta.pl argenta@argenta.pl Instrukcja programowania sterownika temperatury Piec APE 800 Kielce 2005 Data utworzenia 20 stycznia
Kurs Zaawansowany S7. Spis treści. Dzień 1
Spis treści Dzień 1 I Konfiguracja sprzętowa i parametryzacja stacji SIMATIC S7 (wersja 1211) I-3 Dlaczego powinna zostać stworzona konfiguracja sprzętowa? I-4 Zadanie Konfiguracja sprzętowa I-5 Konfiguracja
Jądro systemu operacyjnego
Jądro systemu operacyjnego Jądro (ang. kernel) jest to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Zapewnia ono usługi systemowe takie jak: komunikacja między
Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński
Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński Plan Prezentacji. Programowanie ios. Jak zacząć? Co warto wiedzieć o programowaniu na platformę ios? Kilka słów na temat Obiective-C.
Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt
Architektura komputera Architektura von Neumanna: Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt Zawartośd tej pamięci jest adresowana przez wskazanie miejsca, bez względu
Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI
Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją
OPROGRAMOWANIE STEROWNIKA ROLET UNIV
1. Cechy Oprogramowanie sterownika rolet z silnikiem AC UNIV 3.7.0.x Umożliwia sterowanie roletą przy pomocy jednego (start), dwóch (góra/stop, dół/stop) lub trzech przycisków sterujących (góra, dół, stop)
Systemy operacyjne III
Systemy operacyjne III WYKŁAD 3 Jan Kazimirski 1 Współbieżność 2 Współbieżność Wielozadaniowość - zarządzanie wieloma procesami w ramach jednego CPU Wieloprocesorowość - zarządzanie wieloma zadaniami w
Komputery przemysłowe i systemy wbudowane
Komputery przemysłowe i systemy wbudowane Systemy operacyjne w systemach wbudowanych 2 KSEM WETI PG October 7, 2015 System operacyjny System operacyjny (OS) - opcjonalny w systemach wbudowanych. zbiór
J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego
J. Ułasiewicz Komputerowe systemy sterowania 1 1 Architektura PC 1.1. Ogólna struktura systemu jednoprocesorowego Już systemy jednoprocesorowe mogą być środowiskiem, w którym wykonywane jest wiele programów
Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu
Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Etapy uruchamiania systemu 010 2 Systemy operacyjne i sieci komputerowe. Część 010. I. Etapy uruchamiania systemu Windows
Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008
Jadro monolityczne vs. mikrojadro 9 grudnia 2008 Jadro monolityczne vs. mikrojadro Jadro monolityczne vs. mikrojadro Jadro monolityczne vs. mikrojadro Jadro monolityczne Aplikacje użytownika wywołania
Architektura komputera
Architektura komputera Architektura systemu komputerowego O tym w jaki sposób komputer wykonuje program i uzyskuje dostęp do pamięci i danych, decyduje architektura systemu komputerowego. Określa ona sposób
Systemy operacyjne oparte na mikrojądrze na przykładzie Minix3. Maciej Łaszcz, Wojciech Łowiec, Patryk Spanily 2 XII 2008
Systemy operacyjne oparte na mikrojądrze na przykładzie Minix3. Maciej Łaszcz, Wojciech Łowiec, Patryk Spanily 2 XII 2008 Systemy oparte na mikrojądrze Jądro systemu jest bardzo małe Architektura mocno
Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,
2009-03-21. Paweł Skrobanek. C-3, pok. 321 e-mail: pawel.skrobanek@pwr.wroc.pl http://pawel.skrobanek.staff.iiar.pwr.wroc.pl
Wrocław 2007-09 SYSTEMY OPERACYJNE WYKLAD 2 Paweł Skrobanek C-3, pok. 321 e-mail: pawel.skrobanek@pwr.wroc.pl http://pawel.skrobanek.staff.iiar.pwr.wroc.pl 1 PLAN: 2. Usługi 3. Funkcje systemowe 4. Programy
Procesy, wątki i zasoby
Procesy, wątki i zasoby Koncepcja procesu i zasobu, Obsługa procesów i zasobów, Cykl zmian stanów procesu i kolejkowanie, Klasyfikacja zasobów, Wątki, Procesy i wątki we współczesnych systemach operacyjnych.