반응형

TIL::Today I Learn 32

[혼공컴운] '혼자 공부하는 컴퓨터구조 + 운영체제' 스터디 6주차

스와핑(Swapping)스와핑은 메모리 관리 기법 중 하나로, 사용되지 않는 프로세스를 메모리에서 보조 기억 장치로 이동시키고, 실행할 프로세스를 메모리로 가져오는 방식이다. 이를 통해 메모리의 효율적인 사용을 가능하게 하며, 프로세스 간의 자원 경쟁을 완화할 수 있다.메모리 할당 방식최초 적합 방식(First Fit Method): 최초 적합 방식은 메모리에서 첫 번째로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방법이다. 이 방식은 탐색 시간을 줄일 수 있으나, 공간 활용이 비효율적일 수 있다.최적 적합 방식(Best Fit Method): 최적 적합 방식은 프로세스가 적재될 수 있는 가장 작은 빈 공간에 프로세스를 배치하는 방법이다. 이 방식은 메모리 공간을 효율적으로 사용할 수 있지만, 작..

TIL::Today I Learn 2024.08.18

[혼공컴운] '혼자 공부하는 컴퓨터구조 + 운영체제' 스터디 5주차

동기화(Synchronization)동기화는 특정 자원에 접근할 때 한 번에 하나의 프로세스만 접근하거나, 프로세스를 올바른 순서대로 실행되도록 제어하는 것을 의미한다. 이는 시스템의 안정성을 보장하고, 자원 충돌을 방지하기 위해 필수적인 개념이다.공유 자원(Shared Resources)공유 자원은 여러 프로세스가 공동으로 사용하는 자원으로, 전역 변수, 파일, 입출력 장치, 보조 기억 장치 등이 될 수 있다. 이러한 자원은 동시에 여러 프로세스가 접근하면 문제가 발생할 수 있으므로, 접근에 대한 관리가 필요하다.임계 구역(Critical Section)임계 구역은 공유 자원에 접근하는 코드 중에서 동시에 실행하면 문제가 발생할 수 있는 코드 영역을 의미한다. 임계 구역에 한 프로세스가 들어가 있다면,..

TIL::Today I Learn 2024.08.11

[혼공컴운] '혼자 공부하는 컴퓨터구조 + 운영체제' 스터디 4주차

운영체제의 역할과 기능운영체제는 컴퓨터 시스템에서 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 소프트웨어이다. 운영체제와의 상호작용을 통해 하드웨어와 소프트웨어의 동작을 이해하고 문제 해결의 실마리를 찾을 수 있다.커널과 이중 모드커널은 운영체제의 핵심 기능을 담당하는 부분이다. 이중 모드는 CPU가 명령어를 실행하는 방식을 두 가지 모드, 즉 커널 모드와 사용자 모드로 구분한다. 시스템 호출은 운영체제의 서비스를 이용하기 위해 사용자 모드에서 커널 모드로 전환하는 방법이다. 대표적인 운영체제 서비스에는 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리 등이 있다.프로세스와 프로세스 관리프로세스는 실행 중인 프로그램을 의미한다. 프로세스는 포그라운드 프로세스..

TIL::Today I Learn 2024.07.28

[혼공컴운] '혼자 공부하는 컴퓨터구조 + 운영체제' 스터디 3주차

RAM의 종류DRAM (Dynamic RAM): 시간이 지나면 저장된 데이터가 점차 사라지기 때문에 주기적으로 데이터를 새로 고쳐야 한다.SRAM (Static RAM): DRAM과 달리 시간이 지나도 저장된 데이터가 사라지지 않으며, 주기적인 리프레시가 필요 없다.SDRAM (Synchronous DRAM): 클럭 신호와 동기화되어 작동하는 DRAM이다.DDR SDRAM (Double Data Rate SDRAM): SDR SDRAM보다 대역폭이 두 배로 넓어 빠른 데이터 전송이 가능하다.주소 변환과 관리물리 주소: 메모리 하드웨어에서 사용하는 주소이다.논리 주소: CPU와 실행 중인 프로그램이 사용하는 주소이다.MMU (Memory Management Unit): 논리 주소를 물리 주소로 변환한다.베..

TIL::Today I Learn 2024.07.21

[혼공컴운] '혼자 공부하는 컴퓨터구조 + 운영체제' 스터디 2주차

산술 논리 장치(ALU)와 제어장치산술 논리 장치(ALU)는 CPU의 핵심 부품 중 하나로, 주로 계산과 논리 연산을 담당한다. ALU는 레지스터로부터 데이터를 받아 연산을 수행하고, 제어장치로부터 제어 신호를 받아 작업을 지시받는다. 연산 결과와 상태 플래그를 출력하여 시스템의 다른 부분에서 사용할 수 있게 한다.제어장치는 CPU의 다른 부분과 외부 장치와의 상호작용을 관리한다. 클럭 신호, 현재 실행 중인 명령어, 상태 플래그, 그리고 제어 신호를 받아들이며, 이를 바탕으로 CPU 내부와 외부로 제어 신호를 보낸다.레지스터CPU에는 다양한 종류의 레지스터가 존재하며, 각각의 역할이 다르다.프로그램 카운터(PC): 다음에 실행할 명령어의 메모리 주소를 저장한다.명령어 레지스터(IR): 현재 실행 중인 ..

