분류 전체보기(52)
-
멀티프로그래밍
//사용자 모드에서 프로그램 실행 - 1 #Include #Include #Include #include Int main() { int fd: // open() 시스템 콜 호출 - 2 // 커널 모드로 전환 - 3 // open() 함수를 처리하는 sys_open() 커널 함수 호출 - 4 // 파일 열기의 low level 연산 수행 - 5 // 다시 사용자 모드로 전환 - 6 fd = open("data.txt".O_RDONLY); //open() 함수 이후의 프로그램을 계속해서 실행 if(fd == -1) { printf("Error: can not open file\n"); /* 파일을 열지 못했다면 종료*/ return 1; } else { printf(*File opened and now cl..
2020.01.02 -
OS구조 - 사용자 모드와 커널 모드
CPU에도 사용자모드/커널모드가 나뉨(권한 차이) 운영체제는 시스템 콜을 제공 프로그래밍 언어별로 운영체제 기능 활용을 위해 시스템 콜 기반의 API 제공 응용 프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램을 작성 응용프로그램이 실행되고 운영체제 기능이 필요한 API를 호출하면, 시스템 콜이 호출 되면서, CPU의 권한모드가 커널모드로 변경되어 OS내부에서 해당 명령이 실행되고 다시 응용프로그램으로 돌아온다.
2019.12.27 -
시스템 콜
CPU/Memory/Storage/Network > Hardware > OS > System Call > Library or API > Application / Shell > User 하드웨어의 자원을 사용하는 것을 관리하는것이 OS, OS에게 자원의 배분과 사용을 요청하는 것이 System Call, 응용프로그램이나 쉘 프로그램은 각각 시스템 콜 호출이 가능한 명령어의 모음들(라이브러리나 API)을 이용하여 시스템 콜을 호출해 OS를 통해 자원을 확보함. 일반적으로 응용프로그램을 개발한다고 하면 이러한 라이브러리나 API의 명세에 맞는 함수나 명령어를 이용하여 자원을 확보하고 그 위에서 움직이는 프로그램을 만드는 것.
2019.12.27 -
OS,배치,시분할, 멀티프로그래밍, 멀티태스킹
OS란: 컴퓨터 하드웨어와 응용소프트웨어에 대한 관리자. 하드웨어 자원 및 소프트웨어의 사용을 컨트롤함 또한 사용자와 컴퓨터 사이의 의사소통체계라고도 볼 수 있음. 배치 : 어플리케이션(응용프로그램)을 순서대로 처리하는 것. 1번이 끝나면 2번, 2번이 끝내면 3번. 단점-> 실행시간이 오래소요되는 프로그램이 앞에있을경우 뒤에 있는 짧은(더 빨리 처리할 수 있는 프로그램)프로그램이 밀려서 비효율적. 시분할: CPU가 어플리케이션을 처리하는 과정에서 시간을 쪼개어 여러가지 어플리케이션을 교차로 실행하는것, 다중 사용자 지원 및 응답시간을 최소화하기 위한 목적. -> 시간을 잘게 쪼갤수록 '동시에 처리되는 것 처럼' 느낄 수 있음 멀티프로그래밍: 어떤 어플리케이션이 시분할과정에서 처리되는 동안 CPU자원이 ..
2019.12.22 -
컴퓨터 구조 분야의 8가지 아이디어
1. 무어의 법칙을 고려한 설계 2. 설계를 단순화 하는 추상화 - 설계시간을 줄이고 생산성을 높이기 위하여 추상화 개념을 사용 - 하위 수준의 상세한 사항을 안보이게 함으로써 상위 수준 모델을 단순화 ex) 고급언어(c,java,python)가 추상화의 대표적인 예 3. Common case fast - 자주 발생하는 일을 빠르게 처리하여 성능 향상 도모 - 자주 일어나는 일에 대한 최적화 및 단순화 - 무엇이 커먼케이스인가? - 세심한 실험과 측정 필요 4. 병렬성을 통한 성능개선 - 같은 작업(큰 문제)를 여러 개의 작은 문제로 나누어서 해결하는 방법 - 병렬처리의 예 : 쓰레드 5. 파이프라이닝을 통한 성능개선 - 파이프라이닝은 병렬성의 특별한 형태 - 처음단계 출력이 다음단계 입력으로 이어지는 ..
2019.10.27 -
정지문제
정지문제란 "프로그램과 초기 입력값이 주어졌을 때, 이 프로그램에 입력값을 넣고 실행한다면 이 프로그램이 계산을 끝내고 멈출지 아니면 영원히 계속 계산할지 판정하라" 라는 엘런 튜링이 제시한 문제로 유명하다. 이런 문제를 고안한 이유는 기계적인 방식으로 모든 수학적인 증명이 가능한지를 묻는 결정문제로부터 출발한다. 결정문제를 실제 기계로 구현하기 위해 튜링머신이라는 것을 고안했는데, 튜링 머신은 1. 테이프에 기록될 수 있는 기호 및 튜링 머신의 상태와 행동표의 개수는 모두 유한해야 하며 서로 구분되어야 한다. 2. 현재 상태가 1인데 기호 A를 읽었다면 C를 기록하고 정지 3. 현재 상태가 1인데 기호 B를 읽었다면 오른쪽으로 한 칸 이동하고 상태 2로 변경 4. 현재 상태가 2인데 기호 C를 읽었다면..
2019.10.27