473,378 Members | 1,343 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,378 software developers and data experts.

Projects on Online Transaction Programming

3
Hi,
I have to do a project on C program. I have to do 9 mini-projects. Please guide me through it.
1) Client-Server program using Semaphores, Message queues, Shared memory, Pipes, FIFO, Decentralized and Centralized OLTP, Channel of Communication and lastly
2) Using Network applications i.e Sockets on Decentralized and Centralized OLTP.
Please send me the source code as early as possible. Please give me a reply within 2 to 3 days.
Feb 9 '07 #1
13 3234
MMcCarthy
14,534 Expert Mod 8TB
The experts on this site are more than happy to help you with your problems but they cannot do your assignment for you. Attempt the assignment yourself first and post questions regarding any difficulties you have or about a particular function of the code that you don't know how to achieve.

ADMIN
Feb 9 '07 #2
RedSon
5,000 Expert 4TB
Hi,
I have to do a project on C program. I have to do 9 mini-projects. Please guide me through it.
1) Client-Server program using Semaphores, Message queues, Shared memory, Pipes, FIFO, Decentralized and Centralized OLTP, Channel of Communication and lastly
2) Using Network applications i.e Sockets on Decentralized and Centralized OLTP.
Please send me the source code as early as possible. Please give me a reply within 2 to 3 days.
Here you and I can finish your project in 4 easy steps. Here are the steps for you to follow:

1.) Write a server program.
2.) Write a client.
3.) Connect your client to your server.
4.) Test your server and client.

Done!

Easy right!?!
Feb 9 '07 #3
Hi,
I have to do a project on C program. I have to do 9 mini-projects. Please guide me through it.
1) Client-Server program using Semaphores, Message queues, Shared memory, Pipes, FIFO, Decentralized and Centralized OLTP, Channel of Communication and lastly
2) Using Network applications i.e Sockets on Decentralized and Centralized OLTP.
Please send me the source code as early as possible. Please give me a reply within 2 to 3 days.These projects should be written using Saving bank application.
hi i dont have any knowledge of this please tell me in detail what u want to do..
Feb 10 '07 #4
RedSon
5,000 Expert 4TB
First I want you to buy a computer. Then you have to install an operating system on it. I prefer Windows, but sometimes I dual boot my machine with a Linux partition. Linux has many distributions, you might want to consider one like Fedora. Its easy to use and comes with a bunch of packages. However I think that Windows is easier to use with Visual Stuido on it. So, assuming you have Windows and Visual Studio installed you can then create a new project. When you go through the create new project wizard select a c/c++ project. After you have done these steps you are then ready to start programming.

Let me know when you have completed these steps and then we can continue.
Feb 11 '07 #5
vittal
3
Atleast please send me a program on Client Server Saving bank application program using Pipes and FIFO.
Feb 13 '07 #6
MMcCarthy
14,534 Expert Mod 8TB
Atleast please send me a program on Client Server Saving bank application program using Pipes and FIFO.
vittal

I say again. The experts will NOT write your program for you. If you make some attempt to write it yourself they will try to help.

ADMIN
Feb 13 '07 #7
hirak1984
316 100+
Dear, dont take this site as your regular private tutor.
We dont do your homework or assignments.
But it is true,if you do one step,we will be happy to do the next 20 steps for you.
But you have to set the ball rolling first.
There are hundreds of books on networking,first know what a client server is.
decide what technology to use,vc++ or turbo c++(?),or linux etc...
post again when you have done all these.
Atleast please send me a program on Client Server Saving bank application program using Pipes and FIFO.
Feb 13 '07 #8
RedSon
5,000 Expert 4TB
I'm finished with this thread, unless and until there is major progress. Well, I take that back, Vittal, if you are interested in hiring my services then I will talk more, but I am a very expensive consultant.
Feb 13 '07 #9
RedSon
5,000 Expert 4TB
[font=Verdana][size=2]Dear, dont take this site as your regular private tutor.[/size][/font]
[font=Verdana][size=2]We dont do your homework or assignments.[/size][/font]
[font=Verdana][size=2]But it is true,if you do one step,we will be happy to do the next 20 steps for you.[/size][/font]
[font=Verdana][size=2]But you have to set the ball rolling first.[/size][/font]
[font=Verdana][size=2]There are hundreds of books on networking,first know what a client server is.[/size][/font]
[font=Verdana][size=2]decide what technology to use,vc++ or turbo c++(?),or linux etc...[/size][/font]
post again when you have done all these.
Hirak,

