#include <stdio.h>


int factorial(int x);

int main()

{

    printf("input the number\n");

    int size;

    scanf("%d", &size);

    

    int total = 1;

    for(int i = size; i>1; i--)

        total *= i;

    

    printf("%d recursive factorial is %d \n", size, factorial(size));

    printf("%d iterative factorial is %d \n", size, total);

}


int factorial(int x){

    if (x>1)

        return x * factorial(x-1);

    else return x;

}

'Programing > Algorithm' 카테고리의 다른 글

프로젝트 오일러 9번  (0) 2015.04.25
Recursive Fibonacci  (0) 2015.04.06
3개의 숫자를 내림차순으로 정렬  (0) 2015.04.06
프로젝트 오일러 7번  (0) 2015.02.10
프로젝트 오일러 6번  (0) 2015.02.10
Posted by kimmayer


#include <stdio.h>

void sort(int *x, int *y, int *z);


int main()

{

    int x=4, y=11, z=8;

    sort(&x, &y, &z);

    printf("%d %d %d\n",x,y,z);

}



void sort(int *x, int *y, int *z){

    int temp;

    if(*x < *y){

        temp = *x;

        *x = *y;

        *y = temp;

        sort(x, y, z);

    }

    else if(*y < *z){

        temp = *y;

        *y = *z;

        *z = temp;

        sort(x, y, z);

    }

    else if(*x < *z){

        temp = *x;

        *x = *z;

        *z = temp;

        sort(x, y, z);

    }

}



'Programing > Algorithm' 카테고리의 다른 글

Recursive Fibonacci  (0) 2015.04.06
순환/재귀 팩토리알 구현  (0) 2015.04.06
프로젝트 오일러 7번  (0) 2015.02.10
프로젝트 오일러 6번  (0) 2015.02.10
프로젝트 오일러 5번  (0) 2015.02.10
Posted by kimmayer

2015. 3. 31. 18:47 Programing/OS

스케쥴러

스케쥴러

.프로세스 스케쥴러는 이용 가능한 프로세스를 실행 시키기 위해서 선택한다

->프로세스가 가장 효율적이고 CPU를 몽땅 사용할 수 있도록 CPU를 선택

.스케쥴링 큐는 대체적으로 링크드 리스트를 사용한다

.long term scheduler는 해당 알고리즘에 따라서 메모리에 올릴지 결정한다

->cpu의 상태로는 new에서 ready로 가는 것을 승인한다

.short term scheduler는 닥치고 메모리에 바로바로 올려서 실행시키는거

->cpu의 상태로는 ready에서 running으로 가는 상태로 전이

.long term schedouler는 자주 쓰이지 않는다.

.context switch는 cpu를 프로세스의 현재 상태를 저장 시키고 다른 프로세스를 복구시켜서 바꾸는거임

.context switch의 속도는 하드웨어 지원에 높은 의지를 한다.

.프로세스가 새로운 프로세스를 생성시킨다면 이는 tree같이 생겼다

.프로세스가 새로운 프로세스를 만들 때 가능한 상황들

-> 부모는 자식과 함께 계속해서 실행한다.

-> 자식들이 종료될 때 까지 부모는 계속해서 기다린다.

.프로세스의 주소 공간에서 일어날 수 있는 일들

-> 자식 프로세스는 부모프로세스의 복제

-> 자식 프로세스는 새로운 프로그램을 복제한 공간(메모리)에 넣는다

.fork 시스템의 프로세스 상태

-> fork가 되면 부모는 wait상태가 되고 자식은 exec()나 등등 일처리를 함

-> 자식 프로세서가 exit가 되면 부모 프로세서에서 기다리고 있다가 resume

.프로세서를 죽일려면  exit() 시스템 콜을 이용한다



'Programing > OS' 카테고리의 다른 글

Process의 실행 관련  (0) 2015.03.31
프로세스의 개념  (0) 2015.03.31
Thread 생성 방법  (0) 2015.03.31
Posted by kimmayer

블로그 이미지
IT 기술들 정리, 독후감을 주로 남깁니다!
kimmayer

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함