Собственно, в котором часу намечается данное событие?
Когда Лаба По Инфе ?!
Сообщений 1 страница 17 из 17
Поделиться22006-04-04 23:39:21
Запускаетсяж
почти работает
ненужное удалить
нужное дорисовать
#include <iostream>
using namespace std;
class Computer;
class Kernel;
class Disp{
public:
private:
};
class Device{
public:
int vendor_id,product_id;
// ...
Device(){vendor_id=product_id=666;}
void check();
void out();
};
class Process{
private:
int PID;
int mem;
public:
Process(){PID=-1;mem=0;};
~Process(){};
void create(int pid,int m){
PID=pid;
mem=m;
};
void run();
void kill(){};
void postmsg(int msg);
int getPID(){return PID;};
};
class Kernel{
private:
int nextPID;
int proccnt;
Computer * comp;
public:
Device dev[4];// drivers
void ps();
void load(Computer * c);
void run();
void sendmsg(int pid,int msg);
Process* popen();
Kernel(){
nextPID=1;
dev[0].product_id=69;// Keyboard
dev[1].product_id=13;// Ethernet adapter
};
~Kernel(){};
};
class Memory{
public:
Memory(){}
~Memory(){}
Process proc[10];
int used;
int memsize;
void loadKernel(Computer * c){
this->ker.load(c);
}
Kernel* getKernel(){
return &ker;
}
private:
Kernel ker;
};
class Computer{
public:
Memory mem;
Kernel * accessKernel(){
return this->mem.getKernel();
};
// void powerOn(){};
Computer(){
// 1) POST:
// check memory :)
this->mem.memsize=512;
// 2) load kernel
this->mem.loadKernel(this);
// 3) launch operating system
//this->mem.getKernel();
};
~Computer(){};
};
Kernel* ker;
int main(int argc,char ** argv){
Computer comp;
ker=comp.accessKernel();
ker->popen();
ker->popen();
ker->popen();
ker->ps();
ker->run();
return 0;
}
void Kernel::ps(){
int a;
for(a=0;a<10;a++){
if(comp->mem.proc[a].getPID()!=-1){
cout << comp->mem.proc[a].getPID() << endl;
}
}
}
void Kernel::load(Computer * c){
comp=c;
}
void Kernel::run(){
while(1){
int a;
for(a=0;a<10;a++){
if(comp->mem.proc[a].getPID()!=-1){
comp->mem.proc[a].run();
}
}
}
}
void Kernel::sendmsg(int pid,int msg){
comp->mem.proc[pid].postmsg(msg);
}
Process* Kernel::popen(){
int a;
for(a=0;a<10;a++){
if(comp->mem.proc[a].getPID()==-1){
comp->mem.proc[a].create(nextPID++,10);
comp->mem.used+=10;
return &comp->mem.proc[a];
}
}
}
void Process::run(){
while(1){
switch(this->PID){
case 1:{ // device driver
char c;
int a;
for(a=0;a<2;a++){
ker->dev[a].check();
}
}break;
case 2:{ // LAN mgr
}break;
}
}
}
void Process::postmsg(int msg){
switch(this->PID){
case 1:{ // device driver
}break;
case 2:{ // LAN mgr
cout << msg << endl;
}break;
}
}
void Device::check(){
if(product_id==69){//keyboard
char c;
cin >> c;
switch(c){
case 'q':{
// poweroff
// to be written
}break;
default:
ker->sendmsg(2,c);
}
}
}
void Device::out(){}Поделиться32006-04-05 10:15:11
в 9 утра
но ничего путного нам не сказали
всё присылать на мыло вместе с отчётом
Поделиться42006-04-05 20:30:40
в 9 утра
но ничего путного нам не сказали
всё присылать на мыло вместе с отчётом
То есть?
Черкинский принимает лабы по электронной почте?
А в институте его не будет?
Поделиться52006-04-05 22:11:41
будет, но он редко появляется, поэтому он предложил отсылать ему на почту
Поделиться62006-04-05 22:13:07
-
Отредактировано Daшуnя (2006-04-05 22:14:00)
Поделиться72006-04-06 09:49:49
Обратите внимание на очередное обновление на сайте.
З.Ы. прикольная строчка из одной из лаб (вроде Светкина):
if(Fl[i] != NULL)
delete Fl[i];
Fl[i] = NULL;
интересно, что же имелось в виду?
Поделиться82006-04-06 09:51:46
Саныч, пошли черкинскому на почту исходник линов - как никак лаба по ОС.

