CS 10

[OS] Semaphore(쎄마포어)

이번 블로그는 앞 주제와 이어집니다!@!https://sehseh.tistory.com/16 [OS] Critical Section Problem, 쓰레드간 협력하나의 일을 효율적으로 처리하기 위해서는 쓰레드간 협력이 필요하다. 이러한 협력을 보장하기 위해 서로 개별적인(automic)한 연산을 수행해야한다. 예를 들어 Producer-Consumer Problem을 살펴보자.sehseh.tistory.com 그럼 이제 쎄마포어 관점에서 Critical Section Problem을 확인해보자이전 블로그에서 다뤘던 Critical Section Problem은 둘 이상의 프로세스나 스레드가 공유 자원에 동시 접근할 때 발생하는 것을 방지하는 방법이다. 이 문제를 방지하여 개별적인 연산을 수행하는 것을 S..

CS/OS 2025.08.02

[OS] Critical Section Problem, 쓰레드간 협력

하나의 일을 효율적으로 처리하기 위해서는 쓰레드간 협력이 필요하다. 이러한 협력을 보장하기 위해 서로 개별적인(automic)한 연산을 수행해야한다. 예를 들어 Producer-Consumer Problem을 살펴보자. 한 쓰레드(A)는 cnt 변수를 하나 증가시키고 다른 한 쓰레드(B)는 cnt 변수를 하나 감소시켜야한다. 처음 목표는 A가 cnt를 하나 증가시키고 B가 하나를 감소하는거라 기존값과 같은 결과가 나와야하지만 A가 증가시키는 도중에 B가 cnt 변수를 읽어 하나를 감소시켜 덮어쓴다면 기존값보다 하나 더 작게 나오는 결과가 나온다. 이러한 상황을 동시성 문제, Race Condition(두 프로세스가 동시에 같은 변수를 조작해 결과가 예측 불가능하게 되는 상황)이라 한다. 이 문제를 방지하..

CS/OS 2025.07.05

[Network] IPv6 & ICMP

항공대학교 최차봉 교수님의 강의를 참고하여 작성하였습니다 IPv6는 왜 고안되었을까?: 기존의 IPv4의 32bit로는 자원 고갈의 문제가 있기 때문에, 이를 늘리고자 고안함.+ IPv6는 프로세싱 속도도 증가하고, forwarding 도 금방금방 할 수 있음.+ Header를 40byte로 고정함으로써 QoS(Quality of Service)를 높임+ Source와 Destination 에서만 Fragmentation을 처리하고, 중간 라우터에서는 하지 않음.만약 너무 큰 Datagram이 오면 Error msg를 반환하고 통신하지 않는다. IPv6의 Datagram format을 IPv4와 비교하여 살펴보자.ver에는 IP의 version이 들어간다. IPv4 or IPv6priority는 감이 잘..

CS/네트워크 2025.05.28

[네트워크] Network Layer(3) - IPv4

항공대학교 최차봉 교수님의 강의를 참고하여 작성하였습니다. 전 포스팅에서 IPv4를 두고 많은 이야기를 했다.IP address를 Class로 나누어도 보고, Subnet portion을 할당해보기도 하고, 또 CIDR 방식으로 IP주소를 나누어도 보았다. 이번엔 IP 고갈 문제를 해결하기 위해 고안된 방법 중 CIDR 를 제외한 나머지 3가지 방식에 대해 알아보자! 맨 처음 IPv4가 고안된 후, 계속해서 IP 주소가 고갈될 것이라는 압박감속에 만들어낸 첫 고갈 문제 해결 방법은 전 포스팅에서 알아보았던 CIDR 방식의 IP주소 할당법이었다. 이를 통해 IP 주소를 좀 더 효율적이고 구조적으로 할당할 수 있었다. 그 뒤로 DHCP, NAT, IPv6 가 차례차례 고안되었는데, 그 중 DHCP 방식을 먼..

CS/네트워크 2025.05.26

[네트워크] Network Layer - (2) IP가 뭔데요

항공대학교 최차봉 교수님의 강의를 참고하여 작성하였습니다. 지금부터는 Internet Protocol의 주소체계에 대해 알아보자 Internet Protocol은 크게 3가지 기능이 있다. 인터넷을 활용할적의 Network Layer 구조도이다. 1. 라우팅 프로토콜 -> 경로를 결정 ( RIP, OSPF, BGP ) 2. IP 프로토콜 -> 실제 데이터 전달을 관리 3. ICMP 프로토콜 -> Internet Control Message Protocol ( Ping )=> 네트워크에 디바이스가 여러개가 있을 텐데, 그 디바이스(라우터) 끼리 데이터를 주고 받는 것에 대해 이를 제어하는 Protocol 임.소통을 할 적에, 네트워크의 어떤 경로로 왔는지, 또 얼마나 걸렸는지, 그 서버가 죽었는지 살았는..

CS/네트워크 2025.05.26

