Linux FAQ's & Manuals
- Linux Scripts
- Debian Install
- Bash For Beginners
- Bugzilla
- Consultants Guide
- GCC Manual
- Linux Command Line Tools
- Gnu Pascal Coding Standards
- Linux Installation Disk
- Labolatorium Linux(PL)
- Budowa systemu Linux(PL)
- Linux Dictionary
- Network Administrators
- Rescue Disk for Linux
- Red Hat Installation
- Red Hat Customization
- Red Hat Getting Started
- Red Hat Security
- Secure & Optimize
- Slackware Manual
- Suse Support
- Suse FAQ
BBC News: "Calls to make the BBC's on demand TV service work on all computer operating systems are to get a fresh look..."
SCO: We Never Knowingly Released Code Under the GPL. PJ: Did Too
Groklaw: "SCO seems to have started something, when, after releasing software under the GPL for years, it now claims it never knowingly did so. As you know, Microsoft has now declared its GPL-virginity as well..."
Critic Bashes Massachusetts on Open XML Proposal
Network World: "With about a week remaining to collect comments on a plan to adopt Ecma's Open XML standard, Massachusetts is mum on how the issue is fairing, but some who disagree with the action are already voicing their opinion publicly..."
Dell Fixes Ubuntu Laptop Pricing
DesktopLinux: "Dell Ubuntu Linux buyers were recently outraged when a price comparison between identical Inspiron 1420 laptops showed that instead of the Ubuntu system being cheaper, it actually ended up costing $225 more than the same laptop with Vista Home Basic Edition..."
OpenSolaris Gets The Total Package
internetnews.com: "Four months after he joined Sun Microsystems, Debian Linux distribution creator Ian Murdock discussed his plans to bring Linux-like distribution sensibilities to Sun's OpenSolaris operating system..."
temat :
stany procesu i przejscia miedzy stanami.
stan procesu (oraz jego tzw. u-obszar) opisany jest w strukturze zdefiniowanej w pliku include/sched.h task_struct. pierwsze pole tej struktury - long state - opisuje stan procesu.
pole to wspomaga jadro w zarzadzaniu procesami.
oto jakie wartosci moze przyjmowac pole state :
"najwazniejszym" stanem jest task_running. proces znajdujacy sie w tym stanie jest gotowy do wykonania, i to ze (byc moze) sie akurat nie wykonuje spowodowane jest faktem, ze procesor (procesory) wykonuje akurat inne zadanie (zadania). procesy bedace w tym stanie utrzymywane sa w liscie dwukierunkowej do ktorej dowiazania znajduja sie w strukturze task_struct (*next_run,*prev_run).
czasami proces zazada np. zapisania na dysku lub czeka na wprowadzenie danych z terminala. w takiej sytuacji jadro (zakladajac, ze akurat z dysku korzysta iny proces, lub ze przy terminalu akurat nikt nie siedzi) ustala stan procesu na task_interruptible i szereguje proces do kolejki zwiazanej z odpowiednim zdarzeniem (dostep do dysku , otrzymanie sygnalu z terminala). proces taki reaguje normalnie na sygnaly i chyba stad wywodzi sie jego nazwa w odroznieniu od ...
task_uninterruptible, kiedy to proces w tym stanie nie odpowiada na zadne sygnaly. proces "wpada" w taki stan z przyczyn od niego niezaleznych (bezposrednio niezaleznych). i np. tak kiedy proces jest tworzony, gdy wisi na semaforze zwiazanym z wewnetrzna organizacja jadra (dostep jadra do krytycznych fragmentow pamieci (zmienne)). mozna innymi slowy stwierdzic, ze proces w takim stanie jest w trakcie (tak naprawde jadro w imieniu procesu) zmiany swoich struktur (akurat sa one niespojne i proba wykonania jakis akcji (np. obsluga sygnalu) moglaby napotkac na sprzecznosci w tych strukturach).
proces konczacy swoje zycie przechodzi w stan task_zombie i czeka (tak naprawde to czekaja "pozostalosci" po nim) az zostana usuniete ze struktur utrzymywanych przez jadro.
task_stopped - jak wiemy proces moze zostac zatrzymany przez wlasciciela grupy do ktorej nalezy. gdy tak sie stanie, to pole state przyjmuje wlasnie wartosc task_stopped i proces pozostaje w stanie zatrzymania do momentu otrzymania sygnalu kontynuacji, badz zakonczenie (kill).
ostatni stan : task_swapping jest "najmniej waznym" stanem w tym sensie, ze nie jest implementowany w obecnej wersji linuxa. (tzn. proces nigdy nie znajdzie sie w takim stanie).
szeregowanie procesow przez jadro (wywlaszczenie):
task_running -------------------------------- > task_running
na wlasne zadanie (czytanie z terminala, dostep do dysku):
task_running -------------------------------- > task_interruptible
z przyczyn (bezposrednio) niezaleznych od procesu, a z powodu ograniczonych zasobow jadra:
task_running -------------------------------- > task_uninterruptible