[운영체제] multithread를 이용한 scheduler 구현
- 최초 등록일
- 2011.12.22
- 최종 저작일
- 2011.10
압축파일
- 가격 3,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
운영체제 과목 수강중 구현한 코딩과제입니다.
visual studio2010에서 multithread를 이용한 scheduler를 구현하였습니다.
1.코드에서 RunScheduler를 N 개의 thread를 관리할 수 있다.
먼저 RunScheduler로 전달되는 인자에서 Thread들에 대한 배열 포인터뿐만 아니라 개수까지 전달할 수 있으며,
함수 내부의 코드를 수정해서 여러 개의 Thread가 전달되더라도 Round Robin 형태의 스케쥴링이 가능하도록 프로그램을 구현한다.
2.Thread에서 동작하는 Run 함수를 “ccccccc”, “ddddddd”, “eeeeeee” 문자열을 출력할 수 있도록 추가한다.
예를 들어 Run3함수는 “ccccccc”를 Run4함수는 “ddddddd”를 출력하도록 한다.
3.main함수를 수정해서 모두 5개의 Thread를 생성한 후에 스케쥴러에 넘기는 프로그램을 작성해서 테스트 해본다.
필요하다면 개수를 달리해서 테스트해서 RunScheduler 함수가 제대로 동작하는 지 확인하도록 한다.
컴파일 실행환경
Microsoft VIsual Studio 2010
본문내용
#include
#include "Thread.h"
#include "ICETimer.h"
using namespace std;
int Thread::cnt;
unsigned __stdcall Run(void *args)
{
// for (int i = 0; i < 10; i++)
while (1) {
coutnum;
char * str[10] = {"aaaaa","bbbbb","ccccc","ddddd","eeeee","fffff","ggggg","hhhhh","iiiii","jjjjj"};
Thread* threads = new Thread[num];
for(int i=0; i
압축파일 내 파일목록
Debug/OS2011_2.exe
Debug/OS2011_2.ilk
Debug/OS2011_2.pdb
OS2011_2/Debug/cl.command.1.tlog
OS2011_2/Debug/CL.read.1.tlog
OS2011_2/Debug/CL.write.1.tlog
OS2011_2/Debug/ICETime.obj
OS2011_2/Debug/ICETimer.obj
OS2011_2/Debug/link-cvtres.read.1.tlog
OS2011_2/Debug/link-cvtres.write.1.tlog
OS2011_2/Debug/link.4396-cvtres.read.1.tlog
OS2011_2/Debug/link.4396-cvtres.write.1.tlog
OS2011_2/Debug/link.4396.read.1.tlog
OS2011_2/Debug/link.4396.write.1.tlog
OS2011_2/Debug/link.command.1.tlog
OS2011_2/Debug/link.read.1.tlog
OS2011_2/Debug/link.write.1.tlog
OS2011_2/Debug/main.obj
OS2011_2/Debug/mt.command.1.tlog
OS2011_2/Debug/mt.read.1.tlog
OS2011_2/Debug/mt.write.1.tlog
OS2011_2/Debug/OS2011_2.exe.embed.manifest
OS2011_2/Debug/OS2011_2.exe.embed.manifest.res
OS2011_2/Debug/OS2011_2.exe.intermediate.manifest
OS2011_2/Debug/OS2011_2.lastbuildstate
OS2011_2/Debug/OS2011_2.log
OS2011_2/Debug/OS2011_2_manifest.rc
OS2011_2/Debug/rc.command.1.tlog
OS2011_2/Debug/rc.read.1.tlog
OS2011_2/Debug/rc.write.1.tlog
OS2011_2/Debug/vc100.idb
OS2011_2/Debug/vc100.pdb
OS2011_2/ICETime.cpp
OS2011_2/ICETime.h
OS2011_2/ICETimer.cpp
OS2011_2/ICETimer.h
OS2011_2/ICEUtils.h
OS2011_2/ICEUtilsExport.h
OS2011_2/main.cpp
OS2011_2/OS2011_2.vcxproj
OS2011_2/OS2011_2.vcxproj.filters
OS2011_2/OS2011_2.vcxproj.user
OS2011_2/Thread.h
OS2011_2.sln
OS2011_2.suo
참고 자료
없음