CS 11

레지스터 종류

PCB 내부에 무엇이 들어있나 갑자기 궁금해졌다.그 안에는 레지스터의 여러 종류들이 보였고,레지스터에 대해 좀 더 알고 싶어서 포스팅을 만든다. ✨ Address Registers PC (Program Counter, 프로그램 카운터)PC는 일반적으로 순차적으로 진행현재 실행 중인 명령어의 다음 위치 가르키는 주소 저장순차적 실행 흐름이 끊기는 경우특정 메모리 주소로 실행 흐름을 이동하는 명령어 인터럽트 발생 함수 호출 시 PC 값을 스택에 저장하고, 함수 호출이 끝나면 스택에 저장된 값이 다시 PC로 복귀MAR (Memory Address Register, 메모리 주소 레지스터)메모리에서 데이터를 읽거나 쓸 때 필요한 메모리 주소 저장SP (Stack Pointer, 스택 포인터)스택 구조에서 가장 최..

CS 2024.11.04

Pintos Project1 -키워드 정리 (코드로 이해하기) / 프로세스, 스레드, 멀티 스레딩 문제

프로세스 (Process) / 스레드 (Thread) 프로세스 (Process)실행 중인 프로그램의 인스턴스독립적 메모리 공간각 프로세스는 각각 독립된 메모리 공간을 가짐다른 프로세스가 접근 불가능고유한 자원 CPU, 메모리, 파일 핸들 등의 자원을 OS로 부터 할당주소 공간 분리프로세스는 독립된 주소 공간을 가짐다른 프로세스의 메모리에 직접 접근 불가능IPC (Inter-Process Communication) 독립된 메모리를 관리하여 컨텍스트 스위칭으로 오버헤드 프로세스 예시#include #include #include int main() { pid_t pid = fork(); // 새로운 프로세스 생성 if (pid This is the parent process. PID: 1234T..

CS 2024.11.02

네트워크 소켓 및 함수 정리 (CS:APP)