Whats up with all your font stuff? Did the "reply to" script put all that junk in your response?
Feb 13 '07 #10
hirak1984
316 100+
Ya the problem is gone automatically.

when I directly post in the thread the "fonts" appear.But when I preview it beforehand,no fonts appear in the text,nor does they appear in the original text.Pretty enigmatic na?LOL


Hirak,

Whats up with all your font stuff? Did the "reply to" script put all that junk in your response?
Feb 14 '07 #11
MMcCarthy
14,534 Expert Mod 8TB
Ya the problem is gone automatically.

when I directly post in the thread the "fonts" appear.But when I preview it beforehand,no fonts appear in the text,nor does they appear in the original text.Pretty enigmatic na?LOL
I removed them Hirak

We are having some problems with the parser. Bear with us as we try to fix it. If you need this kind of thing tidied up ask a moderator to remove them or send me a PM and I'll get to it when I can.

Mary
Feb 14 '07 #12
hirak1984
316 100+
thanks mary,you are always so helpful.
I removed them Hirak

We are having some problems with the parser. Bear with us as we try to fix it. If you need this kind of thing tidied up ask a moderator to remove them or send me a PM and I'll get to it when I can.

Mary
Feb 14 '07 #13
vittal
3
This is a the source code of Centralized solution, Please tell me what changes I have to make for Decentralized solution.
Expand|Select|Wrap|Line Numbers
  1. #define LOG_MSG_LEN 100
  2. void send_chan(int,OLTP_MSG_BUFF);
  3. void send_reply(int,int,int,OLTP_MSG_BUFF );
  4. int is_acc(int,int);
  5. void start_logging(void);
  6. int chan_gen(int);
  7. void dump_log(int);
  8. int nof_clints=0,dead_clint,log_d,clint_list[MAX_NO_CLINTS]={0};
  9. char log_msg[LOG_MSG_LEN];
  10. main(int argc,char *argv[]) {
  11.     int i,j,semd,msgd,mdf_d,ret,off,server_pid;
  12.     char def_choise[6],time_ch[30];
  13.     time_t local_time;
  14.     OLTP_MSG_BUFF msg_clint,msg_reply;
  15.     SB_ACC sb_acc;
  16.     struct msqid_ds msg_stat;
  17.     if(argc == 1) {
  18.         printf("USAGE: %s install | start | stop\n",argv[0]);
  19.         exit(0);
  20.     }
  21.     if(strcmp(argv[1],"install")==0) {
  22.         system("clear");
  23.         printf("\n##### WELCOME TO OLTP SERVER INSTALLATION.........press[X] to EXIT:");
  24.         i=getchar();
  25.         if(i == 'X' || i == 'x') {
  26.             printf("\n\t\t\tABORTED BY USER ! !\n");
  27.             exit(0);
  28.         }
  29.         printf("\n\t\t\tCREATING Master Database File in ./MDF.dbase...");
  30.         mdf_d=open("./MDF.dbase",O_WRONLY | O_CREAT | O_EXCL,0666);
  31.         if(mdf_d < 0) {
  32.             printf("\nMAY BE SERVER IS ALLREADY INSTALLED....remove MDF.dat then TRY AGAIN ! !\n");
  33.             exit(0);
  34.         }
  35.         printf("\n\t\t\tCREATING ADMINSTRATOR ACCOUNT........");
  36.         printf("\n\t\t\tadminstrator phone number:");
  37.         scanf("%d",&sb_acc.acc_ph);
  38.         off=sizeof(struct SB_ACC);
  39.         sb_acc.acc_no=1;sb_acc.balence=1000;
  40.         write(mdf_d,(char*)(&sb_acc),off);
  41.         close(mdf_d);
  42.         printf("\n\t\t\tSERVER INSTALLED SUSCCESSFULLY.......");
  43.         printf("\n\t\t\tNow You can start the server....[OK]\n");
  44.         getchar();
  45.         exit(0);
  46.     }
  47.     if(strcmp(argv[1],"stop")==0) {
  48.         if((semd=semget(OLTP_SEMID,1,IPC_CREAT)) < 0) {
  49.             printf("\n\t\t\tsemget() error......Server stop failed ! !\n");
  50.             exit(2);
  51.         }
  52.         semctl(semd,0,IPC_RMID,0);
  53.         if((msgd=msgget(OLTP_MSGID,IPC_CREAT)) < 0) {
  54.             printf("\n\t\t\tmsgget() error......Server stop failed ! !\n");
  55.             exit(2);
  56.         }
  57.         msgctl(msgd,IPC_RMID,&msg_stat);
  58.         exit(0);
  59.     }
  60.     if(strcmp(argv[1],"start")==0) {
  61.         mdf_d=open("./MDF.dbase",O_RDWR);
  62.         if(mdf_d < 0) {
  63.             printf("\n\t\t\tFailed open Master Database File........Server start failed ! !\n");
  64.             exit(2);
  65.         }
  66.         msgd=msgget(OLTP_MSGID,IPC_CREAT | IPC_EXCL);
  67.         semd=semget(OLTP_SEMID,1,IPC_CREAT | IPC_EXCL | 0666);
  68.         if(semd == 0 || msgd == 0) {
  69.             printf("\n\t\t\tsemget() OR msgget() error.........Server start failed ! !\n");
  70.         }
  71.         if((j=semctl(semd,0,SETVAL,1)) < 0) {
  72.             printf("\n\t\t\tsemctl() error......Server start failed ! !\n");
  73.             exit(5);
  74.         }
  75.         j=semctl(semd,0,GETVAL,0);
  76.  
  77.     }
  78.     else {
  79.         printf("USAGE: %s install/start/stop\n",argv[0]);
  80.         exit(1);
  81.     }
  82.  
  83.     log_d=open("./OLTP_server.log",O_TRUNC | O_WRONLY | O_CREAT | O_SYNC);
  84.     system("clear");
  85.     sleep(1);
  86.     server_pid=fork();
  87.     if(server_pid < 0) {
  88.         printf("\n\t\t\tfork() error.........Server start failed ! !\n");
  89.         exit(7);
  90.     }
  91.     if(server_pid > 0) {
  92.  
  93.         printf("\n\t\t\tServer started successfully with PID [%d]......\n",server_pid);
  94.         time(&local_time);
  95.         ctime_r(&local_time,time_ch);
  96.         printf("\n\t\t\tON:%s",time_ch);
  97.         printf("\n\t\t\t............server logs in ./OLTP_server.log\n");
  98.         printf("\n\t\t\t............USE $tail -f ./OLTP_server.log to see the logs [OK]\n");
  99.         exit(0);
  100.     }
  101.     close(1);
  102.     if(dup(log_d) < 0) {
  103.         char err[44]="dup() error.........Server start failed ! !\n";
  104.         write(2,(char*)(err),44);
  105.         exit(9);
  106.     }
  107.     close(2);close(0);
  108.     setpgrp();
  109.     start_logging();
  110.     while(1) {
  111.         ret=msgrcv(msgd,(struct  msgbuf*)(&msg_clint),MSG_LEN,MASTER_CHAN ,IPC_NOWAIT);
  112.         if(ret > 0)  {
  113.             dump_log(sprintf(log_msg,"----->Got chan_req from %d\n",msg_clint.pid));
  114.             send_chan(msgd,msg_clint);
  115.         }
  116.         for(i=0;i<=nof_clints;i++) {
  117.             ret=msgrcv(msgd,(struct  msgbuf*)(&msg_clint),MSG_LEN,i+2,IPC_NOWAIT);
  118.             if(ret >= 0) send_reply(semd,msgd,mdf_d,msg_clint);
  119.         } } }
  120. void send_chan(int msgd,OLTP_MSG_BUFF msg_clint)
  121. {
  122.     int chan_no;
  123.     OLTP_MSG_BUFF msg_reply;
  124.     chan_no=chan_gen(msg_clint.pid);
  125.     if(chan_no > 0) nof_clints=nof_clints+1;
  126.     msg_reply.req_rep_info=chan_no;
  127.     msg_reply.mtype=msg_clint.pid;
  128.     dump_log(sprintf(log_msg,"----->Sending chan %d to %d\n",msg_reply.req_rep_info,msg_clint.pid));
  129.     msgsnd(msgd,(struct  msgbuf*)(&msg_reply),MSG_LEN,0);
  130.     return;
  131. }
  132. void send_reply(int semd,int msgd,int mdf_d,OLTP_MSG_BUFF msg_clint)
  133. {
  134.     int i,off,new_acc_no,stat_mdf,how_many_acc;
  135.     time_t local_time;
  136.     char time_ch[30];
  137.     OLTP_MSG_BUFF msg_reply;
  138.     SB_ACC sb_acc;
  139.     struct msqid_ds msg_stat;
  140.     off=sizeof(struct SB_ACC);
  141.     switch(msg_clint.req_type) {
  142.         case 1:
  143.             stat_mdf=lseek(mdf_d,0,SEEK_END);
  144.             how_many_acc=stat_mdf/off;
  145.             new_acc_no=how_many_acc+1;
  146.             sb_acc.acc_ph=msg_clint.req_rep_info;
  147.             sb_acc.acc_no=new_acc_no;
  148.             sb_acc.balence=1000;
  149.             dump_log(sprintf(log_msg,"TRANSACTION ON [%d]-->New acc[%d] is OPENED ! ! Whose Acc_ph[%d]\n",msg_clint.pid,sb_acc.acc_no,sb_acc.acc_ph));
  150.             write(mdf_d,(char *)(&sb_acc),sizeof(struct SB_ACC));
  151.             msg_reply.req_rep_info=sb_acc.acc_no;
  152.             break;
  153.         case 2:
  154.             lseek(mdf_d,0,0);
  155.             if(is_acc(mdf_d,msg_clint.acc_no) != 0)
  156.             {
  157.                 msg_reply.req_rep_info=-2;
  158.                 break;
  159.             }
  160.             off=(msg_clint.acc_no-1)*off;
  161.             lseek(mdf_d,off,0);
  162.             read(mdf_d,(char*)(&sb_acc),sizeof(struct SB_ACC));
  163.             sb_acc.acc_ph=msg_clint.req_rep_info;
  164.             lseek(mdf_d,off,0);
  165.             write(mdf_d,(char*)(&sb_acc),sizeof(struct SB_ACC));
  166.             msg_reply.req_rep_info=sb_acc.acc_ph;
  167.             dump_log(sprintf(log_msg,"TRANSACTION ON [%d]-->Acc no[%d] NOW have[%d] phone_no\n",msg_clint.pid,sb_acc.acc_no,sb_acc.acc_ph));
  168.             break;
  169.         case 3:
  170.             lseek(mdf_d,0,0);
  171.             if(is_acc(mdf_d,msg_clint.acc_no) != 0)
  172.             {
  173.                 msg_reply.req_rep_info=-3;
  174.                 break;
  175.             }
  176.             off=(msg_clint.acc_no-1)*off;
  177.             lseek(mdf_d,off,0);
  178.             read(mdf_d,(char*)(&sb_acc),sizeof(struct SB_ACC));
  179.             lseek(mdf_d,0,0);
  180.             msg_reply.acc_no=sb_acc.acc_ph;
  181.             msg_reply.req_rep_info=sb_acc.balence;
  182.             dump_log(sprintf(log_msg,"ACCOUNT [%d] INFORMATION IS SENT TO [%d]\n",sb_acc.acc_no,msg_clint.pid));
  183.             break;
  184.         case 4:
  185.             lseek(mdf_d,0,0);
  186.             if(is_acc(mdf_d,msg_clint.acc_no) != 0)
  187.             {
  188.                 msg_reply.req_rep_info=-4;
  189.                 break;
  190.             }
  191.             off=(msg_clint.acc_no-1)*off;
  192.             lseek(mdf_d,off,0);
  193.             read(mdf_d,(char*)(&sb_acc),sizeof(struct SB_ACC));
  194.             sb_acc.balence=sb_acc.balence+msg_clint.req_rep_info;
  195.             lseek(mdf_d,off,0);
  196.             write(mdf_d,(char*)(&sb_acc),sizeof(struct SB_ACC));
  197.             msg_reply.req_rep_info=sb_acc.balence;
  198.             dump_log(sprintf(log_msg,"TRANSACTION ON [%d]-->After debiting acc no %d now have %d balence no\n",msg_clint.pid,sb_acc.acc_no,sb_acc.balence));
  199.             break;
  200.         case 5:
  201.             lseek(mdf_d,0,0);
  202.             if(is_acc(mdf_d,msg_clint.acc_no) != 0)
  203.             {
  204.                 msg_reply.req_rep_info=-5;
  205.                 break;
  206.             }
  207.             off=(msg_clint.acc_no-1)*off;
  208.             lseek(mdf_d,off,0);
  209.             read(mdf_d,(char*)(&sb_acc),sizeof(struct SB_ACC));
  210.             if((sb_acc.balence-msg_clint.req_rep_info) < 1000)
  211.             {
  212.                 msg_reply.req_rep_info=-55;
  213.                 break;
  214.             }
  215.             sb_acc.balence=sb_acc.balence-msg_clint.req_rep_info;
  216.             lseek(mdf_d,off,0);
  217.             write(mdf_d,(char*)(&sb_acc),sizeof(struct SB_ACC));
  218.             msg_reply.req_rep_info=sb_acc.balence;
  219.             dump_log(sprintf(log_msg,"TRANSACTION ON [%d]-->After withdra acc no %d now have %d balence no\n",msg_clint.pid,sb_acc.acc_no,sb_acc.balence));
  220.             break;
  221.         case 6:
  222.             clint_list[msg_clint.req_rep_info-2]=0;
  223.             nof_clints=nof_clints-1;
  224.             msg_reply.req_rep_info=BYE;
  225.             dump_log(sprintf(log_msg,"----->Clint %d with PID[%d] LOGGED OUT ! !\n",msg_clint.req_rep_info,msg_clint.pid));
  226.             break;
  227.         case 7:
  228.             if(msg_clint.req_rep_info != OLTP_ADMIN_KEY)
  229.             {
  230.                 dump_log(sprintf(log_msg,"----->%d AUTHENTIFICATION FAILED ! !\n",msg_clint.pid));
  231.                 msg_reply.req_rep_info=-7;
  232.                 break;
  233.             }
  234.             dump_log(sprintf(log_msg,"----->%d AS ADMINSTRATOR IS GOING TO SHUTTINGDOWN THE SERVER ! !\n",msg_clint.pid));
  235.             msg_reply.mtype=msg_clint.pid;
  236.             msg_reply.req_rep_info=AUTH_ADMIN;
  237.             msgsnd(msgd,(struct  msgbuf*)(&msg_reply),MSG_LEN,0);
  238.             dump_log(sprintf(log_msg,"----->OLTP SERVER DOWN\n"));
  239.             time(&local_time);
  240.             ctime_r(&local_time,time_ch);
  241.             dump_log(sprintf(log_msg,"----->ON %s",time_ch));
  242.             dump_log(sprintf(log_msg,"############### ANY QUESTIONS TO <mdshreenath@yahoo.com> ###############\n"));
  243.             close(log_d);close(mdf_d);
  244.             sleep(5);
  245.             semctl(semd,0,IPC_RMID,0);
  246.             msgctl(msgd,IPC_RMID,&msg_stat);
  247.             exit(0);
  248.         default:
  249.             printf("wrong CHOISE ! ! !\n");
  250.             return;
  251.     }
  252.     msg_reply.mtype=msg_clint.pid;
  253.     if((msgsnd(msgd,(struct  msgbuf*)(&msg_reply),MSG_LEN,0)) < 0)
  254.     {
  255.         printf("msgsnd() error.........Failed to send REPLY ! !\n");
  256.         exit(6);
  257.     };    
  258. }
  259. int is_acc(int mdf_d,int acc_no)
  260. {
  261.     int off,stat_mdf,how_many_acc;
  262.     SB_ACC acc;
  263.     off=sizeof(struct SB_ACC);
  264.     stat_mdf=lseek(mdf_d,0,SEEK_END);
  265.     how_many_acc=stat_mdf/off;
  266.     if(acc_no > how_many_acc) return(-1);
  267.     return(0);
  268. }
  269. void start_logging(void)
  270. {
  271.     time_t local_time;
  272.     char time_ch[30];
  273.     dump_log(sprintf(log_msg,"################ LOG FILE GENERATED BY OLTP SERVER #####################\n"));
  274.     time(&local_time);
  275.     ctime_r(&local_time,time_ch);
  276.     dump_log(sprintf(log_msg,"----->ON %s",time_ch));
  277.     dump_log(sprintf(log_msg,"----->Server started successfully.......with PID [%d]\n",getpid()));
  278.     return;
  279. }
  280. int chan_gen(int pid)
  281. {
  282.     int i;
  283.     for(i=0;i<MAX_NO_CLINTS;i++)
  284.     {
  285.         if(clint_list[i] == 0)
  286.         {
  287.             clint_list[i]=pid;
  288.             return(i+2);/*because chan 1 is for MASTER*/
  289.         }
  290.     }
  291.     return(-1);
  292. }
  293. void dump_log(int size)
  294. {
  295.     if(size < 0) return;
  296.     write(log_d,log_msg,size);
  297.     return;
  298. }
  299.  
