Computer(인강)(213)
-
프로세스와 IPC
안녕하세요 bannavi 입니다^ㅅ^ 지난 시간에 이어서 다양한 IPC의 종류에 대해 알아볼게요! 먼저 개념을 알아야해요 리눅스 체제의 프로세스 공간에 대해서 살펴볼게요 하나의 프로세스는 그림처럼 모두 4G입니다. 엇 그렇다면 만약 내 메모리가 16G라면 용량이 너무 적잖아욥!!!! -> 가상 주소라고 생각하세요 이걸 물리적 주소로 옮기는 과정도 필요한데 이건 또 가상메모리 부분에서 차근차근 다뤄볼게요. 음... 아니면 지금 쪼끔 살펴보면 주소 공간은 일부분만 사용하게 되는거구요 이 공간중에 극히 일부분만 메모리에 들어가게 되기 때문에 큰 이슈가 없습니다 그리고 커널공간은 공유가 가능해요! 일단은 하나의 프로세스는 그림처럼 모두 4G라는 건데요! 3~4G까지는 운영체제 코드가 들어가는 공간이구요0~3G까..
2021.02.23 -
프로세스간 커뮤니케이션
안녕하세요 bannvi입니다^ㅅ^ 이번시간에는 프로세스간 커뮤니케이션을 다뤄볼거에요 바로 시작하겠습니다^ㅅ^ 사실 프로세스간 커뮤니케이션을 할 수 있는 직접적인 방법은 없습니다. 제한을 해놨어요. 남의 프로세스의 주소를 접근할 수 있는 방법은 제공을 하고 있지 않다는 말이에요. -> 프로세스에 있는 코드가 다른 프로세스의 코드나 데이터에 접근 할 수 있게 된다면, 프로세스 데이터 코드가 바뀔 수 있으면 얼마나 위험할까요? 스택오버플로우를 생각해보면 이건 해킹에 가깝죠..! 그럴땐 어떻게 해야할까요? 바로, 특별한 IPC(Inter Process Communication) 기법을 사용해야해요 프로세스간 통신 방법을 제공한답니다 아니 근데, 프로세스간 통신이 필요한 이유는 뭘까요? CPU의 core가 여러개..
2021.02.23 -
컨텍스트 스위칭 개념 정리
안녕하세요 bannavi입니다^ㅅ^ 오늘은 컨텍스트 스위칭의 개념정리를 해보겠습니다 바로 시작해볼게요 고고! 프로세스와 컨텍스트 스위칭 Context Switching (문맥 교환) - CPU에 실행할 프로세스를 교체하는 기술 1. 실행 중지할 프로세스 정보를 해당 프로세스의 PCB에 업데이트해서, 메인 메모리에 저장 2. 다음 실행할 프로세스 정보를 메인 메모리에 있는 해당 PCB 정보를 CPU에 넣고, 실행 프로세스 PCB정보에 해당 CPU 레지스터 정보를 저장한다. (메인메모리에 저장하냐 마느냐 하는것은 운영체제에서 어떻게 구현하느냐에 따라 다를 수 있다) 디스패치 (dispatch) : ready 상태의 프로세스를 running 상태로 바꾸는 것 해당 PCB 정보를 CPU에 넣고, 실행 만일 컨텍..
2021.02.22 -
컨텍스트 스위칭
안녕하세요 bannavi 입니다^ㅅ^ 오늘은 컨텍스트 스위칭 원리에 대해 살펴볼거에요 저는 진짜....프로세스 구조가 제일 제일 어려운거같아요.. 한국말이지만 외국말인 느낌이랄까요 ㅠ,,ㅠ 후 이것도 듣다보면 괜찮아 지겠지요? 하하.. 그럼 오늘도 바로 시작해보겠습니다 :) PC(Program Counter) + SP(Stack Pointer) 에 주목하자! Process Control Block(PCB) (Process Context Block이라고도 함) 1. Process ID - 프로세스마다 id가 있다 2. Register 값(PC, SP 등) 3. Scheduling Info (Process State) - 어떤 info냐면 프로세스 상태가 ready인지 block인지 running인지.. 4..
2021.02.22 -
프로세스 구조와 스택 오버플로우
안녕하세요 bannavi입니다^ㅅ^ 오늘은 드디어 드디어 제가 기다리던 프로세스 구조와 스택 오버플로우 시간이에요. 바로 시작해볼게요^ㅅ^ 앞서 프로세스 구조에는 DATA가 있었죠. 이 DATA는 BSS와 DATA로 분리가 됩니다. BSS : 초기화되지 않는 전역변수 DATA 초기화 값이 있는 전역변수 앞으로 C프로그램을 보시면 코드가 프로세스 구조로 어떻게 들어갈지 이제 이해할 수 있습니다. 가볍게 듣기 스택 오버플로우 : 주로 해커들의 공격에 활용되었음(프로세스 구조를 알고있기 때문에..해킹이 가능)
2021.02.21 -
프로세스 구조와 힙
안녕하세요 bannavi입니다^ㅅ^ 지난 시간에 살펴보았던 내용은 정말 역대급이었어요.. 찬찬히 봐야하는데 봐야하는데 봐야하는데....... 유툽등 여러 자료를 좀 많이 살펴봐야될거같아요 ㅠㅠ 외계어 인지...? 하 오늘 공부 주제는 프로세스 구조와 힙 입니다!! 힙(heap) : 동적으로 생성되는 메모리 malloc() : 동적으로 메모리를 생성,할당 하는 함수 free() : 동적 메모리를 해제하는 함수 힙이라는 공간은 C언어에서는 동적 메모리를 생성하는 malloc() 함수를 통해서 만들어지는 공간이다. 힙이라는 공간이 왜 필요한가? 1. 데이터(data)는 전혀 변하지 않는 공간이 될 수 있는데, malloc()이라는것은 결과적으로 실행코드 안에서 몇번 어떻게 실행이 될지 모르는 것이기 때문에....
2021.02.21