블로그 이미지
하루, 글. 그림. 영상매체. 표현을 도와주는 기기들. 도전 중. 동화다아아
    동화다아아

    카테고리

    분류 전체보기 (176)
    잡담 (1)
    IT 기기-리뷰&뉴스 (7)
    리뷰 - 도서 (1)
    리뷰 - 영상 (0)
    리뷰 - 그림/음악 (1)
    내장형 하드웨어 (163)
    Total
    Today
    Yesterday

     

    고수준 함수(BUS 방식)

     → 속도는 느리지만 효율적이다.(버퍼에 data를 모았다. 한번에 보낸다.)

    저수준 함수

     → 속도는 빠르지만 비효율적.(즉시 data를 보낸다.)


    ⇒ 메모리와 마찬가지로 HDD 등의 물리적인 장치또한 table(type, name, address)등을 가진다.

     → FAT (임베디드 계열에서 특히 많이 쓰인다. 간단하고 접근 권한이 없다.)

     → NTFS(win NT의 파일 시스템, 접근 권한이 있다.)

     → UNIX는 처음부터 접근 권한이 있었다.


    ⇒ data는 보호되기 위해 header와 tail이 감싼다.

     

    20byte

     

    20byte

     

     

     

     

     

    → HDD →

    header

     

     

     

     

    tail

     

    구조체

     

     

     

     

     

     

     

     → data를 보호하기 위해 header와 tail이 감싼다.

        (네트워크 등에서도 마찬가지 → packit)

     → mp3 같은 경우 header에는 tag 정보등이 기록되어 있다.

     → 그림 파일 같은 경우 header에 속성, 크기, RGB 값 등이 모두 있고 그것을 해석해서 viewer를 만들 수 있다.

     

    ⇒ 파일이 저장되는 형식(format - data를 저장할 수 있도록 특별한 형식으로 바꾼다.)  

    ⇒ table에는 운영체제만 접근할 수 있으므로 fopen 명령으로 열어 달라고 하고, win나 linux는 열지 못할 때 0(NULL)을 반환한다.


    ※ C언어는 운영체제에 맞추어 제작하는 언어이다. 이와는 다르게 운영체제에 상관없이 동작하는 것이 JAVA이다.


    → 자바 가상 머신(영어: Java Virtual Machine, 줄여서 JVM)은 자바 바이트코드를 실행할 수 있는 주체이다. 일반적으로 인터프리터나 JIT 컴파일 방식으로 다른 컴퓨터 위에서 바이트코드를 실행할 수 있도록 구현되나 자바 프로세서처럼 하드웨어와 소프트웨어를 혼합해 구현하는 경우도 있다(이론적으로는 100% 하드웨어 구현도 가능하나 비효율적이다). 자바 바이트코드는 플랫폼에 독립적이며 모든 자바 가상 머신은 자바 가상 머신 규격에 정의된 대로 자바 바이트코드를 실행한다. 따라서 표준 자바 API까지 동일한 동작을 하도록 구현하면 이론적으로는 모든 자바 프로그램은 CPU나 운영체제의 종류와 무관하게 동일하게 동작한다는 것이 보장된다.(http://ko.wikipedia.org/wiki-에서 참고)


    - 소프트웨어 개발 도구 (SDK, software developer's kit)


    SDK는 컴퓨터 프로그래머들이 응용프로그램을 개발하는데 사용하는 일련의 프로그램들이다. SDK에는 대체로, 비주얼 화면작성기, 편집기, 컴파일러, 링커 그리고 그 밖의 다른 유틸리티들이 포함된다.이 용어는 주로 마이크로소프트, 썬마이크로시스템즈, 그리고 그 밖의 몇몇 회사들에 의해 사용된다.


    ⇒ 칩 셀렉트

     → CPU가 관장한다.

     → 어디로 보낼지(전송할지) CPU가 선택하는 것

     → 즉, 메모리에 있는 걸 CPU가 받은 다음 다른 곳으로 전송

     → DMA(Direct Memory Access) : 메모리에서 장치로 바로 전송하는 방법


    ⇒ fopen, fclose (고수준 함수, f가 붙으면 대부분 고수준 방식)

     → 버퍼를 사용한다. 즉, 버퍼에 데이터를 모았다가 한번에 처리한다.

     → 저속, 고효율


    ⇒ open, close(저수준 함수)

     → 버퍼를 사용하지 않는다. 데이터를 모으지 않고 바로 처리한다.

     → 고속, 저효율



    - main 함수의 인자.

     → ./test (문자열 1)

     → gcc -o test test.c (문자열 4)


    ⇒ int iNum, char * string[ ]

     → 배열이 4개 생성된다.


    #include<stdio.h>
    int main(int iNum, char *string[])

                            // iNum은 string문자열 개수, char *string[]은 배열 생성
    {
            
    int iCount;
            printf(
    "why so serious!! %d\n", iNum);

            
    for(iCount=0;iCount<4;++iCount)
            {
                    printf(
    "%s\n",string[iCount]);
            }
            
    return 0;
    }

    int main(int iNum, char *string[]) 를 살펴보면

     → 만약 ./test 라고 실행한다면 배열은 1개 생성될 것이다.(문자열1)

     → gcc -o test test.c라고 한다면 여기서 배열이 4개 생성된다.(문자열4)

     → 즉, 4개의 배열이 생성되어 [0], [1], [2], [3]의 배열 각각에 gcc, -o, test, test.c가 저장된다.



    #include<stdio.h>
    int main()
    {
      write(
    1"mook\n",5);
      
      
    return 0;
    }

    ⇒ write(1, "mook\n", 5); 는 printf("mook\n").과 같다.

     → write는 파일이나, 네트워크 등에도 쓸 수 있다.



    - 달팽이 동적배열

    #include<stdio.h>
    #include<stdlib.h>

    int main()
    {
            
    int x;
            
    int i = 0;
            
    int j = 0;
            
    int val = 0;
            
    int **arr;
            
    int input;
      
            
    while(1)
            {
                    printf(
    "input number: ");
                    scanf(
    "%d"&input);
                    
    if(input<1 && input!=-1)
                    {
                            printf(
    "다시 입력하세요.\n");
                    }
                    
    else if(input==-1)
                    {
                            printf(
    "프로그램을 종료합니다.\n");
                            
    return 0;
                    }
                    
    else
                    {
                            arr 
    = (int **)malloc(sizeof(int*)*input);
                            
    for(i=0;i<input;++i)
                            {
                                    arr[i] 
    = (int *)malloc(sizeof(int)*input); 

                                    // 열에 대한 동적 배열
                            }
                          
    // 달팽이 모양으로 입력
                            for(x=0; x<(input+1)/2; x++)
                            {
                                    
    for(i=x, j=x; j<input-x;++j) // 왼쪽 -> 오른쪽
                                    {
                                            arr[i][j] 
    = ++val;
                                    }
                                    
    for(i=x+1,j=input-x-1;i<input-x;++i) // 위 아래
                                    {
                                            arr[i][j] 
    = ++val;
                                    }
                                    
    for(i=input-x-1, j=input-x-2; j>=x;--j) 

                                                                    // 오른쪽 -> 왼쪽
                                    {
                                            arr[i][j] 
    = ++val;
                                    }
                                    
    for(i=input-x-2, j=x; i>x ;--i) //아래 -> 위
                                    {
                                            arr[i][j] 
    = ++val;
                                    }
                            }
                            
    for(i=0; i<input; ++i)
                            {
                                    
    for(j=0; j<input; ++j)
                                    {
                                            printf(
    "%3d", arr[i][j]);
                                    }
                                    printf(
    "\n");
                             }
                            
    for(i=0;i<input;++i)
                            {
                                    free(arr[i]); 
    // 열에 대한 동적 배열
                            }
                            free(arr);
                    }
                    val
    =0;
            }
            
    return 0;
    }

    ⇒ 실행 결과

     

    Posted by 동화다아아
    , |

    최근에 달린 댓글

    최근에 받은 트랙백

    글 보관함