Mar 1 '07 #14

Sign in to post your reply or Sign up for a free account.

Similar topics

16
by: noah | last post by:
Does PHP have a feature to associate Cookie sessions with a persistent database connection that will allow a single transaction across multiple HTTP requests? Here is how I imagine my process: I...
0
by: Yuancai \(Charlie\) Ye | last post by:
Hi, All: I am happy to annouce that we have formally released our latest SocketPro version 4 at www.udaparts.com, an advanced remoting framework written from batching/queue, asynchrony and...
9
by: John Ilves | last post by:
I've read an online C tutorial and a book but I don't really know enough to work on any real projects. What comes in between in the process of learning C? Can anyone direct me to some good websites...
2
by: Jon Smith via DotNetMonster.com | last post by:
Hi all, I've recently completed studying two C# books. I'm now looking to keep my knowledge of C# sharp (excuse the pun) by doing practice projects. Can anyone tell me where I might find C#...
11
by: Hazz | last post by:
is there something as easy as just providing a link to an inexpensive credit card approval/payment component to integrate into an asp.net app. My question isn't about the linking process itself but...
1
by: Thapliyal, Deepak | last post by:
Can I use a "set transaction" type mechanism within a function? thx Deep -----Original Message----- From: Joshua D. Drake Sent: Tuesday, January 13, 2004 10:17 AM To: Thapliyal, Deepak...
3
by: Lada 'Ray' Lostak | last post by:
Hello ppl, Imagine some online system, based on PgSql. There are 'many' parts which depends on each other. I will give small example, but instead of simple table imagine changing tenths various...
7
by: manobas | last post by:
I am getting -911 on online incremental or delta backup , anybody have any explanation, backups go to tsm. thanks
3
by: kj | last post by:
I'm looking for a collection of useful programming projects, at the "hobbyist" level. My online search did turn up a few collections (isolated projects are less useful to me at the moment), but...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.