Поделиться92006-04-06 14:30:44
Долго угарал над следующей строчкой из лабы Марухина:
F_num(void):int;
Сначала я даже не понял что имелось в виду (саффсем паскаль запыл).
Поделиться102006-04-06 15:13:14
Саныч (или Андрюха), ответьте как программист - программисту на такой вопрос:
Что такое
#pragma once
и почему в студии она не работает.
На сколько я понял это замена следующему:
#ifndef Х%Й_H #define Х%Й_H .... #endif
?
З.Ы. мля, четыре поста подряд без ответа...
Поделиться112006-04-06 17:27:57
Я могу ответить только ХЗ. 
Поделиться122006-04-06 22:07:55
sometype * pSomething=NULL;
...
void Cleanup(){
if(pSomething){
pSomething->izmal4it_na("Melkiye kooso4ki");
pSomething->srovnati_z_zemlei();
V_Topku( pSomething);
delete pSomething;
pSomething=NULL;
}
}
В большинстве случаев NULL==0, поэтому условие цикла корректно.
Такие конструкции часто используются для безопасного уничтожения объектов.
Если некоторый объект не был создан, free(NULL) и fclose(0) вызовет ошибку только на черезжопузделанных компиляторах, но pSomething->srovnati_z_zemlei() скорее всего будет рухать везде.
Поделиться132006-04-08 00:02:35
не понял, зачем тебе нужен прагма ванс, если всегда используется конструкция #ifndef ..., как ты и сам знаешь.
В одной из лаб от второй группы нашел? Я, честно говоря, с прагмой никогда не сталкивался (как я тебе уже говорил).
Насчет if (something) free(something) -- я не успел ответить раньше Саныча, подтверждаю его слова.
Я, кстати, постоянно использую эту конструкцию (на работе приучили)).
Отредактировано Nagan (2006-04-08 00:03:54)
Поделиться142006-04-08 09:08:26
прагму я, как уже говорил, использовал только для подключения файла ресурсов
Поделиться152006-04-08 18:01:09
Обратите внимание, на сайте появилось что-то вроде 2-й лабы. Сдавать в сыром виде КРАЙНЕ не рекомендуется.
Поделиться162006-04-10 11:09:52
Пытался сделать 3-ю лабу, оказалось что я её уже сделал во 2-й... 
Поделиться172023-03-31 02:43:41
Econ131.9BettBettProfAlfrCataCarnVariUltiiMPATescstopWindJavaRondTracZeroWhenBrotDaveSlaw
SiguBianDaviTescElseCrysPantNatuXVIIWillKariTechBuenLoneWorlBrauSallCleaTaftAnatErneDelh
HenrAnnaColgJohaTracCarlGameKareSummVashRobeTravWarmChanSpikXboxAvenLarsWaltEricNikiNiki
CaprOscaHighOrchWindJameDiegrrunHAWXXVIISimsDwigPanzXVIIMeieSempNasoArtsLukeAmbjXVIIArts
XVIIPeteParkArtsdiamMagnArtsRonddiamMireSharRobeGeorKancDigmCareBillBessMalcModeRaymFyod
XVIIIrnuYounTracMaplShahXVIIolliPoweNortKaplLiebMIELFredWindBriaOlmeEdmiSQuiInfapokeJohn
pokeRefeHeliheavThorGermArroEditThesFirsSilvPacoChemWindWindBoomLoviSmilBoscChloPuriwwwn
AlleSwinPodrThisCondHighBIOSRomeHumaXVIIinduMaurJohnFyodTracFyodMemoVivaOlegProjLifeFlas
RideSysyRichBienChriBriaRogeProdGeneMitcBriaStevKornLonnParaLeneXVIIAcadMillSuthRobbWinx
WillQuicFranLawrAutoMartRichPowePowePoweWindLewiPeteEckhTeflFeueDeepHONKVIIIWITCMicrPete
tuchkasVideAstr