컴퓨터공학기초 및 이론(21)
-
기계어와 어셈블리어 고급언어
고급언어: 일반적으로 언급되는 프로그래밍 언어 C언어, 파이썬, 자바 등 고급언어를 컴파일러가 어셈블리어로 번역 어셈블리어 : 컴파일러 부터 생성된 어셈블리어는 기계가 이해할 수 있는 형태로 번역됨 기계사고방식의 언어 어셈블러는 어셈블리어를 기계어로 번역 기계어: 기계어는 기수가 2인 숫자로 구성됨 숫자 단위 하나는 비트(bit) 컴퓨터가 이해할 수 있는 비트들의 집합 시스템 소프트웨어: 공통적으로 필요한 서비스를 제공하는 소프트웨어 운영체제, 컴파일러, 로더, 어셈블러 프로그램 -하드웨어간의 인터페이스 역할 High Level Language 기계어를 고도로 추상화한 표현으로써 인간이 이해하기 쉬운형태 프로그램을 개발한 기종에 상관없이 어느 컴퓨터에서든 실행가능한 형태 컴파일 과정에서 불필요한 inst..
2020.01.05 -
컴퓨터의 구성요소 및 역할
컴퓨터의 구성요소 - 입력 (Input) / 출력(Output) / 메모리(Memory) / 데이터패스(Data Path) / 제어유닛(Control) 구성요소별 역할 프로세서 - 메모리로부터 명령과 데이터를 얻음, 제어유닛은 프로그램 명령에 따라서 데이터패스, 메모리, 입/출력의 동작을 결정함. 메모리 - 실질적으로 데이터가 저장되는 공간 입력 - 데이터를 메모리에 쓴다 출력 - 메모리로부터 데이터를 읽는다. 프로세서의 역할 : CPU - 메모리로부터 명령어를 받아와 제어신호를 생성 - 컴퓨터 명령어(기계어)를 해석하고 연산함 - 컴퓨터 기술을 이끄는 원동력 - 인간의 두뇌와 같은 역할 GPU - 픽셀로 이루어진 영상을 처리하는 용도로 탄생 - 싱글코어는 CPU보다 저성능이지만 병렬적인 수천개의 코어가..
2020.01.02 -
멀티프로그래밍
//사용자 모드에서 프로그램 실행 - 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