컴퓨터 기초 20

Pintos Project1 - Priority Scheduling (2)

Pint OS project 1 - Priority Scheduling (1)Pint OS project 1 -Alarm Clock (1)시작 준비가 안됐다면, 아래 포스팅으로 감 잡기 Pint OS project 1 - 시작 준비✨ Pint OS Pintos는 x86-64 아키텍처용으로 설계된 간단한 운영체제 프레임워크Pintos는 커널 스jerry-k.site(바로 이어지는 Priority Scheduling 포스팅)Priority Scheduling (1) 없이 이해하기 힘듬때문에 안봤다면 꼭 봐야 한다.🅿️ Priority Scheduling높은 우선순위의 스레드가 낮은 우선순위 스레드보다 먼저 실행되도록 스케줄링ready_list 우선순위에 따라 정렬ready_list에 새로운 스레드 추가될 ..

Pintos Project1 - Priority Scheduling (1)

Pint OS project 1 -Alarm Clock (1)시작 준비가 안됐다면, 아래 포스팅으로 감 잡기 Pint OS project 1 - 시작 준비✨ Pint OS Pintos는 x86-64 아키텍처용으로 설계된 간단한 운영체제 프레임워크Pintos는 커널 스레드, 사용자 프로그램 로jerry-k.site  🅿️ Priority Scheduling높은 우선순위의 스레드가 낮은 우선순위 스레드보다 먼저 실행되도록 스케줄링ready_list 우선순위에 따라 정렬ready_list에 새로운 스레드 추가될 때마다, 위치 조정스케줄러는 가장 높은 우선순위 스레드 선택해 CPU 할당우선순위에 따른 즉각적인 양보 (추가 된 스레드 높은 우선순위 가지는 경우)즉시 CPU를 양보하여 우선순위가 높은 스레드 실행..

Pintos Project1 - Alarm Clock (1)

시작 준비가 안됐다면, 아래 포스팅으로 감 잡기 Pint OS project 1 - 시작 준비✨ Pint OS Pintos는 x86-64 아키텍처용으로 설계된 간단한 운영체제 프레임워크Pintos는 커널 스레드, 사용자 프로그램 로딩 및 실행, 파일 시스템을 지원 Pint OS projects Project 1 (Threads): 스레드와 동jerry-k.site ⏱️Alarm Clocktimer_sleep() 함수를 수정busy waiting을 피하는 방식으로 재구현 목표timer_sleep() 함수는 devices/timer.c 파일에 있음반복적으로 시간이 경과했는지를 체크하고 thread_yield()를 호출해 CPU를 낭비하는 방식으로 작동하는데, 이를 효율적인 방식으로 개선하는 것이 과제의 핵심..

레지스터 종류

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..

Pintos Project1 - 시작 준비

✨ Pint OS Pintos는 x86-64 아키텍처용으로 설계된 간단한 운영체제 프레임워크Pintos는 커널 스레드, 사용자 프로그램 로딩 및 실행, 파일 시스템을 지원 Pint OS projects Project 1 (Threads): 스레드와 동기화 기초, 기본 스케줄링Project  2 (User Programs): 사용자 프로그램 로딩 및 시스템 호출 구현Project  3 (Virtual Memory): 가상 메모리 관리Project  4 (File System): 파일 시스템 확장 Pint OS projects1  주요 내용기본 스레드 시스템 확장:Pintos에 구현된 간단한 스레드 시스템이 시작점다양한 스레드 관련 기능을 추가 및 동작 방식을 개선 동기화 문제 해결:스레드 시스템의 확장은 ..

리눅스 명령어 / VI 명령어 모음

✨ 자주 사용되는 리눅스 명령어 ls: 내 위치의 모든 파일을 보여준다.pwd: 내 위치(폴더의 경로)를 알려준다.mkdir: 내 위치 아래에 폴더를 하나 만든다.cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.cd .. : 나를 상위 폴더로 이동시킨다.cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기rm -rf [지울 것]: 지우기sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)   ✨ 자주 사용되는 VI 명령어  1.  Command modei 현재 커서 위치에 삽입 (입력모드로 넘어감)a 현재 커서 바로 다음위치에 삽입 (입력모드로 넘어감)o 현재 줄 다음 위치에 삽입 (입력모드로 넘어감)- 영문 ..

컴퓨터 기초/CS 2024.10.03

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

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

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

컴퓨터 기초/CS 2024.03.18