Content Menu

명이나물 라이브러리

프로필사진
  • Write
  • Manage
  • 방명록
  • 전체 (228)
    • 프로젝트 (4)
    • AI (1)
    • CS (26)
      • 운영체제(OS) (16)
      • 컴퓨터 구조 (0)
      • 네트워크 (0)
      • 자료구조 (2)
      • 알고리즘 (8)
    • DB (2)
      • Mysql (0)
      • PostgreSQL (2)
    • Ops (3)
      • AWS (1)
      • Docker (1)
      • Git (1)
    • Web (24)
      • HTML (3)
      • CSS (4)
      • JAVASCRIPT (12)
    • Language (30)
      • PYTHON (30)
      • JAVA (0)
    • Framework (21)
      • Django (3)
      • Spring (0)
      • NestJS (18)
    • 코딩테스트 (115)
      • 프로그래머스 (88)
      • 백준 (22)
  • 방명록
명이나물 라이브러리명이나물 라이브러리
검색하기 폼
로그인 관리
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 스택 오버플로우
글 썸네일
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 스택 오버플로우

프로세스 구조와 스택 오버플로우 DATA에는 두가지 저장공간이 있다. BSS : 초기값이 없는 전역변수int global_data1; DATA : 초기값이 있는 전역변수int global_data2=0; 그 밖의 함수 안에 있는 지역변수는 Stack frame에 들어가게 된다.int main() { int *data; } ## 스택오버플로우 간단히 살펴보기 - 컴퓨터의 구조와 프로세스의 구조를 사용해 해킹하는데에 많이 이용되었다. - 할당된 6개의 저장 공간에, 각각 a를 저장하는데, 이때, aaaaacc로 입력을 하게되면, 저장 stack을 벗어난 그 다음의 stack위치에 값이 저장되게 된다. 이때, 해커들은 자신들이 설정해놓은 주소를 저장시켜, 해커 프로그램이 작동하도록 한다.

CS/운영체제(OS) 2021. 11. 27. 15:17
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 힙
글 썸네일
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 힙

heap 은 동적으로 메모리를 생성하는 저장소 이다. 동적으로 메모리를 생성하는 함수에는 C언어에서 mallloc이 있으며, 아래 예시를 통해 heap에 저장공간이 어떻게 생성이 되며, stack은 어떻게 작동하는지를 살펴보았다. 왜 heap이라는 것이 필요할까? => 컴파일러 단에서 전역변수를 위한 공간을 미리 만들어 놓아 DATA에 저장을 시켜놓는데, malloc이라는 함수는 실행 코드 안에서 용량을 만드는 함수로, 이 저장 공간은 정적으로 알 수 없기, 때문에 HEAP이라는 동적 저장공간을 지원한다.

CS/운영체제(OS) 2021. 11. 27. 13:49
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 컴퓨터의 구조
글 썸네일
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 컴퓨터의 구조

프로세스 구조 컴파일 : 0과 1로 된 기계언어로 변환 되는 것.(바이너리라고도 부름) CODE : 프로그램 코드가 컴파일된 언어로 저장되는 영역 DATA : 프로그램 내에 선언된 변수의 값을 저장 STACK : 함수가 실행 이후의 동작에 대한 주소인 return address값을 동적으로 저장-> 첫번째인자 저장 -> 두번째 인자 저장 -> 두번째 데이터 삭제 -> 첫번째 데이터 삭제 -> return address 삭제 -> 해당 함수 다음의 코드 실행 HEAP : 대표 적으로 molloc()이라는 함수가 있다. 특정 메모리 공간을 동적으로 생성하게 되는데, 이처럼 HEAP은 별도로 사용할 공간을 만드는 곳이다. 코드 예시 보기 void meaningless는 단수 함수 선언. stack 자료구조의 ..

CS/운영체제(OS) 2021. 11. 26. 20:16
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-인터럽트 내부 동작
글 썸네일
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-인터럽트 내부 동작

인터럽트 내부동작 시스템 콜 인터럽트 시스템 콜 실행을 위해서는 강제로 코드에 인터럽트 명령을 넣어, CPU에게 실행시켜야한다. 시스템 콜 실제 코드 eax 레지스터에 시스템 콜 번호를 넣고, ebx 레지스터에는 시스템 콜에 해당하는 인자값(함수의 인자 값 포함)을 넣고, 소프트웨어 인터럽트 명령을 호출하면서 0x80값을 넘겨줌 mov eax,1 // 1 = 시스템콜번호 mov ebx,0 // 0 = 인자 int 0x80 // 무조건 마지막에는 CPU에서 제공하는 OP code(인스트럭션 코드)가 들어가며, intel에서 제공하는 것 중에는 int가 있다. // 0x80 = 인터럽트 번호, 시스템 콜은 0x80으로 정해져 있다. 1 = 시스템콜번호 0 = 인자 int 0x80 : 무조건 마지막에는 CPU..

CS/운영체제(OS) 2021. 11. 26. 07:22
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-인터럽트 란?, 인터럽트 종류
글 썸네일
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-인터럽트 란?, 인터럽트 종류