✨ getaddrinfo( )int getaddrinfo(const char *hostname, const char *port, const struct addrinfo *hints, struct addrinfo **result); hostname과 port로 소켓 주소를 얻음IPv4 / IPv6 모두를 지원hostname은 얻고자 하는 호스트 이름  (NULL은 로컬 호스트 주소)hints는 결과 리스트 필터링을 위한 옵션 result 는 결과 리스트의 헤드성공 시 0을 반환 / 실패 시 오류 코드 반 ✨ socket( )int socket(int domain, int type, int protocol);네트워크 통신에서 사용되는 소켓 생성domain은 통신에 사용될 주소 체계 ( AF_INET(IP..

CS 2024.10.29

네트워크 핵심 키워드 정리 (네트워크 계층,소켓,CGI,HTTP,Proxy 등등)

📌 파일 디스크립터 (file descriptor)프로세스가 파일이나 입출력 장치에 접근할 떄 사용하는 일종의 "핸들"(여기서 핸들은 실제 자원과 프로세스 간의 연결을 추상화한 정수 값) 1. 파일 열기open() open() 함수로 시스템 호출을 사용한다. 호출이 성공하면 운영체제는 파일 테이블에 새 항목을 추가하고,참조할 수 있는 파일 디스크립터(정수)를 반환한다.  예를들어 파일을 열때 파일 디스크립터로 3이라는 숫자를 반환 받으면,프로세스는 3을 사용해서 그 파일에 접근 (보통 0,1,2는 기본적으로 표준 입력, 출력, 오류에 할당되어 3부터 시작됨) 2. 파일 읽기와 쓰기파일 디스크립터를 이용해아래와 같은 시스템 호출을 통해 데이터를 읽거나 쓸 수 있다.read(fd, buffer, size)..

CS 2024.10.28

정렬 알고리즘 (삽입,선택,버블,셸,퀵,힙,병합 정렬)

✨ 정렬 알고리즘  크래프톤 정글에서 퀵 정렬에 대해서 쪽지 시험이 나왔다. 퀵 정렬을 공부하면서 다른 정렬 방법에 대해서도 궁금증이 생겼고, 책과 블로그들을 참고하면서 정리 해보았다.  🔖 Insertion sort (삽입 정렬) 삽입 정렬은 손안의 카드를 정렬하는 방법과 유사하다.  새로운 카드를 기존 정렬된 카드 사이 올바른 위치에 삽입한다. key 값은 2번째 인덱스부터 시작되며, key 값이 자료의 길이만큼 이동되면 정렬이 완성된다.   특징 : 1. 안전한 정렬 방법이다. (바로 옆의 데이터와 비교 )→ 안전하다는 것을 동일한 값을 가진 원소들의 상대적인 순서가 유지되는 것을 의미2. 이미 정렬되어 있는 경우나 자료의 수가 적을 경우 구현이 간단3. 비교적으로 많은 레코드들의 이동이 필요하다..

CS 2024.09.11

1장. 컴퓨터 시스템 (Computer Systems A Programmer's Perspective)

🔖1.1 정보는 비트와 컨텍스트로 이루어진다. 소스 프로그램은 0 또는 1로 표시되는 비트들의 연속으로, 바이트라는 8비트 단위로 구성된다. 각 바이트는 프로그램의 텍스트 문자로 나타낸다. 그리고 대부분의 컴퓨터 시스템에서는 텍스트 문자를 아스키(ASCII) 표준을 사용하여 표시한다. 오로지 아스키 문자들로만 이뤄진 파일들을 텍스트 파일이라고 부른다. (이외의 다른 모든 파일들을(실행파일 등) 바이너리 파일이라고 한다.) + 최근에는 아스키 대신 유니코드가 많이 사용되고 있다. 모든 시스템 내부의 정보 (데이터,네트워크,프로그램 등)는 비트들로 표시되는데, 서로 다른 객체들을 구분하는 유일한 방법은 이들을 바라보는 컨텍스트에 의해서이다. 여기에서 컨텍스트는 저장매체, 프로세서의 구조, 파일 형식, 네트..

CS 2024.09.08

인증과 인가 / 쿠키와 세션 / 토큰과 JWT 이란 ?

웹서비스를 만들기위해서는 로그인 기능이 거의 필수적이다. 로그인 기능이 있어야 사용자에게 맞춤형으로 응답을 보낸다.  그렇다면 사용자로부터 인증을 받아야하는데,이때 쿠키와 세션이 쓰인다.  이번 포스팅에서 쿠키와 세션, 그리고 토큰 추가로 JWT에 대해 알아보고, 간단히 파이썬으로 구현해본다. 인증 (Authetication) : 사용자의 신원을 검증인가 (Authorization) : 인증 이후 프로세스로, 인증된 유저가 어떠한 자원에 접근할 수 있는지 확인 사용자가 로그인을 인증하면 → (인증) 서버측에서 쿠키를 주던가 세션 ID를 저장한다. →  (인가)  🔖 웹 어플리케이션 인증의 특수성비연결성 (Connectionless):서버와 클라이언트는 연결되어 있지 않고, 리소스 절약을 위해 서버는 하..

CS 2024.09.06

API (Application Programming Interface)는 무엇일까 ?

🔍  API를 알아보기 전에API, REST API 이런 단어를 프로그래밍을 하다보면 꼭 듣게 되는데,어떤건지는 대충 느낌을 알지만, 정확히 뭔지는 잘 설명을 못한다. API에서 I는 Interface로 사전적 의미로는 "두 물체 사이에서 상호 간 대화" 이다.즉, 컴퓨터에서 인터페이스는 read 또는 write의 역할을 해준다.ex) 키보드는 사람과 컴퓨터를 연결해주는 (물리적)인터페이스  그래서 이번 기회에 구체적으로 API에 대해 알아보고 공부 해보고자 한다. 🌟 API  (응용 프로그램 프로그래밍 인터페이스)아래 정의는 똑같은 말인데, 좀 다양한 말들로 설명하면 좀 이해가 쉬워져서 여러개를 가져와봤다. 정의 1.  응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능..

CS 2024.07.02

명령 프롬프트(터미널)로 특정 파일 찾기

내가 원하는 파일을 찾고 싶을때대부분 폴더 상단에 검색을 한다. 이렇게도 찾아지기는 하는데, 때로는 하루종일 찾게된다 ....  겨우 바탕화면에 붕어빵.txt 하나를 못 찾고 있다.이런 경우 터미널을 사용하면 훨씬 빠르게 찾을 수 있다. 매우 간단하니 알아두면 매우 유용할 것 이다. 바탕화면에 붕어빵.txt 파일을 미리 만들어 놨고, 이 파일을 찾는거를 목표로 하자 !    window + r  키를 눌러 cmd를 입력한다.그러면 검정색 명령 프롬프트(터미널)이 뜬다. 현재 내 컴퓨터 터미널 경로는  C:\User\chosun 으로 되어있다.    붕어빵 파일이 어디에 있는지 모르니 최상위 폴더로 디렉트하자.상위 폴더로 가는거는 cd..을 하면 된다. cd.. 명령어로 C: 폴더 위치까지 도달했다.   ..

CS 2024.03.18

[Python] os/shutil 라이브러리 정리

이 라이브러리들을 엄청 자주쓰지는 않지만 가끔 쓸 때 매일 까먹는다.그래서 간단하게 가장 기본적이고 핵심적인 os/shutil 라이브러리 함수를 정리해보았다.이거 익숙해지면 폴더 관련해서 노가다 안해도 된다 ...ㅎㅎ!!  가장 먼저 os,shutil의 라이브러리를 호출한다.import osimport shutil  - 경로 확인[현재 작업 경로]os.getcwd() # 현재 작업 경로지금 실행 파일의 작업 경로가 나온다  [해당 경로의 파일들 확인]os.listdir() #해당 경로의 파일들 확인현재 경로상의 파일 리스트이다.   os.listdir(path= '/Users/jerim/Desktop/따릉이') # path = "찾고자 하는 경로"만일 특정 경로의 파일 리스트를 보고싶을 때는 p..

CS 2023.11.09