본문 바로가기
  • 시 쓰는 개발자

CS 개념 (~24년 7월)49

RAM, ROM, Booting 학교 수업을 정리한 내용입니다. 참고만 해주세요.  0321 목요일  Q. 전원을 켰을 때 CPU가 가장 먼저 하는 일은 Fetch, 그중에서도 AR ← PC 이다. 근데 전원 끄면 레지스터의 값도 모두 날아가서 PC값도 0일텐데 값을 어떻게 넘겨줄까 ?? A. ROM , Boot loader에 대해 배워보자. RAM (Random Access Memory, DRAM) 램의 어떤 곳에 있는 데이터를 찾든 시간이 똑같이 걸린다는 의미에서 RAM이라고 불린다. 보통 DRAM이고, 휘발성이라 전원이 끄면 데이터가 날아간다.ROM (Read Only Memory)수정불가능하고, 읽기만 가능하다 하여 ROM이라 불린다.방전이 안되고, 한번 저장하면 데이터가 계속 살아있다.시작 주소를 0번지로 하고 그곳에 부트 로.. 2024. 3. 28.
CPU Instruction Cycle, Interrupt 개요 학교 수업을 정리한 내용입니다. 참고만 해주세요. 0319 화요일CPU Instruction Cycle  :  Fetch - Decode - Execute - StoreCPU는 Instruction Cycle만 반복적으로 수행한다. 다른 일은 안한다. 전기가 꺼지면 아무 일도 못한다. 1. Fetch - 명령어를 가져온다. 메모리에서 IR로 instruction을 가져온다. 정확히는 다음과 같은 과정을 거친다.AR ← PCPC++IR  ← M[AR] 2. Decode - 명령어를 해석한다.IR안에있는 명령어의 opcode를 해석해 연산의 종류, 데이터의 위치 등을 파악한다. ( Data Fetch if MRI instruction ) 3. Execute - 명령어를 실행한다. 4. Store Instru.. 2024. 3. 25.
CPU 레지스터 학교 수업을 정리한 내용입니다. 참고만 해주세요. 0314 목요일 CPU - Data Unit(=Data Path)CPU 구조 대략적으로 설명ALUOperand1. ACOperand2. DRALU의 출력은 AC로 레지스터의 기능 (TR, INPR, OUTR는 다루지 않음)데이터 받고 load데이터 값 증가 (inc)데이터 삭제 (clear) Special Purpose RegisterAR (Address Register)명령어의 주소를 PC로부터 전달받아 저장한다.데이터 주소 가능 , 명령어 주소 가능PC (Program Counter)"다음 실행할" 명령어의 메모리상 주소를 저장한다.데이터 주소는 불가능 , 명령어 주소만 가능IR (Instruction Register)실행할 명령어를 저장한다.데이터 .. 2024. 3. 22.
OS 기본규칙 (2) 학교 수업을 정리한 내용입니다. 참고만 해주세요. 0312 화요일 OS 14개 기본 규칙 (믿고 가기) 8. 모든 내부 활동들은 메인 메모리를 사용한 CPU에 의해 실행되는 프로그램들이다. 즉, 컴퓨터에서 어떤 일이 일어나고 있다 = CPU가 메인 메모리를 이용해 프로그램을 실행중이다.  9. 프로그램은 User Program(System Program) / OS Program 이렇게 2개의 종류만 있다. Application들은 다 User Program 이다. 브라우저, 컴파일러, 에디터같은 것들은 System Program이라고도 하는데, 여기서는 User Program으로 합쳐서 간주한다. 10. 모든 프로그램은 User Program / OS Program으로 나뉜다. 11. OS가 하는 일은 .. 2024. 3. 19.
OS 기본규칙 (1) 학교 수업을 정리한 내용입니다. 참고만 해주세요. 0307 목요일 컴퓨터 시스템의 4개 컴포넌트하드웨어 → 운영체제  → 애플리케이션 (시스템프로그램/애플리케이션 프로그램)  → 사용자[2] 디바이스 내에서는 구분을 굳이 하지 않는다. CPU와 메모리가 있고, 그 외는 디바이스이다.[3] 커널은 OS의 핵심기능을 담당하고, 그 위에 Application, 그 아래에는 하드웨어가 있다. OS 오버뷰운영체제는 하드웨어를 관리해준다.  OS가 UserProgram과 HardWare를 분리한다. 이를 통해 유저가 편리하게 쓸 수 있게 도와주고, 자원 관리를 효율적으로 할 수 있다.(User Convenience & Resource efficiency) 우리는 CPU, Memory, HDD를 메인으로 배운다.CP.. 2024. 3. 17.
과장님이 되는 운영체제 학교 수업을 정리한 내용입니다. 참고만 해주세요. 0305 화요일 교수님은 과장 될 사람들을 가르친다. 멋진 과장이 된다는 마인드로 공부해라.컴퓨터구성 내용 알고 있어야함. CPU, 레지스터 등.여기서 3개만 배운다. CPU(10주) / 메모리(3주) / 하드디스크(2주)나중에 까먹을 내용도 지금 필요하면 공부해라. 까먹으면 그때 가서 또 공부해라. 대신 2번째 공부할 때는 처음보다 쉽고 빠르게 할 수 있다.과장님 되는 법) 관심 - 의지 - 관찰 - 습관 - 통찰력(내년엔 어떤 기술이 나올지에 대한 통찰력)싸워서 이기는 게 아니라, 이기기로 되어있는 전투를 단지 실행으로 옮겨라.습관은 의도적으로 시작하고, 나중엔 의식하지 않아도 할 수 있다.내가 할 수 있는 것만 하자. 그리고 남은 시간에는 내가 하고.. 2024. 3. 17.
warning: LF will be replaced by CRLF 다른 상황에서도 뜨는 에러인지는 모르겠는데, 나는 github에 올리려고 add하니까 뜬 에러였다. 그래서 깃허브와 관련이 있는지는 모르겠지만 github 카테고리에 넣어두었다 ... 보통 window와 mac이 협업할 때 생기는 오류라고 한다. 문서의 끝이 LF(맥)와 CRLF(윈도우)로 서로 다르기 때문에 오류가 발생한다. git config --global core.autocrlf true 오류 해결을 위해, LF와 CRLF를 서로 변환해주는 기능을 켜준다. 2024. 1. 23.
프로젝트를 github에 연결하기 (왕초보) 깃허브를 연결할 때는 repository를 먼저 만들고 연결할 수도 있고, 프로젝트 파일을 먼저 만들고 후에 깃허브 repository를 만들어서 연결할 수도 있다. 이번 포스팅에서는 후자를 이야기해보자. 프로젝트 초기에, 노트북에서 작업을 먼저 하고 있었는데 이후 팀 깃허브가 만들어져서 연결해야한다고 치자. git init 먼저 git을 사용할 준비를 해야한다. 그것이 git init인데, 이를 하지 않고 깃허브를 연결하려고 하면 아래와 같은 오류가 발생한다. 따라서 우리는 git init 후, 깃허브와 연결한다. git remote add origin [깃허브주소] 이제 깃허브와 프로젝트를 연결해야한다. 명령어는 git remote add origin [깃허브주소]이다. 아래 사진과 같은 과정을 거치.. 2024. 1. 18.
리눅스로 *.c파일 컴파일하기 GCC란? GCC는 GNU Complier Collection의 약자로, 리눅스를 공부하며 접하게 된다. 영어 뜻에서도 알 수 있듯이 컴파일러이다. 그래서 리눅스상에서 어떤 파일을 만들고 실행하고 싶을 때 컴파일하는 도구로써 사용된다. 참고로, 약자에서 나오는 GNU는 운영체제라고 생각하면 되고, GNU와 Linux를 합쳐서 사용하기 때문에 Linux라고 하는 경우가 많다. 보통 C언어를 작업할 때 접하고, 요즘엔 C++, java등도 지원한다고 한다. 컴파일 과정 컴파일 과정을 알아야하는 이유는, 하나의 소스파일이 실행되면서 점점 이상한 확장자의 파일들이 생기는데 그때마다 혼란스럽지 않기 위함이다. 컴파일해서 소스코드가 실행파일이 되는 과정을 4가지 단계를 거친다. 즉, 저기 아래에서 이야기할 예정인 .. 2023. 11. 26.