반응형 개발인강7 [운영체제] 메모리-종류(레지스터,캐시 등), 주소(물리주소, 상대주소), 할당방식(내부단편화, 외부단편화) 강의명: 그림으로 쉽게 배우는 운영체제 메모리 종류 레지스터 가장 빠른 기억장소로, cpu 내에 존재함. 전원이 꺼지면 데이터가 사라지기 때문에 휘발성 메모리라고 불림. cpu를 나눌 때 32bit, 64bit로 나누는데 이게 레지스터의 크기를 말함. cpu는 계산할 때 램에 있는 값을 레지스터로 가져와서 계산함. 계산결과는 다시 램에 저장시킴. 캐시 레지스터와 램 사이에서 일함. 휘발성임. 레지스터는 cpu가 사용하는 거니까 엄청 빠름. 근데 램은 너무 느림. 램에 있는 값을 레지스터에 옮기려면 너무 느리니까 필요한 값을 캐시에 저장함. 캐시는 성능의 이유로 여러개를 둔다. 만약 cpu가 값을 요청해 값을 레지스터로 옮겨야 한다면 단계에 따라 가장 속도가 빠른 L1캐시를 보고, 여기없으면 L2캐시를 보.. 2022. 1. 12. [운영체제] 컴파일과 프로세스 본 강의: 그림으로 쉽게 배우는 운영체제: 컴파일과 프로세스 컴파일 언어 개발자가 코드를 작성하고 컴파일이란 과정을 거쳐 0과 1로 된 기계여러 실행파일을 만듦(exe). 컴파일과정에서 개발자가 문법오류를 일으켰는지 검사하고 cpu에서 처리가능한 기계어로 실행파일을 만들어놓기 때문에 속도가 빠름(c, c++, c#). 인터프리터 언어 개발자가 작성한 코드를 미리 기계여로 만들지 않음. 대신 실행 시 코드를 한줄씩 해석해 실행하는 언어임. 미리 검사를 하지 않기에 실행 시 오류날 수 있고 속도도 컴파일언어에 비해 느림(js, python, ruby). 프로세스 - 코드영역: 말 그대로 실행해야 할 코드가 들어가는 영역. 예) ret = num1 + num2 - 데이터영역: 전역변수나 배열이 들어가는 영역... 2022. 1. 12. [운영체제]데드락(교착상태) 강의: 비전공자를 위한 운영체제 교착상태란? 교착상태가 발생하는 이유는 공유자원 때문임. 만약, 어떤 자원을 여러 프로세스가 공유하지 않으면 교착상태는 발생하지 않음. ex) 교착상태를 설명하는 가장 유명한 철학자 예시 음식을 먹기 위해선 포크 두개를 사용해야 함. 근데 동시에 자기 오른쪽에 있는 포크를 집어버림. 근데 아무도 양보하지 않으면 더이상 식사가 불가능한 교착상태에 빠지게 된다. 교착상태의 필요조건 아래 조건을 모두 충족해야 교착상태가 발생함. 1) 상호배제 어떤 프로세스가 한 리소스를 점유했다면, 그 리소스는 다른 프로세스에 공유되지 않는다. 위 철학자 예시에서 포크를 한명이 집으면 그 포크는 동시에 다른 사람이 못 쓰지. 2) 비선점 프로세스 a가 리소스를 점유하고 있다면 프로세스 b가 리.. 2022. 1. 9. [운영체제]프로세스 동기화 강의: 비전공자를 위한 운영체제 프로세스 간 통신 프로세스는 다른 프로세스와 데이터를 주고받으며 통신을 하는 경우도 있다. 한 컴터내에서 실행되는 다른 프로세스와 통신할수도 있고, 네트워크와 연결된 다른 컴터의 프로세스와 통신하기도 한다. 파일 이용하는 방법) 통신하려는 프로세스들이 하나의 파일을 이용해 읽고 쓰는 법 파이프 이용하는 방법) 운영체제가 생성한 파이프 이용해 데이터를 읽고 쓰는 방법 쓰레드 이용하는 방법) 한 프로세스 내에서 쓰레드 간 통신하는 방법임. 쓰레드는 코드, 데이터, 힙 영역을 공유하고 스택만 각자 자기의 것만 가지고 있음. 여기서 데이터영역에 있는 전역변수가 힙을 이용하면 통신가능 네트워크 이용하는 방법) 운영체제가 제공하는 소켓통신이나, 다른 컴터에 있는 함수를 호출하는 RP.. 2022. 1. 9. [운영체제] cpu 스케쥴링 강의: 비전공자를 위한 운영체제 cpu 스케쥴링 개요 운영체제는 모든 프로세스에게 cpu를 할당/해제하는데 이를 cpu 스케쥴링이라 함.(이전에 정리한 글: https://lovenewthing.tistory.com/74) 이때 고려해얄 것 두가지가 있는데, 이는 컴터 성능에 매우 큰 영향을 미침. 1. 메모리에 있는 수많은 프로세스 중 어떤 프로세스에게 cpu사용권을 줘야 하는가. 2. cpu를 할당받은 프로세스가 얼마의 시간동안 cpu를 사용해야 하는가. cpu를 할당받아 실행하는 작업: cpu burst. 입출력 작업: I/O Burst 다중 큐 이 그림 알징~ 여기서 프로세스가 대기하고 있는 "준비상태"와 "대기상태"는 큐라는 자료구조로 관리됨. 실행->준비->실행상태 과정) 프로세스가 실행상태에.. 2022. 1. 1. [운영체제] 프로세스와 쓰레드 강의: 비전공자를 위한 운영체제(인프런) 프로그램과 프로세스 - 프로그램 하드디스크와 같은 저장장치에 저장된 명령문의 집합체를 말함. 애플리케이션이나 앱이라고도 불림. windows운영체제에선 .exe 모습을 하고 있음 - 프로세스 실행중인 프로그램. 즉, 하드디스크에 있는 프로그램이 메모리(ram)에 올라갔을 때 프로세스라고 불림. 코드영역: 자신을 실행하는 코드가 저장됨. 데이터영역: 전역변수와 정적변수 저장됨. 스택영역: 지역변수와 함수호출관련 정보. 힙영역: 프로그래머가 동적으로 메모리 할당시 사용. 프로그램은 컴퓨터의 관점에서 하드디스크(저장장치)만 사용하는 수동적인 존재임. 반면 프로세스는 메모리도 사용하고, 운영체제의 cpu스케쥴링 알고리즘에 따라서 cpu도 사용하고 필요에 따라 입려과 출력.. 2021. 12. 31. 이전 1 2 다음 반응형