목록Computer Science (88)
ecsimsw
OS Kernel - kernel은 운영체제의 핵심으로 Cpu, Memory, Device를 통제한다. 메모리의 할당을 관리하고, 프로그램과 하드웨어의 보안을 책임지며, 하드웨어를 추상화하여 프로그래머가 보다 쉬운 프로그래밍으로 컴포넌트를 관리할 수 있도록 한다. System call - 운영체제에서 응용프로그램이 커널에 작업을 요청에 따라 커널에 접근하기 위한 인터페이스이다. 즉 프로그래밍 언어로 손댈 수 없는 하드웨어 영역을 직접 접근하여 운영 할 수 있도록 하는 것이다. system call에는 다음의 유형이 있다. - 프로세서 제어(process Control) - 파일 조작(file manipulation) - 장치 관리(Device Management) - 정보 유지(Information ma..
Booting Boot process - Bios : check memory condition / connected hardware. - MBR : BIOS calls code stored in the MBR. - Active partition : MBR loads code from the bootsector of the active partition. - Bootloader : bootsector loads and runs the bootloader BIOS - Basic Input Output System 의 약자로 메모리와 접속된 하드웨어를 체크한다. 날짜 및 시간 등 시스템 파라미터나 CPU/메모리 설정, 주변 관리 기기 설정을 할 수 있다. MBR - Master Boot Record의 약자로,..
Operating System Os - 2학년을 마치고 휴학 후, 4학기 중 가장 기억에 남는 수업을 고르라고 하면 1학년 1학기 때 수강한 C언어 수업, 2학년 2학기에 수강한 "시스템 프로그래밍" 수업을 고를 것이다. 대학에 처음 입학하여 중간고사 점수가 평균보다도 낮아 열받아 공부하면서 처음 프로그래밍의 흥미를 느끼게 해준 C언어 수업과 프로그램이 작동하는 방법을 보면서 너무 소름이 돋고 재밌어 강의 시간만을 기다렸던 시스템 프로그래밍 수업이다. (기말고사 때 손코딩으로 6시간을 어셈블리 프로그래밍과 컴퓨터 계산 순서를 적고 나왔을 때 그 쾌감은 정말 최고였던거 같다.) 시스템 프로그래밍 수업에선 기본적인 컴퓨터의 구조와 MIPS 어셈블리어로 Structure, Factorial, Linked Li..
Data Transmission / Reception Encapsulation - 데이터가 송신될 때, 수신 시 동일한 계층에서 필요할 정보를 기존 데이터에 덧붙여 다음 계층으로 넘기는 과정을 Encapsulation, 반대로 데이터가 수신될 때, 송신 시에 동일한 계층에서 덧붙여준 필요 정보를 데이터에서 꺼내 해석하는 것을 de-Encapsulation 이라고 한다. 송신 시 추가된 정보는 수신 시 그 역순으로 해석된다. 송신 시 A 계층에서 추가된 정보는 수신 시 A 계층에서만 사용될 수 있고 다른 계층은 볼 수 없다. Header / Trailer - 송수신을 위한 데이터는 각 계층에서 필요한 정보를 앞, 뒤에 붙여 전송되고, 해석된다. 이때 앞에 붙는 데이터를 헤더, 뒤에 붙는 데이터를 트레일러라..
Tcp/ip - tcp/ip는 전 세계적으로 통용된 통신 프로토콜이다. 아래는 OSI 7 layer와 TCP/ip 5 layer 으로, OSI는 IOS에서 컴퓨터 네트워크 프로토콜을 7 계층으로 나누어 모델화 한 것이다. Tcp/Ip 는 5단계로 나누어 모델링 했는데 트랜스 포트 층에 Tcp 프로토콜이 존재하고 네트워크 층의 프로토콜로 존재하기 때문에 이와 구별하여 위 5단계를 갖는 전체 계층을 tcp/ip protocol family라고도 한다. - 각 계층은 다음의 역할을 한다. Application - 사용자에게 가장 가까운 층으로 애플리케이션에 맞춰 통신을 수행할 수 있도록 한다. (ex, HTTP SMTP POP3 FTP TELNET NNTP RCP) Transport - 송신되는 데이터를 수신..
Network / Protocol Network - 네트워크란 자원을 서로 주고 받을 수 있는 상태를 의미하며, 컴퓨터끼리 케이블이나 적외선, 전파 등을 이용해서 다양한 데이터를 주고 받을 수 있음을 말한다. - 네트워크의 규모에 따라 비교적 좁은 공간의 기기끼리 연결한 네트워크는 Local Area Network를 줄여 LAN이라고 하고, 지리적으로 먼 기기끼리 연결한 대규모의 네트워크는 Wide Area Network를 줄여 WAN이라고 한다. 이런 LAN,WAN 들을 연결한 전 세계 규모의 네트워크가 인터넷인 것이다. Protocol - 네트워크 안에서 서로 다른 기기가 데이터를 주고 받으려면 미리 정해진 약속을 따라야 한다. 이러한 규정, 약속을 protocol 이라고 하고 특별히 통신을 위한 약..
아래 예시를 보자. 인자와 매개변수를 구분할 수 있겠는가. void int add(int x, int y){ return x+y; } void main(){ int x = 1; int y = 3; int sum1 = add(x,y); int sum2 = add(10, 20); } Parameter (매개 변수)는 함수 호출 시 argument값을 받아 처리하기 위한 중간 변수이다. add 함수의 x,y 변수가 매개변수이다. Argument (실행 인자)는 함수 호출 시 parameter에 직접 대입되는 값이다. main 함수에서 sum1을 위한 add라면 x와 y가, sum2를 위한 add에서는 10과 20이 각각 인자에 해당한다.
Buffer와 Cache 모두 처리 속도가 다른 두 장치에서 효율을 위해 사용하는 장치라고 이해했으나 둘의 명확한 차이가 궁금해 공부했다. 사실 검색으로 그 둘의 개념을 같게 설명하는 페이지가 매우 많았고, 나는 그중에서 나무 위키, 상주시 사이버 캠퍼스 , 다음 오픈 지식 를 주로 참고하였다. Cache와 Buffer는 모두 처리 속도가 다른 두 기기를 더 효율적으로 사용하기 위한 임시 메모리이다. 그중 cache는 속도 향상에 더 집중하여 사용되는데 예를 들어 Cpu가 HDD에서 데이터를 가져와 처리할 때, 처리 속도가 느린 HDD의 데이터를 보조기억장치보다는 빠른 주기억 장치(RAM)에 할당된 임시 메모리(cache)에 저장한다면 CPU는 이 임시 메모리가 가득 찼나만 확인하고 일정 양이 쌓이면 처..