[네트워크] Network Layer - (1) 라우터 구조가 뭔데요

항공대학교 최차봉 교수님의 강의를 참고하여 작성하였습니다. 이제 VC는 충분히 알아보았다. 우리의 메인 타겟인 Datagram에 포커스를 맞추어 공부해보자. 이번 시간에는 "라우터 구조만 살펴보자"오키 라우터는 기능별로 총 2가지로 나눌 수 있다.routing processor(라우팅 해서 table을 생성하는 구간) - softwarehigh-seed witching fabric(만들어진 table이 저장되는 구간) - hardware이렇게 두개로 나누어 진다.Routing Processor는 소프트웨어로 테이블만 만들면 됨.하지만 Switching Fabric은 엄청 빠르게 라우팅을 해줘야 하므로(스위칭) 하드웨어로 구성되어있다. 왼쪽 초록이 박스부터 Physical Layer -> Link Laye..

CS/네트워크 2025.05.22

[네트워크] Network Layer - (1) VC가 뭔데요

항공대학교 최차봉 교수님의 강의를 참고하여 작성하였습니다. 이제 기말고사 준비를 해야겠지요...Transport Layer 까지 학습 및 평가를 마쳤고, 이제 저희가 배울 5가지 LayerApplication - Transport - Network - Link - Physical 중 Network/Link Layer 두가지 남았습니다. 화이팅 한번 외칠까요 하나 둘 셋 화이팅 야홋! 용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용 네트워크 레이어?: 간단히 말해서 트랜스 포트 레이어가 사용하는 레이어 트랜스 포트 → 프로세스 간의 통신이었다면,,네트워크 레이어 → IP 주소로 되어있는 호스트 간의 통신 이라고 인지하고 시작해보자. Networ..

CS/네트워크 2025.05.22

[OS] NachOS 환경 설정

Oracle VM으로 Ubuntu 18을 사용하여 NachOS 환경을 설정해볼것이다 NachOS란?NachOS는 Berkeley에서 만들어진 교육용 OS다.교수님 말을 빌리자면 OS위의 OS로 어플처럼 돌게하면서 스케줄링, 세마포어 등 HW와 OS의 작용을 살펴보는 도구라 할 수 있다.NachOS는 OS부분과 Machine emulator로 나눌 수 있는데 OS부분은 threads, userprog, and filesys 폴더에 있는 코드들으로 세마포어, 스케줄링 등이 구현되어 있다. Machine emulator는 machine 폴더에 있는 코드로 MIPS, COU, 레지스터, 메모리, 타이머, 콘솔, disk drive, network 등이 구현되어있다. (이 부분은 수정하지 않는다!!) 환경설정 단..

CS/OS 2025.05.21

좀비가 되긴 싫었는데... 부모가 나를 버렸어

이번 포스팅의 주제는 프로세스입니다 목차1. 프로세스란?2. 프로세스의 생성과 상태 전이 3. 프로세스 간 통신 1. 프로세스란프로세스와 프로그램은 같은 것일까?결론부터 말하자면 아니다!! 프로세스는 실행중인 프로그램의 인스턴스 중 하나로 하나의 프로그램에 여러개의 프로세스를 running 시킬 수 있다. 쉽게 말하면 프로그램을 실행하면 프로세스가 된다 이때 프로세스는 하나일수도 있고 여러개가 될 수도 있다.또한 운영체제가 자원을 할당하고 관리하는 기본 단위로도 볼 수 있다프로그램이 실행되면 운영체제는 다음과 같은 자원을 프로세스에게 할당한다. (줄여서 TDBS라 한다)1. Text : 사용자가 작성한 프로그램 함수, code2. Data: 전역변수, 정적 변수(불변변수)3. BSS : 초기화되지 않은..

CS/OS 2025.04.30

운영체제란 무엇인가

운영체제의 필요성과 컴퓨터 시스템에 대하여.. 운영체제는 두가지 관점에서 볼 수 있다왜??사용자 프로그램과 하드웨어 사이에 위치하기 때문에 먼저 사용자 관점에서 보자면 그냥 하드웨어 위에 덩그러니 있는 것보다 시스템을 편리하게 사용할 수 있다. 운영체제가 알아서 효율성과 형평성까지 고려하면서 자원을 할당해주니 사용자는 각각 독자적 컴퓨터에서 내것만 실행하는 것같은 착각을 한다 또한 여러개의 프로그램을 돌려도 모두 동시에 돌아가는 것같은 착각을 한다 우리가 편한만큼 운영체제가 열심히 일하고 있는것..이렇게 복잡한 하드웨어 자원을 사용자나 개발자가 이해하기 쉬운 형태로 단순화하여 제공한다 이를 추상화라고 하는데 메모리에 어떻게 저장되는지는 몰라도 운영체제의 메모리 관리 덕분에 정해진 메모리보다 더 많은 ..

CS/OS 2025.04.30