728x90 반응형 전체 글91 pintos - USER PROGRAMS (1) Argument Passing목표: 커맨드 라인 파싱 기능 구현 과제 설명: - pintos는 프로그램과 인자를 구분하지 못하는 구조 예: $ls –a /* pintos는 ‘ls -a’를 하나의 프로그램명으로 인식- 프로그램 이름과 인자를 구분하여 스택에 저장, 인자를 응용 프로그램에 전 달하는 기능 구현 전체 흐름중에 내가 수정해야할 함수의 역할을 파악하는것이 중요하다. break point를 걸어 어떻게 넘어오는지 확인하자 커널은 사용자 프로그램이 실행을 시작하기 전에 초기 함수에 대한 인수를 레지스터에 넣어야 한다. 인수는 일반적인 호출 규칙과 동일한 방식으로 전달된다고 한다. *일반적인 호출 규칙https://en.wikipedia.org/wiki/X86_calling_convention.. 2023. 12. 5. pintos - USER PROGRAMS (intro) USER PROGRAMS를 시작하기 앞서 관련된 키워드를 살펴보겠다. 1. **User mode vs Kernel mode**: 운영체제는 보안과 안정성을 위해 두 가지 모드를 사용합니다. 사용자 프로그램이 실행되는 User mode에서는 제한된 권한만을 가지지만, 시스템 호출을 통해 필요한 서비스를 요청하면 운영체제는 Kernel mode로 전환하여 요청된 작업을 수행합니다. 2. **Register vs Memory**: 레지스터와 메모리는 컴퓨터 시스템에서 데이터를 저장하는 두 가지 주요 장치입니다. 레지스터는 CPU 내부에 위치하여 빠른 접근이 가능하지만 용량이 작습니다. 반면에 메모리는 용량이 크지만 CPU 외부에 위치하여 접근 속도가 느립니다. 3. **User Stack**: User .. 2023. 12. 4. pintos - THREADS(1) 목표:Priority Scheduling 이해 운영 체제(Operating System, OS)는 컴퓨터 시스템의 자원을 관리하고, 사용자와 컴퓨터 사이의 인터페이스 역할을 하는 소프트웨어입니다. 그 주요 기능은 다음과 같습니다. Processor management , Memony management , File management , User interface, Management of hardware and peripherals, Running of software, interrupt and error handling, Security, Network communication(참 많은 일을 하는군요 ㅎㅎ..) OS의 핵심기능은 3가지가 있습니다.가상화(Virtualization), 병행성(Concu.. 2023. 11. 28. 웹서버만들기(1) 클라이언트-서버 모델 이해 클라이언트-서버 모델은 네트워크 환경에서 가장 기본적이고 널리 사용되는 컴퓨터 네트워크 아키텍처 중 하나입니다. 이 모델에서는 두 가지 주요 구성 요소인 '클라이언트'와 '서버'가 있습니다. 서버: 서버는 서비스를 제공하는 컴퓨터 시스템입니다. 서버는 네트워크 상에서 항상 실행되며 클라이언트의 요청에 응답합니다. 서버는 웹 페이지, 파일, 데이터베이스, 메일 서비스 등 다양한 종류의 서비스를 제공할 수 있습니다. 클라이언트: 클라이언트는 서비스를 요청하는 컴퓨터 시스템입니다. 클라이언트는 필요한 정보나 서비스를 위해 서버에 요청을 보내고, 서버로부터 응답을 받습니다. 1. 클라이언트는 서버에 서비스를 요청합니다. 이 요청은 네트워크를 통해 서버에 전달됩니다. 2. 서버는 클.. 2023. 11. 17. BFS, DFS bfs, dfs 얘기를 하기 전 기본 그래프 알고리즘에 대해 살펴보겠습니다. 그래프 알고리즘? 그래프 알고리즘은 실제 세계의 다양한 문제를 모델링하고 해결하는데 필수적인 도구입니다. 사람들 간의 소셜 네트워크, 웹페이지의 링크 구조, 도로 네트워크의 복잡한 관계 표현. 물류, 통신, 교통의 경로 문제 해결등 다양한 분야에서 중요한 역할을 수행하며, 이를 통해 우리는 복잡한 문제를 효과적으로 해결할 수 있습니다. 그렇다면 컴퓨터에서 그래프를 어떻게 표현할까요? 인접행렬과 인접리스트를 사용해 표현합니다. 어떻게 표현하는지 알았으니 인접행렬과 인접리스트를 어떻게 들여다볼까요? 여기서 그래프 알고리즘이 사용됩니다. 기본적인 그래프 알고리즘은 1. 너비 우선 탐색(BFS, Breadth-First Search):.. 2023. 11. 10. [Algorithm] Algorithm 소개 알고리즘은 원하는 결과를 생성하기 위해 특정 순서로 수행해야 하는 일련의 명령을 정의하는 단계별 절차입니다. 알고리즘은 일반적으로 기본 언어와 독립적으로 개발됩니다. 즉, 하나 이상의 프로그래밍 언어로 알고리즘을 구현할 수 있습니다. 모호성, 정교함, 효율성 및 언어 독립성은 알고리즘의 일부 특성입니다. 알고리즘의 확장성과 성능은 그 중요성에 기여하는 주요 요인입니다. What is an Algorithm? 알고리즘이라는 단어는 "계산 또는 기타 문제 해결 작업에서 따라야 하는 일련의 유한한 규칙 또는 지침" 또는 "자주 재귀 작업을 포함하는 유한한 수의 단계에서 수학 문제를 해결하는 절차"를 의미합니다. 알고리즘은 컴퓨터가 계산 또는 기타 문제 해결 작업을 수행하기 위해 따라야 하는 일련의 명령입니다... 2023. 11. 4. 복잡도(BigO,시간,공간) 복잡도는 알고리즘이나 데이터 구조의 성능을 분석하거나 비교하는 방법입니다. 주로 시간 복잡도와 공간 복잡도 두 가지를 고려합니다. 1. 시간 복잡도(Time Complexity): 이는 알고리즘이 문제를 해결하는 데 필요한 시간을 의미합니다. 보통 입력의 크기에 따라 얼마나 많은 계산이 필요한지를 측정합니다. 예를 들어, 배열에서 최대값을 찾는 알고리즘의 경우, 배열의 모든 요소를 검사해야 하므로 시간 복잡도는 O(n)이 됩니다. 여기서 n은 배열의 크기입니다.2. 공간 복잡도(Space Complexity): 이는 알고리즘이 문제를 해결하는 데 필요한 메모리 사용량을 의미합니다. 예를 들어, 재귀 함수는 호출될 때마다 스택에 데이터를 저장하므로 공간 복잡도가 증가합니다. 빅 오 표기법(Big O not.. 2023. 10. 21. 반복문과 재귀함수 반복문과 재귀함수는 프로그래밍에서 특정 코드를 여러 번 실행하는 데 사용되는 기본적인 구조입니다. 1. 반복문 (Loops): 반복문은 동일한 코드를 여러 번 실행하려고 할 때 사용됩니다. 가장 일반적인 유형의 반복문에는 for, while이 있습니다.For loop: For loop는 주어진 조건이 충족되는 동안 코드 블록을 반복합니다. 예를 들어, 배열의 모든 요소를 순회하거나 특정 횟수만큼 반복할 수 있습니다.예시:for i in range(5): print(i)While loop: While loop도 주어진 조건이 참인 동안 코드 블록을 계속해서 반복합니다. 예시:i = 0while i 2. 재귀함수 (Recursion): 재귀함수란 함수가 자신을 다시 호출하는 것을 말합니다. 이것은 복잡한 .. 2023. 10. 21. 배열, 문자열에 대해 알아보자 배열이란 무엇일까요?배열은 컴퓨터 과학에서 동일한 타입의 여러 개의 데이터를 하나의 이름으로 그룹하하여 관리하는 데이터 구조입니다.numbers = [1,2,3,4,5]위에 보이는 numbers는 5개의 정수를 저장하고 있는 배열입니다. 배열에는 객체가 저장되고, 그 객체를 원소라고 합니다. 원소는 0, 1, 2...순으로 인덱스를 부여받습니다. 여기서 1에 접근하려면 어떻게 할까요?print(numbers[0]) # 출력: 1 해당 인덱스를 사용해 접근할수있습니다. 배열을 왜 사용할까요? 배열은 다음과 같은 이유로 사용됩니다: 1. 효율적인 메모리 사용:배열은 동일한 타입의 데이터를 저장하기 때문에 메모리 관리가 효율적입니다. 각 요소는 동일한 크기의 메모리 공간을 차지하므로 컴퓨터는 특정 요소의 위.. 2023. 10. 21. 이전 1 ··· 6 7 8 9 10 11 다음 728x90 반응형