인터럽트란? CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우 CPU에 알려서 처리하는 기술어느 한순간 CPU가 실행하는 프로그램은 하나! => 즉, ready -> running -> waite(block) 상태에서 다시 ready로 가려면 어떤한 신호가 필요한데, 이를 interrupt라고 한다. 이벤트 발생 -> interrupt -> kernel모드 변경 인터럽트 필요 이유 => 이벤트 정의부터 처리까지 담당하는 운영체제 선점형 스케쥴러 구현 - 프로세스 running 중에 스케쥴러가 이를 중단 시키고, 다른 프로세스로 교체하기 위해, 현재 프로세스 실행을 중단시킴 - 그러려면, 스케쥴러 코드가 실행이 되어서, 현 프로세스 실행을 중지..

CS/운영체제(OS) 2021. 11. 26. 06:31
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-선점형과 비선점형 스케쥴러, 스케쥴링 알고리즘 조합
글 썸네일
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-선점형과 비선점형 스케쥴러, 스케쥴링 알고리즘 조합

선점형과 비선점형 스케쥴러 비선점형 프로세스가 자발적으로 blocking상태로 들어가거나, 실행이 끝났을 때만, 다른 프로세스로 교체 가능 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음 예) A가 프로세스가 자체적으로 running이 아니어야만(Block 혹은 종료 혹은 ready 상태) B 프로세스가 실행되는 것. 선점형 프로세스 running 중에 스케쥴러가 이를 중단시키고, 다른 프로세스로 교체 가능 하나의 프로세스가 다른 프로세스 대신에 CPU를 차지할 수 있음. 스케쥴러 실행이 프로세스 스테이트에 영향 받지 않음. 이전 프로세스 중단 및 다음 프로세스 실행 기준에 고려할게 많기 때문에 비선점형보다 이후에 나옴. 예) A 프로세서가 스케쥴러에 의해 실행될 때, 어느 시점..

CS/운영체제(OS) 2021. 11. 25. 23:34
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 상태와 스케쥴러, 프로세스 상태기반 스케쥴링 알고리즘 기본
글 썸네일
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 상태와 스케쥴러, 프로세스 상태기반 스케쥴링 알고리즘 기본

프로세스 상태와 스케쥴러 멀티 프로그래밍 : CPU 활용도를 극대화하는 스케쥴링 알고리즘 Wait: 간단히 저장매체로부터 파일 읽기를 기다리는 시간으로 가정 프로세스 상태 5가지 주요 상태 정보 3가지 ready state : CPU에서 바로 실행가능 상태(실행 대기 상태) running state : 현재 CPU에서 실행상태 => 단일 CPU라면, running state의 프로세스는 1개 또는 0개가 된다. block state : 특정 이벤트 발생 대기 상태(예: 프린팅이 다 되었다!) => waite 상태로 예를 들어 파일 읽기 요청을 기다리는 상태임. 요청이 오면 ready state로 변경됨. new : 프로세스 생성 중 exit : 종료를 진행할때, 프로세스가 가지고 있는 파일, 시스템 리소..

CS/운영체제(OS) 2021. 11. 24. 22:43
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-스케쥴링 알고리즘 기본
글 썸네일
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-스케쥴링 알고리즘 기본

프로세스(process)란? 실행중인 프로그램을 프로세스라고 부른다. 프로세스 : 메모리에 올려져서, 실행중인 프로그램 코드이미지(바이너리): 실행파일, 예:EELF format프로세스라는 용어는 작업, task, job이라는 용어와 혼용되어 쓰인다. 응용 프로그램 =! 프로세스 응용 프로그램은 여러개의 프로세스로 이루어질 수 있음. 하나의 응용 프로그램은 여러개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수 도 있음 간단한 C/C+ 프로그램을 만든다면 -> 하나의 프로세스 여러프로그램을 만들어서, 서로 통신하면서 프로그램을 작성할수도 있음(IPC기법 : 프로세스가 서로 통신하는 기법) 누가 프로세스 실행을 관리할까? => 스케쥴러 스케쥴링 알고리즘 어느 순서대로 프로세스를 실행시킬까? 목표 시분할..

CS/운영체제(OS) 2021. 11. 24. 21:32
컴공전공자_따라잡기 | CH02. 스케쥴링 - 멀티 프로그래밍
글 썸네일
컴공전공자_따라잡기 | CH02. 스케쥴링 - 멀티 프로그래밍

스케쥴링-멀티 프로그래밍 최대한 CPU를 많이 활용하도록 하는 시스템 놀고있는 CPU를 방지하여 시간 대비 CPU 활용도를 높일 수 있음 응용프로그램을 짧은 시간안에 실행 완료를 시킬 수 있음. 응용 프로그램은 온전히 CPU를 쓰기 보다, 다른 작업을 중간에 필요로하는 경우가 많습니다. 응용 프로그램이 실행되다가 파일을 읽는다. => 저장매체에서 파일을 읽음 응용 프로그램이 실행되다가 프린팅을 한다. 코드예시를 보고 멀티프로그래밍을 더 잘 이해해보자. 저장매체에서 해당 파일이 open이 가능한지의 결과값을 가져와야 그 다음 코드를 실행 시킬 수 있음. CPU 활용도(CPU utilization, CPU 활용시간/일정시간 * 100) 메모리 계층 - 컴퓨터 구조 복습 응용프로그램이 파일에 접근을 해야할 때..

CS/운영체제(OS) 2021. 11. 24. 17:26
« 1 ··· 13 14 15 16 17 18 19 ··· 26 »

방문자

다른 주제 글 보러가기

✏️ 글쓰기

방문자

오늘
어제
전체

카테고리

«   2026/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

티스토리툴바