본문 바로가기

전체 글

(46)
09년 1학기 [오토마타] 보호되어 있는 글입니다.
09년 1학기 [컴파일러] 보호되어 있는 글입니다.
[데이터통신] CDMA/CD simulator 보호되어 있는 글입니다.
[자료구조] Term project 보호되어 있는 글입니다.
[자료구조] Linked List (데이터 관리 방법) Linked list 란 배열과 대비되는 개념으로 개발할 때 배열에 비해 생각해야 하는 것도 많고 다루기 귀찮은 자료구조 이다. 즉, 우리가 자료들을 관리할 때 구조체를 많이 이요하는데 이 구조체의 객체를 배열로 선언해서 사용하는것과 다르게 필요할 때마다 동적할당으로 ( 주로 malloc을 이용 ) 객체를 생성해서 사용하는 것이다. 특이한 점은 Linked list 란 말 그대로 구조체의 객체들이 linked 되어 있는 것인데, 이것은 구조체의 인자중에 하나의 포인터를 만들어 각 객체들 끼리 서로 포인터를 연결 시켜서 서로 연관성을 주는 것이다. 예를들면 typedef struct linked_list { char name[20]; int phone; linked_list *pointer; }linked..
운영체제의 구조 ( 스케줄링 ) 스케줄링이란 CPU 사용권을 요청하는 프로세스들이 여럿 있을 때 이들 경쟁 관계에 있는 프로세스들 중에서 어떤 프로세스에게 CPU를 할당할 것인가를 결정하는 정책이다. 프로세스 스케줄링에 있어 기준은 공평성과 효율성이다. 특정 프로세스에 대해 자원 할당이 불공평 하게 지연되어서는 안되며 , 스케줄링 과정 자체도 효율적이어야 한다. 스케줄링의 목표는 프로세스의 반응 기간과 단위 시간당 처리량을 늘이는 것이다. 선점형 멀티태스킹에서는 운영체제가 시스템 자원 특히 CPU를 완전히 선점한 상태에서 각 프로세스에게 CPU를 할당한다. 이 경우 보통 10ms 정도의 시간 단위로 CPU를 프로세스별로 돌아가면서 할당 비 선점형 멀티태스킹에서는 운영체제가 아니라 프로그램의 프로세슫르이 CPU를 제각ㄱ ㅣ알아서 사용하고..
운영체제의 구조 ( 프로세스 ) 프로세스의 의미는 메모리에 로드되어 실행 중인 프로그램을 말한다. 프로그램이 실행 가능 하려면 CPU가 인식할 수 있는 기계어로 구성되어 디스크에 저장되어야 한다. 이 상황에서 프로그램에 대해 실행 요청이 오면 바이너리 코드는 비로소 메인 메모리에 적재되고 실행 가능한 상태가 되는데, 이와 같은 상태의 프로그램을 가르켜 프로세스 라고 한다. 이런 프로세스는 Task 라고 불리기도 한다. UNIX 시스템에서 임의의 프로그램이 실행되려면 하나의 프로세스(부모) 가 또 다른 프로세스(자식)를 추가로 생성한 다음, 자식 프로세스를 해당 실행 파일과 연관 지음으로써 원하는 프로그램이 실행된다. 즉 , 임의의 프로그램을 실행하라는 명령을 입력받은 프로세스는 자신과 동일한 일을 할 자식 프로세스를 생성하고 이렇게 생..
운영체제의 구조 ( 파일 시스템 ) 파일 시스템이란? 물리적인 디스크 영역에 있는 파일 또는 디렉토리의 집합을 말한다. UNIX 시스템에서는 데이터를 파일 형태로 관리하고, 이런 파일들이 모여 디렉토리 계층 구조가 된다. 파일의 종류에는 일반 데이터 파일, 실행 프로그램인 바이너리 파일, 디바이스 파일 그리고 파일의 집합체로 계층 구조의 정보를 갖는 디렉토리 파일 등이 있다. 물리적인 입출력 장치( 하드디스크 , 프린터 ) 등을 참조하는 파일이다. UNIX 시스템은 디바이스 파일을 이용해서 해당 하드웨어에 접근한다. 즉, 입 출력 장치를 하나의 파일로 인식하여 제어한다. 디바이스 파일들은 /dev 디렉토리 안에 있다. 블록 디바이스 : 입 출력시 커널 내의 특정 버퍼를 이용 ( 하드 디스크 , CD - ROM 등 ) 문자 디바이스 : 버퍼..