CS지식
-
[혼공컴운]스레드와프로세스CS지식/운영체제 2024. 2. 23. 13:43
프로세스(Process) 프로세스는 컴퓨터에서 실행되는 프로그램의 인스턴스라고 할 수 있습니다. 운영체제는 각 프로세스에게 독립적인 메모리 공간을 할당하고, 이 공간에서 프로세스는 코드를 실행하며 작동합니다. 프로세스의 메모리 공간은 크게 네 가지 영역으로 나뉘어져 있습니다: Code, Data, Heap, Stack입니다. Code 영역: 이곳은 프로그램의 소스 코드가 저장되는 곳입니다. 우리가 작성한 함수, 조건문, 반복문 등의 코드가 이곳에 위치하게 됩니다. Data 영역: 전역 변수나 정적 변수가 저장되는 공간입니다. 프로그램이 실행되는 동안 이 변수들의 값은 변할 수 있지만, 메모리 공간의 크기는 변하지 않습니다. Heap 영역: 동적으로 할당되는 데이터가 저장되는 공간입니다. 프로그래머가 필요..
-
[혼공컴운] 운영체제 시작CS지식/운영체제 2024. 2. 23. 12:16
Chapter 9. 운영체제 시작하기 운영체제란? 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니다. 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해 줍니다. 운영체제를 공부하는 이유: 운영체제를 공부함으로써, 컴퓨터 시스템의 자원 관리 방법 등 다양한 정보를 습득할 수 있습니다. 이를 통해 현실에서 발생하는 문제에 대해 다양한 해결책을 모색할 수 있으며, 운영체제의 해결 방식을 통해 문제를 접근하는 방법을 배울 수 있습니다. 이러한 과정을 통해 다양한 시각과 문제해결 능력을 기를 수..
-
[OS]가상메모리CS지식/운영체제 2022. 5. 14. 14:24
가상메모리리란 물리적인 메모리는 크기에 제약이 발생한다. 그렇기 때문에 가상 메모리를 두어 메모리 크기에 대한 제한을 없애고, 더 많은 프로세스들을 실행시킬 수 있게 도와준다. Demand Paging(요청이 있다면 페이지를 메모리에 올리겠다) 필요할 때 page를 메모리에 올리는 것 I/O 양의 감소(빈번히 사용되는 부분은 제약적이라서) Memory 사용량 감소 빠른 응답 시간 더 많은 사용자 수용 Valid/Invalid bit 사용 Invalid: 사용되지 않는 주소 영역, 페이지가 물리적 메모리에 없는 경우 처음에는 page entry가 invalid, address translation 시에 invalid bit이 set되어 있으면 -> page fault Page Fault(요청한 페이지가 메..
-
[운영체제]메모리관리CS지식/운영체제 2022. 5. 7. 21:21
메모리 관리 필요한 이유 : 프로그램을 메모리에 적재하는 과정 중 공간이 낭비되거나 메모리가 가득 차서 부족해지는 상황이 발생할 수 있다. 그렇기 때문에 메모리를 효율적으로 사용하기 위해 메모리 관리는 필수적이다. 논리적 주소(가상 주소) 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0 번지부터 시작 CPU가 보는 주소는 logical address임 물리적 주소 메모리에 실제 올라가는 위치 주소 바인딩 : 주소를 결정하는 것 Symbolic Address->logicial Address-> Physical address Symbolic Address:프로그래머 입장에서의 주소(숫자가 아닌 상징성 있는 주소를 사용한다)-> int a=8과 같은 것들 물리적인 메모리에 주소가 결정되는 것 ->..
-
[운영체제] 교착상태(Deadlock)CS지식/운영체제 2022. 4. 17. 16:25
교착상태(deadlock) 위의 사진처럼 자신의 길을 점유하고 있으면서 아무도 양보 안 한다면 계속 이렇게 막힌 상태가 유지되는 상태 Deadlock 일련의 프로세스들이 서로가 가진 자원을 기다리며 Block된 상태 Resource(자원) 하드웨어, 소프트웨어 등을 포함하는 개념 I/O device,CPU cycle, memory space, semaphore 등 프로세스가 자원을 사용하는 절차 Request(요청하는 절차), Allocate(점유), Use(사용), Release (반납) Deadlock 예시 P0은 P(A)를 점유하고 P1은 P(B)를 점유하고 있을 때에 P0이 P(B)를 할 때 P1이 가지고 있고 P1이 P(A)를 하려 할 때 P0이 가지고 있어 서로 못 가져가는 상황 Deadloc..
-
[운영체제] 프로세스 동기화CS지식/운영체제 2022. 4. 10. 18:57
데이터의 접근 데이터를 읽어와서 연산된 데이터를 다시 위치한 데이터에 저장 (1) CPU(연산) Memory(스토리지) (2) 컴퓨터 내부(연산) 디스크(스토리지) (3) 프로세스(연산) 프로세스의 주소 공간(스토리지) 데이터를 읽기만 한다면 동기화 문제가 중요하지 않지만 연산을 하여 다시 저장하는 경우에는 동기화 문제가 중요하게 됩니다.(다르게 읽어 연산을 하여 다르게 저장할 수도 있으니) Race Condition 공통적인 데이터를 동시에 사용하려는 경우 한 가지의 연산만 처리될 때 경쟁상태라고 말합니다. 하나의 주체가 읽어갔는데 그동안 다른 주체가 읽어가서 연산을 실행하여 생기는 문제라고 이해하시면 됩니다. 위의 경우에서 예시를 들면 ++ -- 를하면 그대로가 되어야 하는데 나중에 ++를 하는 도중..
-
[운영체제]CPU스케줄링CS지식/운영체제 2022. 4. 3. 17:38
CPU 스케줄링 프로그램의 실행은 cpu만 연속적으로 쓰는 단계, I/O만 쓰는 단계로 나뉘어 실행됩니다. CPU burst -> CPU만 연속적으로 쓰는 단계 I/O burst ->I/O만 쓰는 단계 프로그램의 종류에 따라 CPU만 쓰는 프로그램(ex 과학 계산용 프로그램), CPU와 I/O를 번갈아 쓰는 프로그램 등 다양한 종류의 프로그램이 존재합니다. CPU-burst Time의 분포 여러 종류의 job이 섞여 있기 때문에 CPU 스케줄링이 필요하다. -> 이유 CPU bound job이 오랫동안 CPU를 사용하는 도중에 I/O bound job의 경우 잠깐의 CPU만 사용하면 되는데 적절하게 스케줄링을 하지 않는 경우는 I/O bound job의 경우 계속해서 기다리기만 하는 경우가 존재하기 때문..
-
[운영체제]프로세스 관리CS지식/운영체제 2022. 3. 27. 11:45
프로세스 관리 프로세스 생성 부모가 자식을 생성(주로 복제 생성 -> 문맥을 그대로 복사하는 개념) 프로세스의 트리(계층 구조) 형성 프로세스가 실행이 되려면 자원(CPU, 메모리, 기타 등등)을 필요로 함 운영체제로부터 받는다 부모와 공유한다 자원의 공유(3가지가 존재하지만 전혀 공유하지 않는 모델이 일반적) 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 프로세스가 생성이 되면 서로 자원을 얻으려고 경쟁을 하기 때문에 전혀 공유하지 않는 모델이 일반적입니다. 수행 부모와 자식은 공존하며 수행되는 모델 자식이 종료될 때까지 부모가 기다리는 모델 주소 공간 자식은 부모의 주소 공간을 그대로 복사를 합니다.(운영체제에 있는 data PCB와 같은 자원들도 그대로 복사..