cs9 System Call과 커널 System Call 정의 응용 프로그램의 요청에 따라 커널에 접근하기 위한 call이다. 일반 응용 프로그램은 직접적으로 커널에 접근할 수 없다. 필요한 이유 특정한 작업은 해커가 시스템에 피해를 입힐 수도 있고 초보 프로그래머가 실수로 잘못 사용해서 시스템을 망가뜨릴 수 있다. 이를 예방하기 위해서 커널에서만 실행할 수 있는 작업을 따로 두고 있다. System Call을 통해서 응용 프로그램은 하드웨어 장치를 사용할 수 있고 각종 자원을 할당 받을 수 있고 각종 작업을 할 수 있다. 해당 system call이 적절한 system call인지 판단하고 적절한 system call이라고 판단되면 커널 모드로 진입한 후 필요한 작업을 한다. 사용되는 곳 프로세스 제어 프로세스 생성(create proc.. 2023. 4. 21. 프로세스와 스레드(process and thread) 프로세스 의미 메모리에 올라와 실행되고 있는 프로그램 인스턴스 운영체제로 부터 자원을 할당받는 단위 즉 실행된 프로그램을 의미한다. 할당 받는 시스템 자원의 예 cpu 시간 운영되기 위해 필요한 주소 공간 code, data, stack, heap 구조로 되어 있는 독립된 메모리 영역 특징 기본적으로 프로세스당 최소 하나의 스레드를 가지고 있다. 각 프로세스는 독립된 주소 공간에서 실행되며 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 스레드 의미 프로세스 내에서 실행되는 여러 흐름의 단위 프로세스가 할당받은 자원을 이용하는 실행의 단위 특징 스레드는 프로세스 내에서 code, data, heap은 공유하며 stack만 따로 할당받는다. 프로세스의 자원을 프로세스 내부의 스레드끼리 공유하면서 실행된.. 2023. 4. 18. 메모리 구조 기본 개념 메모리는 한 칸당 1byte의 크기를 가진다. 32비트 운영체제(x86)은 2^32의 메모리 주소를 가질 수 있고 이는 4GB에 해당한다. 그래서 32비트 운영체제는 최대 4GB까지 밖에 메모리를 설치하지 못하는 것이다. 64비트 운영체제의 경우에는 훨씬 큰 용량의 메모리도 설치할 수 있다. 그리고 64비트 운영체제의 메모리 주소를 나타내기 위해서는 8byte(64비트) 크기가 필요하다. 32비트 프로세서의 범용 레지스터의 크기는 32비트 즉 4바이트이고, 64비트 프로세서의 범용 레지스터의 크기는 64비트, 즉 8바이트이다. 즉 64비트 프로세서의 경우에는 2^64의 메모리 주소에 접근할 수 있게 되는 것이고 4GB보다 훨씬 큰 램을 적용할 수 있는 것이다. 메모리 구조 [Text(code).. 2023. 4. 15. 메모리 계층 구조 cpu는 속도가 매우 빠르므로 병목 현상을 줄이기 위해서 속도가 빠른 메모리를 필요로 합니다. 하지만 속도가 빠른 메모리일수록 속도대비 가격이 증가하기 때문에 메모리 계층 구조를 사용합니다. 레지스터 - 캐시 메모리 - 메인 메모리(random access memory) - 보조기억장치(hdd, ssd) 순으로 속도가 빠르며 용량대비 가격이 비쌉니다. 레지스터 같이 빠른 메모리에는 자주 사용하는 데이터를 저장하여 cpu에서 해당 데이터를 자주 사용할 수 있게 하고 보조기억장치 같이 느린 메모리에는 자주 사용하지 않는 데이터도 같이 저장하게 됩니다. 참조: https://c4u-rdav.tistory.com/88 2023. 4. 15. 파이프라이닝 개념 명령어를 순차적으로 실행하는 프로세서에 적용되는 기술로, 한 번에 하나의 명령어만 실행하는 것이 아니라 하나의 명령어가 실행되는 도중에 다른 명령어를 시작하는 식으로 여러 개의 명령어를 실행하는 기법이다. 순차적 처리에서는 12클럭이 필요하지만 파이프 라이닝을 적용하면 7클럭에 해결 가능하다. 파이프라이닝에 의한 속도 향상 파이프라인 단계 수를 k, 실행할 명령어 수 N, 각 파이프라인 단계가 한 클록 주기씩 걸린다고 하면. 즉 첫번째 명령어를 실행하는데 k 주기가 걸리고 나머지 N - 1개의 명령어 개수 만큼 한 주기씩 추가된다. 즉 명령어 N의 수가 무한히 증가하면 결국 k단계만큼 속도가 빨라진다. 해저드(harzard) 각 명령어의 처리시간이 일정하지 않고 처리 단계가 균등하지 않아서 문제가 .. 2023. 4. 15. RISC, CISC 개념 CPU의 명령어셋 아키텍처 설계 RISC(reduced instruction set computer) 간단하고 적은 종류의 명령어와 주소 지정 모드 사용 고정 길이 명령어 형식. 즉 파이프라이닝에서 효율적이다. 각 명령어 사이클을 1사이클로 일정하게 조정하였다. 명령어가 하드웨어적이라 호환성이 낮다. → 내부 명령어들을 하드웨어적으로 구성하여 제어기가 제거된 부분에 레지스터 뱅크와 캐시를 둔다. 그래서 메인 메모리 접근 횟수를 줄이고, 속도가 빨라진다. 명령어의 길이가 미리 정해져 있어서 해석 속도가 빠르다. → 디코더가 커질 필요가 없으니 큰 전력소모와 발열이 야기되지 않는다. 작고 빠른 명령어를 사용하기 위해 많은 범용 레지스터가 사용되며 처리속도가 빠르고 하드웨어 구조가 간단하다. 컴파일러 최.. 2023. 4. 15. 이전 1 2 다음