TIL::Today I Learn 2024.07.13

[혼공컴운] '혼자 공부하는 컴퓨터구조 + 운영체제' 스터디 1주차

스터디를 시작하며,'혼자 공부하는 컴퓨터구조 + 운영체제' 책을 공부하기 위한 스터디인 혼공학습단 12기에 신청했습니다!TIL 카테고리에 혼공단 매주 과제와 학습한 내용을 업로드 하려고 합니다.6주동안 화이팅!! 컴퓨터가 이해하는 정보컴퓨터는 0과 1로 표현되는 정보(2진수)만을 이해하며, 크게 데이터와 명령어로 구분한다.데이터 : 숫자, 문자 등의 정보ex : 10, '안녕하세요'명령어 : 데이터를 움직이고 작동시키는 정보ex : '10'과 '1'을 더해라 컴퓨터의 4가지 핵심 부품컴퓨터의 4가지 핵심 부품에는 중앙처리장치(CPU: Central Processing Unit), 주기억장치(메모리: main memory), 보조기억장치(secondary storage), 입출력장치(input/ouput(..

TIL::Today I Learn 2024.07.07

Git Hooks, Husky, Lint-Staged, ESLint 활용하여 코드 품질 유지&협업하기

Git Hooks, Husky, Lint-Staged, ESLint 는 Git 저장소에서 코드 품질을 유지하고 개발 효율성을 높이는 데 도움이 되는 강력한 도구입니다. 코드 검사 및 형식 정리 작업을 자동화하여 개발 시간을 단축하고 코드 품질을 일관되게 유지할 수 있으며, 모든 개발자가 동일한 코드 검사 기준을 적용하면 코드 오류를 줄이고 협업 효율을 높일 수 있습니다.이전의 프로젝트에서는 팀원들과 Prettier 정도만 사용하여 동일한 설정내용으로 맞춰 작업을 했었는데, 이번에 새로 진행하는 프로젝트에서는 협업에 도움되는 여러 도구들을 사용해보고자 합니다.Git Hooks 란,Git Hooks는 특정 Git 이벤트(commit, push 등) 발생 시 자동으로 실행되는 스크립트입니다. 반복적인 작업을 ..

TIL::Today I Learn 2024.05.12

GitHub push 시 매번 암호(Token) 요구하는 현상 해결하기

i@i-ui-MacBookAir nebtoon % git pushUsername for '': namePassword for '':새로운 프로젝트를 위해 GitHub에서 레포지토리를 클론한 후, push 시 마다 인증을 요구했습니다.private 레포지토리여도 매번 요구하지는 않았던 것 같아 검색해보았는데, HTTPS URL을 통해 클론된 레포지토리이기 때문에 인증을 요구한다라는 내용을 찾을 수 있었습니다. Git에서 항상 암호를 묻는 메시지를 표시하는 이유는 무엇인가요? - GitHub Docs Git에서 항상 암호를 묻는 메시지를 표시하는 이유는 무엇인가요? - GitHub DocsGitHub와 상호 작용하려고 할 때마다 Git에서 사용자 이름 및 암호를 묻는 메시지가 표시되면 리포지토리에 HTTPS..

TIL::Today I Learn 2024.05.12

[TIL] 20230727

오늘 공부한 내용📓 - C++ 개념 공부 클래스 포워드 선언(Forward Declaration) 포워드 선언이란, 클래스의 선언을 미루어서 순환참조를 피하는 방법 순환참조는 A.hpp 파일과 B.hpp 파일에서 서로를 include 하는 상황에서 발생하는 에러 //A.hpp #include "B.hpp" class A { //클래스 내용 } //B.hpp #include "A.hpp" class B { //클래스 내용 } 컴파일러가 클래스를 정확히 인식하지 못하여 에러가 발생함 클래스의 멤버 변수나 멤버 함수를 선언하지 않고, 클래스의 이름만을 미리 선언하는 방법 해당 클래스를 사용하는 코드에서는 클래스의 세부 구현을 알 필요 없이 클래스의 포인터나 참조를 사용할 수 있음 클래스의 멤버 변수나 멤버 함..

TIL::Today I Learn 2023.07.28

[TIL] 20230726

오늘 공부한 내용📓 - C++ 개념 공부 추상화(Abstract) 객체의 공통적인 특징과 기능을 하나의 추상 클래스로 표현하는 것 실제로 구현되지 않은 순수한 가상 함수들을 가지고 있는 추상 클래스를 의미 추상 클래스는 인스턴스를 생성할 수 없으며, 그 자체로 완전한 클래스가 아님 추상 클래스는 단지 인터페이스 역할이며, 이를 상속받은 파생 클래스에서 정의된 순수 가상 함수들을 반드시 구현하여야 함. 이를 통해 다형성을 구현하는 기반을 마련하고, 다른 클래스들 간의 공통된 인터페이스를 정의하여 객체 지향 프로그래밍의 유연성과 재사용성을 증가 추상 클래스를 정의하기 위해서는 하나 이상의 순수 가상 함수를 포함해야 함 순수 가상 함수(pure virtual function)는 ‘virtual’ 키워드와 함께..

TIL::Today I Learn 2023.07.28
반응형